BUG: special: Fix behavior of gamma and gammasgn at poles of the Gamma function

Reference issue

Closes gh-19071, gh-21810
What does this implement/fix?

This PR fixes the behavior of special.gamma and special.gammasgn at poles of the gamma function. As described in #21810, we currently have special.gamma(n) == np.inf for  every non-positive integer n, and bizarrely special.gamma(-np.inf) == -np.inf.  As described in #19710, gammasgn(n) == 0.0 for every non-positive integer n and even more bizarrely, gammasgn(-np.inf) == 1.0.
The sign of $\Gamma(x)$ at each pole depends on the direction in which $x$ approaches the pole, so it doesn't make sense to return $+\infty$ at all poles. Accordingly, the C99 standard recommends the following behavior for the gamma function in special cases.

If the argument is $\pm 0$, $\pm \infty$ is returned.
If the argument is a negative integer, NaN is returned.
If the argument is $-\infty$, NaN is returned.
If the argument is $+\infty$, $+\infty$ is returned
If the argument is NaN, NaN is returned.

I've updated special.gamma to follow this standard. Note that signed zeros offer the ability to specify the sign of infinity of gamma(x) at x == 0. I've also updated gammasgn to be consistent with the above.
Note that as described in #21810, the original cephes gamma function implementation gets these cases right, and special.gamma's current behavior was a deliberate choice. I had speculated earlier that gamma(x) == +inf at poles may have been enforced so that gamma ratios can be computed naively without worrying about hitting a pole in the denominator. This seems to be born out, after making the above changes, I found that the cephes implementations of beta and betaln needed to be updated because they rely on this behavior. In addition, test_pbvd_points needed to be updated as well because it divides by gamma in the computation of reference values.
I think the preferred thing to do when computing gamma ratios should be to use rgamma for gammas in the denominators, but I discovered that rgamma(x) can be much less accurate than 1.0/gamma(x) for x away from 0. This caused test failures in test_mpmath for betaln when I switched betaln's implementation to use rgamma internally. I fixed this by updating the scalar kernel of rgamma to just compute 1.0/gamma(x) away from the origin, with special handling at the poles.
The strange behavior of gammasgn at poles is currently enforced through a test which compares special.gammasgn(x) with np.sign(special.rgamma(x).
https://github.com/scipy/scipy/blob/0f6de5836a9fa7bdd5121810ccd452bdde5295db/scipy/special/tests/test_basic.py#L400-L402
and since rgamma(x) == 0 at poles, the test passes when gammasgn(x) == 0 at poles. I'm not sure if there was a reason for deciding on this behavior. I've simply changed the test cases.
I've also added additional tests for gamma at poles and removed a test case enforcing gamma(-1) == +inf.
Additional information
The details section here contains the justification for choosing a cutoff for evaluating rgamma as 1/gamma rather than following the current rgamma implementation.

Here's a plot of the log10 of relative error against an mpmath reference for both rgamma and 1/gamma over the range (-99.9, 99.9) showing how bad things can be

Here are the deciles for relative error

method
min
10%
20%
30%
40%
50%
60%
70%
80%
90%
max

rgamma
0
0
1.68305e-16
3.08089e-16
2.56746e-15
7.53686e-15
1.32971e-14
1.95882e-14
2.8148e-14
4.31268e-14
1.35586e-13

1/gamma
0
0
0
0
1.22212e-16
1.43391e-16
1.67001e-16
1.92162e-16
2.24835e-16
3.22916e-16
1.07467e-15

zooming in, it looks like rgamma starts to do a little better near the origin

I eyeballed this plot, and chose a cutoff of |x| < 4 for using the existing rgamma. Here's the deciles for relative error just for |x| < 4.

method
min
10%
20%
30%
40%
50%
60%
70%
80%
90%
max

rgamma
0
0
0
0
0
0
0
1.26661e-16
1.58249e-16
2.0817e-16
3.13087e-16

1/gamma
0
0
0
0
0
0
1.26577e-16
1.51009e-16
1.92822e-16
2.2071e-16
4.24229e-16

I used the following function to calculate these plots and tables
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import scipy.special as special

from mpmath import mp

def get_rgamma_table_and_plot(x):
    res1 = special.rgamma(x)
    res2 = 1.0 / special.gamma(x)
    reference = np.fromiter((float(mp.rgamma(t)) for t in x), dtype=np.float64)

    rel_err1 = abs(res1 - reference)/abs(reference)
    rel_err2 = abs(res2 - reference)/abs(reference)

    # rgamma deciles
    dec1 = np.quantile(rel_err1, np.linspace(0, 1, 11))
    # gamma deciles
    dec2 = np.quantile(rel_err2, np.linspace(0, 1, 11))

    table = pd.DataFrame(
        [
            ["rgamma"] + dec1.tolist(),
            ["1/gamma"] + dec2.tolist(),
        ],
        columns=["method", "min"] + [f"{n}%" for n in range(10, 91, 10)] + ["max"],
    ).to_markdown(index=False, tablefmt="github")

    fig, ax = plt.subplots()
    ax.plot(x, np.where(rel_err1 == 0, -16, np.log10(rel_err1)), label="rgamma")
    ax.plot(x, np.where(rel_err2 == 0, -16, np.log10(rel_err2)), label="1/gamma")
    ax.set_xlabel("x")
    ax.set_ylabel("log10(rel error)")
    ax.legend()
    return table, fig

Potential impact
I ran the command
ack Gamma --type=cc

from within the scipy/scipy/special
directory to identify places where Gamma is used to see if there are other places where it appears in a denominator. In most of the examples, changing the pole behavior in this PR won't matter, because these special cases are already handled. To make it so the reviewer doesn't have to check that these cases are already handled in each of the instances where gamma appears in the denominator,  I've decided to uniformly switch to rgamma whenever gamma appears in the denominator. The exception is when you have a product with a gamma function in the denominator. In that case, typically there was a specific choice made to multiply first before dividing, typically in order to get better numerical accuracy. I'll enumerate these cases below, and will work on verifying no issues will result from changing the pole behavior.
besselpoly
https://github.com/scipy/scipy/blob/d1feb94fb2d8bdd845c79d276c9ca027f86e1841/scipy/special/xsf/cephes/besselpoly.h#L31-L36
but we see that these cases are already handled, so it's not an issue.
real valued hyp2f1:
https://github.com/scipy/scipy/blob/d1feb94fb2d8bdd845c79d276c9ca027f86e1841/scipy/special/xsf/cephes/hyp2f1.h#L274-L276
This case above occurs within a branch
            if (x > 0.9 && !(neg_int_a || neg_int_b)) {

so a and b cannot be poles. The name neg_int_a is not quite right, it really means non-positive.  From lines 168-174
            if (a <= 0 && std::abs(a - ia) < hyp2f1_EPS) { /* a is a negative integer */
                neg_int_a = 1;
            }

            if (b <= 0 && std::abs(b - ib) < hyp2f1_EPS) { /* b is a negative integer */
                neg_int_b = 1;
            }

https://github.com/scipy/scipy/blob/d1feb94fb2d8bdd845c79d276c9ca027f86e1841/scipy/special/xsf/cephes/hyp2f1.h#L295-L298
https://github.com/scipy/scipy/blob/d1feb94fb2d8bdd845c79d276c9ca027f86e1841/scipy/special/xsf/cephes/hyp2f1.h#L496-L497
https://github.com/scipy/scipy/blob/d1feb94fb2d8bdd845c79d276c9ca027f86e1841/scipy/special/xsf/cephes/hyp2f1.h#L535
complex valued hyp2f1
https://github.com/scipy/scipy/blob/d1feb94fb2d8bdd845c79d276c9ca027f86e1841/scipy/special/xsf/hyp2f1.h#L210
https://github.com/scipy/scipy/blob/d1feb94fb2d8bdd845c79d276c9ca027f86e1841/scipy/special/xsf/hyp2f1.h#L477C13-L479
https://github.com/scipy/scipy/blob/d1feb94fb2d8bdd845c79d276c9ca027f86e1841/scipy/special/xsf/hyp2f1.h#L489-L490
https://github.com/scipy/scipy/blob/d1feb94fb2d8bdd845c79d276c9ca027f86e1841/scipy/special/xsf/hyp2f1.h#L506
Some thoughts
Seeing  cases where we rely on gamma(n) == inf for n a non-positive integer at least makes me realize why this convention was chosen. It does give a shortcut when evaluating gamma ratios, and for cases like
gamma(a)*gamma(b)/(gamma(c)*gamma(d))

switching to using rgamma can result in reduced accuracy. I think it's better to follow the standard and most mathematically correct here way, but since we relied on this behavior internally, maybe there should be a deprecation period, or perhaps we should even keep a kwarg around permanently to switch between following the standard and returning +inf at the poles, changing the default after a deprecation period. If no one else sees an issue with it, I'm fine with treating this as a bug and just fixing it at once though.

Thanks @h-vetinari! For judging the new rgamma implementation click on Details in the  Additional Information section above. It will expand and show tables and plots demonstrating the new implementation is superior, along with the function i used to generate the tables and plots.

Sorry I missed that part 😅
Sounds great!

Something that's bothering me is that prior to this PR, rgamma is actually fairly inaccurate, so we have a situation where we advise those using scipy>=1.15 to use rgamma in gamma ratios, but for scipy<1.15 using rgamma may be unacceptably inaccurate. @h-vetinari, do you have any thoughts on this?

By tracing through the cephes hyp2f1 source code I was able to find an example input that returns NaN after fixing pole behavior of the gamma function. I added this example as a test case. To fix it, and avoid having to trace through other functions, I simply replaced all instances having a gamma in the denominator with rgamma.
I also added a note to the docstring explaining this change.

I have extensive test cases for complex hyp2f1 through scipy/special/_precompute/hyp2f1_data.py and used them to verify that switching from gammas in the denominator to using rgamma had an essentially negligible impact on accuracy.
Table here

branch
min
10%
20%
30%
40%
50%
60%
70%
80%
90%
max

main
0
1.55481e-16
3.18565e-16
5.25405e-16
8.06051e-16
1.2675e-15
2.24815e-15
5.18608e-15
2.7321e-14
2.808e-12
2.01644e+44

PR
0
1.54495e-16
3.15297e-16
5.22697e-16
8.04563e-16
1.26771e-15
2.24511e-15
5.20159e-15
2.72448e-14
2.82081e-12
2.01644e+44

this is over 3,003,855 test cases, covering all special cases.

so we have a situation where we advise those using scipy>=1.15 to use rgamma in gamma ratios, but for scipy<1.15 using rgamma may be unacceptably inaccurate. @h-vetinari, do you have any thoughts on this?

I don't think the relative accuracy of 1e-13 that you showed is "unacceptably inaccurate". The reason I think this is not an issue is that it depends on someone sensitive to both:

incorrectly getting Infs from poles of the gamma function
requiring extreme accuracy that rgamma before this PR doesn't provide

I don't think many such cases exist, and if they do, they can write a version-dependent work-around, or just stay with gamma universally and do their own Inf/NaN-handling.

I have extensive test cases for complex hyp2f1 through scipy/special/_precompute/hyp2f1_data.py and used them to verify that switching from gammas in the denominator to using rgamma had an essentially negligible impact on accuracy.

That further strengthens the argument above. :)

Thanks @h-vetinari. I agree and am happy fixing this without deprecating the buggy behavior. It should be ready now

Thanks @h-vetinari. Feel free to merge. I'll review https://github.com/scipy/scipy/pull/21801 after you update it to remove the now unnecessary workaround.

Feel free to merge.

Did you want to maintain the full commit history here (already nicely separated, but quite a few), or would you prefer to squash? I'm fine either way.

Feel free to merge.

Did you want to maintain the full commit history here (already nicely separated, but quite a few), or would you prefer to squash? I'm fine either way.

Go ahead and squash

I just rebased #21801 and noticed some failures because the following is still inconsistent:

If the argument is $\pm 0$, $\pm \infty$ is returned.

If the argument is a negative integer, NaN is returned.

Why should 0 be special compared to all the other negative integers? The behaviour is qualitatively exactly the same

I get the argument that this follows the C standard, but as it stands, I'd still need a wrapper to turn infinities at 0 to NaNs for the factorial implementation...

Why should 0 be special compared to all the other negative integers? The behaviour is qualitatively exactly the same

That's a great question actually. It's because zero has a sign bit in IEEE-754 floats, so we have both -0.0 and +0.0. The sign bit can be used this to signify the direction in which 0 is being approached, so gamma(+0.0) == +inf and gamma(-0.0) == -inf. You may have also noticed that 1/+0.0 == +inf and 1/-0.0 == -inf for IEEE-754 floats, the situation is just the same here. This starts to look very practical when you notice that a zero can appear somewhere due to underflow, and you get to preserve the sign through underflow.
I'd be surprised if you really need to turn infinities at 0 to NaNs for your factorial implementation, it seems like a case where you'd want to use the sign bit of zero.
For added fun, Kahan has a really cool paper on the sign bit of zero Much Ado about Nothing's Sign Bit, particularly, about using it handle branch cuts in the complex plane.

I'd be surprised if you really need to turn infinities at 0 to NaNs for your factorial implementation, it seems like a case where you'd want to use the sign bit of zero.

Ah, I shouldn't have been surprised though. You have factorial(-1) == gamma(0), and there's no "two-sidedness" for -1. Sorry, it looks like you still need a wrapper here. It might be more clean to make a private _factorial ufunc that's just gamma(n + 1), special cases at n = -1.

That's a great question actually. It's because zero has a sign bit in IEEE-754 floats, so we have both -0.0 and +0.0.

I know that, and I consider -0.0 to be an abomination. :)

You have factorial(-1) == gamma(0), and there's no "two-sidedness" for -1. Sorry, it looks like you still need a wrapper here.

Fine by me. 🙃

@h-vetinari. Instead having a wrapper gamma_nonconforming or whatever, I think you should define a gamma1p that behaves in the natural way. It would naturally return NaN at -1.
Also if you  think -0.0 is an abomination, I think the Kahan paper I linked above might change your mind. I used to be puzzled by signed zero too, but it's actually very useful.

Instead having a wrapper gamma_nonconforming or whatever, I think you should define a private gamma1p that behaves in the natural way. It would naturally return NaN at -1. It can just wrap gamma and special case x = -1.

Would you like me to put this somewhere more prominent than scipy/special/_basic.py?

Also if you think -0.0 is an abomination, I think the Kahan paper I linked above might change your mind. I used to be puzzled by signed zero too, but it's actually very useful.

Thanks for the paper, I started reading it. So far I'm still convinced it's an abomination, though I'm willing to qualify that the signs make sense for complex math. That's where they should have been confined to. The damage -0.0 for real floats has done to general programming (in terms of bugs and wasted engineering time) dwarfs the benefits for the complex case IMO. Alas, it was too tempting to just assign the obvious bit pattern in general.

Actually, I think that module makes the most sense in any case, so putting it there now.

Yeah, agreed. It'll be a private function used only in _basic.py for now, so it seems like the best place to put it.

Thanks for the paper, I started reading it. So far I'm still convinced it's an abomination, though I'm willing to qualify that the signs make sense for complex math. That's where they should have been confined to. The damage -0.0 for real floats has done to general programming (in terms of bugs and wasted engineering time) dwarfs the benefits for the complex case IMO. Alas, it was too tempting to just assign the obvious bit pattern in general.

It sounds like you have some war stories you could share :)  I like signed zeros. They have a nice symmetry with signed infinities. Signed infinities can represent $\infty$ and $-\infty$ in the extended real line, but also are the approximations for any real number that is too large to fit in the representable range. You also have an interval of real numbers $(-\epsilon, \epsilon)$ too small to fit in the representable range, and it's nice to be able to preserve at least their signs.


Tests suite for storage adapters

This test suite is based on the @acurrieclark comment:

the only reason we know the existing adapters work is because we are using them in production!

To get production data, I launched the React to-do app from the example directory. I also launched the Node.js server and recorded calls to each public method of the NodeFSStorageAdapter instance. That recordings found its place in the test suite. I made buffers smaller for simplicity.
The reason why the storage adapter test suite function has such an interface and is used in this specific way is because I think it should be possible to execute suite hooks. For example, I think it's a good idea to clean up temp files after the execution of each test. The suit hooks are a good place for this, because they will be called even if a test fails. But it seems that for testing the NodeFSStoradgeAdapter, calling the suite hook is not necessary.
In addition to all above I have added comments to explain the decision behind and reasons for a change.

I added some tests based on the issues I noticed while working on the LevelDbStoradgeAdapter in the side branch.

While writing the SQLite storadge adapter. I encountered an issue that forces me to ask a question again. Is this test which I added based on the NodeFSStorageAdapter behavior correct? Is this behavior expected?

@HerbCaudill in this comment you wrote:

i think it would be a good idea to restructure the storage adapter tests that currently live in StorageSubsystem.test.ts so that they work more like the network adapter acceptance tests here

I can say that I did that in this PR. Could I ask you to review it?

Just a kind reminder: @HerbCaudill could you please review this PR?

While writing the SQLite storadge adapter. I encountered an issue that forces me to ask a question again. Is this test which I added based on the NodeFSStorageAdapter behavior correct? Is this behavior expected?

I'm pretty sure that's what I would expect - @pvh @alexjg @alexcc thoughts?

Hi, @bijela-gora - thanks for working on this, looks good and does what it needs to do. I'd like to organize things a little differently, can you allow me to push commits to this PR branch?

I also rebased on latest main branch so it can be merged.
Let me know if this all looks good to you, and I'll merge this PR.

@HerbCaudill let's merge?


dispactching expect_table_row_count_to_equal

dispactching expect_table_row_count_to_equal to create a shim to make it compatible with TSQL

Hi @alieus! Anything else you need from me to make those changes?

Hey @clausherther. I believe I made the changes you requested. This should be good to merge. Let me know if you think otherwise.


@sentry+cli Running install script, failed

Summary
From a clean clone, installing fails when installing sentry
Steps to reproduce

git clone https://github.com/saleor/react-storefront
cd react-storefront
pnpm i

Scope: all 10 workspace projects
packages/ui-kit                          |  WARN  deprecated<EMAIL_ADDRESS>apps/checkout                            |  WARN  deprecated<EMAIL_ADDRESS>apps/checkout                            |  WARN  deprecated<EMAIL_ADDRESS>packages/ui-kit                          |  WARN  deprecated<EMAIL_ADDRESS>packages/ui-kit                          |  WARN  deprecated<EMAIL_ADDRESS>packages/ui-kit                          |  WARN  deprecated<EMAIL_ADDRESS>apps/saleor-app-checkout                 |  WARN  deprecated<EMAIL_ADDRESS>packages/ui-kit                          |  WARN  deprecated<EMAIL_ADDRESS>apps/saleor-app-checkout                 |  WARN  deprecated<EMAIL_ADDRESS>apps/saleor-app-checkout                 |  WARN  deprecated<EMAIL_ADDRESS>apps/saleor-app-checkout                 |  WARN  deprecated<EMAIL_ADDRESS>packages/ui-kit                          |  WARN  deprecated<EMAIL_ADDRESS>Packages: +2786
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Packages are hard linked from the content-addressable store to the virtual store.
  Content-addressable store is at: /media/thomas/DATA/.pnpm-store/v3
  Virtual store is at:             node_modules/.pnpm
Progress: resolved 2785, reused 2717, downloaded 0, added 2786, done
node_modules/.pnpm/@sentry+cli@1.74.5/node_modules/@sentry/cli: Running install script, failed in 218ms
.../node_modules/@sentry/cli install$ node ./scripts/install.js
└─ Failed in 218ms
node_modules/.pnpm/msw<EMAIL_ADDRESS>Running postinstall script...
 ELIFECYCLE  Command failed with exit code 1.

A link to a reproduction repository
No response
Output from envinfo
System:

OS: Linux 5.4 Ubuntu 20.04.4 LTS (Focal Fossa)
CPU: (8) x64 Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
Memory: 9.21 GB / 15.59 GB
Container: Yes
Shell: 5.0.17 - /bin/bash

Browsers:

Firefox: 104.0

pnpm version : 7.9.3

Thank you for reporting this! Unfortunately, I'm having a hard time reproducing the problem :( It all seems to work for me locally and on Vercel.
However, I've seen some similar issues in the Sentry repository – do you think it would be appropriate to report it to them?

https://github.com/getsentry/sentry-cli/issues/1308
https://github.com/getsentry/sentry-cli/issues/1249
https://github.com/getsentry/sentry-cli/issues/1226
https://github.com/getsentry/sentry-cli/issues/1089

Yes. I think it is something related to my environment. But it is still needed to understand. I will check.

I think I understood the problem.
the path of the cli is wrong
.../node_modules/@sentry/cli
when it should be
node_modules/.pnpm/@sentry+cli@1.74.5/node_modules/@sentry/cli
pnpm seems to mess it up. I can install it manually. I don't know much pnpm and cannot find a workaround.
Maybe push a message to sentry/pnpm team.

It solve itself by magic... after installing node version 16 ? With SENTRYCLI_USE_LOCAL=1 ? I don't know... It feels like a sentry/cli bug.
I will reopen if I am facing again this issue.


How to discover all discoverable devices

It seems zeroconf is not working for me on react native version 0.63.3. It is a none expo react app being tested on physical device. I registered a listener for all possible events and none fire. getServices() also returns {}. I know my service is working since I can ping the service from windows command line. Ideas?

I have the same issue, have you checked if you receive anything in the found event call? I can pick up the service name but the service never actually resolves.

I have the same issue, have you checked if you receive anything in the found event call? I can pick up the service name but the service never actually resolves.

What I did to solve the issue, I used bonjour browser on windows to discover the device. It came up as type: _workstation._tcp, now in react native zeroconf scan method instead of passing http as type I passed workstation as type i.e. scan('workstation', 'tcp', '.local');, this works. I figured this out due to the docs saying when trying to advertise you need to pass name and type underscore prefixed with a dot separating type and protocol for the type argument i.e. _http._tcp. So what I did was try to advertise using publishService('_http._tcp', 'tcp', 'local', 'device', 8000, {'NAME': 'NULL'}), then tried to discover it in the same script with scan('http', 'tcp', '.local'); and it worked! In bonjour browser my phone came up as _http._tcp. So all I did was tried the same thing for the raspberry pi I was originally trying to discover and it worked.

What I did to solve the issue, I used bonjour browser on windows to discover the device. It came up as type: _workstation._tcp, now in react native zeroconf scan method instead of passing http as type I passed workstation as type i.e. scan('workstation', 'tcp', '.local');, this works. I figured this out due to the docs saying when trying to advertise you need to pass name and type underscore prefixed with a dot separating type and protocol for the type argument i.e. _http._tcp. So what I did was try to advertise using publishService('_http._tcp', 'tcp', 'local', 'device', 8000, {'NAME': 'NULL'}), then tried to discover it in the same script with scan('http', 'tcp', '.local'); and it worked! In bonjour browser my phone came up as _http._tcp. So all I did was tried the same thing for the raspberry pi I was originally trying to discover and it worked.

Sorry for the long winded reply but this is so confusing I hope this explains it perfectly to the next wanderer. I may open a PR to make it clearer.

Sorry for the long winded reply but this is so confusing I hope this explains it perfectly to the next wanderer. I may open a PR to make it clearer.

What I did to solve the issue, I used bonjour browser on windows to discover the device. It came up as type: _workstation._tcp, now in react native zeroconf scan method instead of passing http as type I passed workstation as type i.e. scan('workstation', 'tcp', '.local');, this works. I figured this out due to the docs saying when trying to advertise you need to pass name and type underscore prefixed with a dot separating type and protocol for the type argument i.e. _http._tcp. So what I did was try to advertise using publishService('_http._tcp', 'tcp', 'local', 'device', 8000, {'NAME': 'NULL'}), then tried to discover it in the same script with scan('http', 'tcp', 'local'); and it worked! In bonjour browser my phone came up as _http._tcp. So all I did was tried the same thing for the raspberry pi I was originally trying to discover and it worked.

Was the resolved event ever called though?

What I did to solve the issue, I used bonjour browser on windows to discover the device. It came up as type: _workstation._tcp, now in react native zeroconf scan method instead of passing http as type I passed workstation as type i.e. scan('workstation', 'tcp', '.local');, this works. I figured this out due to the docs saying when trying to advertise you need to pass name and type underscore prefixed with a dot separating type and protocol for the type argument i.e. _http._tcp. So what I did was try to advertise using publishService('_http._tcp', 'tcp', 'local', 'device', 8000, {'NAME': 'NULL'}), then tried to discover it in the same script with scan('http', 'tcp', 'local'); and it worked! In bonjour browser my phone came up as _http._tcp. So all I did was tried the same thing for the raspberry pi I was originally trying to discover and it worked.

Was the resolved event ever called though?

Yea everything works fine now.

Yea everything works fine now.

I got mine working, turns out battery optimizations were causing the resolve failures, I set com.android.server.NetworkPermissionConfig to 'don't optimise' in my android settings under: Apps & Notifications -> Advanced -> Special App Access -> Battery Optimization, now it works every time.

I got mine working, turns out battery optimizations were causing the resolve failures, I set com.android.server.NetworkPermissionConfig to 'don't optimise' in my android settings under: Apps & Notifications -> Advanced -> Special App Access -> Battery Optimization, now it works every time.

@nxtexe
can you please guide me that how to use it??


Add MasterDetailPage sample

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Sample project for MasterDetailPage
What is the current behavior? (You can also link to an open issue here)
N/A
What is the new behavior (if this is a feature change)?
N/A
What might this PR break?
Nothing
Please check if the PR fulfills these requirements

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

Other information:

I think a case can be made for either way. Sure there’s potential for broken samples, but maybe that could be a good thing. Someone reports it and we’re forced to fix it. Let’s see what the others have to say. I’m okay with whatever’s decided, in that regard.

VSTS is down at the moment. Will get in after it revives itself.


Update .travis.yml

removed hhvm and added travis composer cache

Coverage remained the same at 96.041% when pulling 730a6082d1bb47eb42e1dc70777bfefd07f1ab46 on travis-fix into cac1e3047a0b2c3080bd0112ac8c0a55ccacdcce on develop.


[BUG] Improve the UI of the user testimonial section

Description
Description of the issue
Current user testimonial section lacks interactivity as well as responsiveness.
Expected outcome

Ensure the section is fully responsive, with testimonials stacking or adjusting properly across different screen sizes (desktop, tablet, mobile).
Add hover animations or fade-in effects to increase interactivity and engagement.
Include social media icons to make testimonials more engaging.

I would love to contribute by working on this issue. Please assign it to me.
Screenshots

Any additional information?
No response
What browser are you seeing the problem on?
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I'm a GSSoC'24-Extd contributor
[X] I'm a Hacktoberfest'24 contributor
[X] I am willing to work on this issue (optional)

Hey @Devaki01, great issue found! You are going to be assigned.

Don't forget to join our official Discord server.
And also follow us on Linkedin
And please ⭐ our repo

hey @Devaki01 I hope you are doing well!

It has been 1 days and you haven't responded to anything. Unfortunately, I have to close this issue because there are many duplicate issues raised. Please don't be discouraged. Thank you.


Ability to run code every time a role is used

In my environment from time to time we must test localization. This usually involves changing user language and checking that screen contains properly localized values.
So far we were successful using Roles to log in particular users (admins, regular users etc.) into the application. Unfortunately Roles currently cannot be used to reset additional users settings like a language, which in my application is automatically saved to the user profile after it is changed.
Good test practices suggest that we should arrange all settings before test starts. Ideally I wold like to just call useRole to both login the user and reset all user settings instead of relaying on finally blocks to clean up data after test ends. Of course I can use workaround from: https://github.com/DevExpress/testcafe/issues/2195 but I think this feature can also be useful to others. Ideally I should be able to pass additional block of code to the role that will be executed every time the role is used, alternatively there should be an option to make testcafe always initialize the role.

The TestCafe roles mechanism is intended only for manipulation with roles (you can save and restore cookies/storages).  It's unlikely that we will modify roles' API in the near future, so I recommend you use the workaround you mentioned:
async function UseRoleAndReset (role, t) {
    await t.useRole(role);
    // place your reset logic here
}

In addition, I need to mention the TestCafe hooks feature. The use of hooks could help you avoid copying your reset method to each test. It will allow you to reset your settings before each test starts or after each test finishes.


Errors while adding DP in parametric project

🔍 Before submitting the issue

[X] I have searched among the existing issues
[ ] I am using a Python virtual environment

🐞 Description of the bug
Following error is seen while adding Design Point in a parametric project:

This is reproduced only on some user systems.
Find attached project with which the issue was reproduced:
Design0001.zip
@seanpearsonuk @mkundu1 @prmukherj
📝 Steps to reproduce
import ansys.fluent.core as pyfluent
session = pyfluent.launch_Fluent(start_watchdog=True)
study_name = session.settings.current_parametric_study()
study = session.settings.parametric_studies[study_name]
dp_names = set([*study.design_points.keys()])
study.design_points.create()
dp_name = set([*study.design_points.keys()]).difference(dp_names).pop()
design_point = study.design_points[dp_name]
design_point.input_parameters[name] = value
💻 Which operating system are you using?
Windows
📀 Which ANSYS version are you using?
2025R1
🐍 Which Python version are you using?
3.10
📦 Installed packages
ansys-fluent-core v0.22dev0

@tejalprabhu01, could you please confirm if this issue is reproducible in the latest v251 fluent image?
Thank you

@tejalprabhu01, this was a temporary issue I think with a particular fluent build due to which the PyFluent nightly tests were also failing with the same error. I think it is no longer reproducible. Please let us know if you find otherwise. Thank you.

@prmukherj tested this with Fluent Build Time: Sep 12 2024 02:54:13 EST  Build Id: 155  Revision: ff7ada14bc  Branch: develop and pyfluent v0.24.1. The issue is fixed!


Cannot correct read local variable information in the location list from the dwarf section

When decompiling the binary compiled with "gcc -g -O2" from coreutils, I noticed that ghidra cannot recover the name of the local variables. For example, I select DWARF in the analysis and all its options (e.g., output dwarf die info):

I also tried the binary compiled with "gcc -g -O0", here is the same function info:

The differences between them are how variables are stored in dwarf (i.e., DW_AT_location). For example, for the variable ambiguous, O2 is in the location list:

its location list:

O0 is :

I checked the source code of ghidra about handling the location list the problem is here:
	public DWARFLocation getLocation(DWARFAttribute attribute, long pc) throws IOException {
		DWARFLocationList locList = getLocationList(attribute);
		return locList.getLocationContaining(pc);
	}

The getLocationContaining(pc); will make the information within the location list null. I checked this by using the following code:
	public DWARFLocation getLocation(DWARFAttribute attribute, long pc) throws IOException {
		DWARFLocationList locList = getLocationList(attribute);
		Msg.error(this,locList.toString());
		Msg.error(this,locList.getLocationContaining(pc));
		Msg.error(this,pc);
		return locList.getLocationContaining(pc);
	}

and have the following:

As you can see from the location list,  the local variable uses 5a84  as the "pc", which is not the same as dfunc.getEntryPc() (5a80). I believe in readLocalVariableStorage, the second input of getLocation should be handled differently. However, I am not an expert in dwarf4 writing, it could also be gcc goes wrong.

debug_inall.zip
Here is the binaries and related logs.


Straightening: crosses z-position should be computed in curved space

This needs to be done in order to take into account the curvature of the spinal cord.
Test will be made in branch bdl_test_straightening on errsm_11 (who has a high spinal cord curvature)

Done in commit 299920e21bb53490a0193a03d1710a95245fa534


The "invalid format" search query message should use their input, not whatever we have transformed it to

b3113adc


Need Help on Building API

Hi all,
I am new to this technology  and I am trying to build Hygieia dashboard, now I am stucked at API layer, caan anyone help me from here, I am too confused.
Appriciate your support

What problem are you running into? Building the API or running it?

In building the API and id any remote support or tutorial other than from git source?

We don't have such tutorial.
It's very straight forward:
To build everything --

git clone http://github.com/capitalone/Hygieia
cd Hygieia
mvn clean package

To build only API:

git clone http://github.com/capitalone/Hygieia
cd Hygieia
cd core
mvn clean install
cd ..
cd api
mvn clean package

I am able to generate the api.jar file but when in am running the command :
java -jar api.jar --spring.config.location=dashboard.properties
I receive some exception..Please find the logs below:
ar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/lib/jboss-logging-3.1.3
.GA.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/lib/javax.e
l-api-3.0.0.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/lib
/jackson-databind-2.5.0.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/
api.jar!/lib/jackson-annotations-2.5.0.jar!/, jar:file:/home/ibmcloud/Hygieia-2.
0.0/api/target/api.jar!/lib/jackson-core-2.5.0.jar!/, jar:file:/home/ibmcloud/Hy
gieia-2.0.0/api/target/api.jar!/lib/jackson-core-asl-1.9.13.jar!/, jar:file:/hom
e/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/lib/jackson-mapper-asl-1.9.13.jar!/
, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/lib/logback-classic-
1.1.3.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/lib/logba
ck-core-1.1.3.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/l
ib/slf4j-api-1.7.12.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api.
jar!/lib/commons-lang-2.6.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/targe
t/api.jar!/lib/guava-16.0.1.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/tar
get/api.jar!/lib/joda-time-2.7.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/
target/api.jar!/lib/springfox-swagger2-2.4.0.jar!/, jar:file:/home/ibmcloud/Hygi
eia-2.0.0/api/target/api.jar!/lib/swagger-annotations-1.5.6.jar!/, jar:file:/hom
e/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/lib/swagger-models-1.5.6.jar!/, jar
:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/lib/springfox-spi-2.4.0.j
ar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/lib/springfox-co
re-2.4.0.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/lib/sp
ringfox-schema-2.4.0.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api
.jar!/lib/springfox-swagger-common-2.4.0.jar!/, jar:file:/home/ibmcloud/Hygieia-
2.0.0/api/target/api.jar!/lib/springfox-spring-web-2.4.0.jar!/, jar:file:/home/i
bmcloud/Hygieia-2.0.0/api/target/api.jar!/lib/spring-plugin-core-1.1.0.RELEASE.j
ar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target/api.jar!/lib/spring-plugi
n-metadata-1.2.0.RELEASE.jar!/, jar:file:/home/ibmcloud/Hygieia-2.0.0/api/target
/api.jar!/lib/springfox-swagger-ui-2.4.0.jar!/, jar:file:/home/ibmcloud/Hygieia-
2.0.0/api/target/api.jar!/lib/classmate-1.3.1.jar!/, jar:file:/home/ibmcloud/Hyg
ieia-2.0.0/api/target/api.jar!/lib/joda-convert-1.8.1.jar!/, jar:file:/home/ibmc
loud/Hygieia-2.0.0/api/target/api.jar!/lib/commons-io-2.1.jar!/]
2016-09-24 09:10:53,755 INFO  o.s.b.a.l.AutoConfigurationReportLoggingInitialize
r -
Error starting ApplicationContext. To display the auto-configuration report enab
le debug logging (start with --debug)
2016-09-24 09:10:53,756 ERROR o.s.boot.SpringApplication - Application startup f
ailed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating
bean with name 'buildServiceImpl' defined in URL [jar:file:/home/ibmcloud/Hygie
ia-2.0.0/api/target/api.jar!/com/capitalone/dashboard/service/BuildServiceImpl.c
lass]: Unsatisfied dependency expressed through constructor argument with index
3 of type [com.capitalone.dashboard.service.CollectorService]: : Error creating
bean with name 'collectorServiceImpl': Invocation of init method failed; nested
exception is org.springframework.dao.DataAccessResourceFailureException: Timed o
ut after 30000 ms while waiting for a server that matches ReadPreferenceServerSe
lector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, s
ervers=[{address=<IP_ADDRESS>:33333, type=UNKNOWN, state=CONNECTING, exception={com
.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.ne
t.ConnectException: Connection refused}}]; nested exception is com.mongodb.Mongo
TimeoutException: Timed out after 30000 ms while waiting for a server that match
es ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster
state is {type=UNKNOWN, servers=[{address=<IP_ADDRESS>:33333, type=UNKNOWN, state=C
ONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening so
cket}, caused by {java.net.ConnectException: Connection refused}}]; nested excep
tion is org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'collectorServiceImpl': Invocation of init method failed; nested
exception is org.springframework.dao.DataAccessResourceFailureException: Timed o
ut after 30000 ms while waiting for a server that matches ReadPreferenceServerSe
lector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, s
ervers=[{address=<IP_ADDRESS>:33333, type=UNKNOWN, state=CONNECTING, exception={com
.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.ne
t.ConnectException: Connection refused}}]; nested exception is com.mongodb.Mongo
TimeoutException: Timed out after 30000 ms while waiting for a server that match
es ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster
state is {type=UNKNOWN, servers=[{address=<IP_ADDRESS>:33333, type=UNKNOWN, state=C
ONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening so
cket}, caused by {java.net.ConnectException: Connection refused}}]
at org.springframework.beans.factory.support.ConstructorResolver.createA
rgumentArray(ConstructorResolver.java:749) ~[spring-beans-4.1.7.RELEASE.jar!/:4.
1.7.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.autowir
eConstructor(ConstructorResolver.java:185) ~[spring-beans-4.1.7.RELEASE.jar!/:4.
1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1139) ~[spri
ng-beans-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1042) ~[sprin
g-beans-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) ~[spring-beans
-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:476) ~[spring-beans-4
.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
ject(AbstractBeanFactory.java:303) ~[spring-beans-4.1.7.RELEASE.jar!/:4.1.7.RELE
ASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.1.7.RELEA
SE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:299) ~[spring-beans-4.1.7.RELEASE.jar!/:4.1.7.RELEAS
E]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:194) ~[spring-beans-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.

preInstantiateSingletons(DefaultListableBeanFactory.java:755) ~[spring-beans-4.1
.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finish
BeanFactoryInitialization(AbstractApplicationContext.java:757) ~[spring-context-
4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:480) ~[spring-context-4.1.7.RELEASE.jar!/:4.1.
7.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationConte
xt.refresh(EmbeddedWebApplicationContext.java:118) ~[spring-boot-1.2.5.RELEASE.j
ar!/:1.2.5.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.
java:686) ~[spring-boot-1.2.5.RELEASE.jar!/:1.2.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java
:320) ~[spring-boot-1.2.5.RELEASE.jar!/:1.2.5.RELEASE]
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringA
pplicationBuilder.java:139) [spring-boot-1.2.5.RELEASE.jar!/:1.2.5.RELEASE]
at com.capitalone.dashboard.Application.main(Application.java:41) [api.j
ar!/:2.0.0-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.
0_66]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62) ~[na:1.8.0_66]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43) ~[na:1.8.0_66]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_66]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner
.java:53) [api.jar!/:2.0.0-SNAPSHOT]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creati
ng bean with name 'collectorServiceImpl': Invocation of init method failed; nest
ed exception is org.springframework.dao.DataAccessResourceFailureException: Time
d out after 30000 ms while waiting for a server that matches ReadPreferenceServe
rSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN
, servers=[{address=<IP_ADDRESS>:33333, type=UNKNOWN, state=CONNECTING, exception={
com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java
.net.ConnectException: Connection refused}}]; nested exception is com.mongodb.Mo
ngoTimeoutException: Timed out after 30000 ms while waiting for a server that ma
tches ReadPreferenceServerSelector{readPreference=primary}. Client view of clust
er state is {type=UNKNOWN, servers=[{address=<IP_ADDRESS>:33333, type=UNKNOWN, stat
e=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening
socket}, caused by {java.net.ConnectException: Connection refused}}]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBea
nPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProc
essor.java:136) ~[spring-beans-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanF
actory.java:408) ~[spring-beans-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566) ~[spring-be
ans-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) ~[spring-beans
-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:476) ~[spring-beans-4
.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
ject(AbstractBeanFactory.java:303) ~[spring-beans-4.1.7.RELEASE.jar!/:4.1.7.RELE
ASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.1.7.RELEA
SE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:299) ~[spring-beans-4.1.7.RELEASE.jar!/:4.1.7.RELEAS
E]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:194) ~[spring-beans-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.

findAutowireCandidates(DefaultListableBeanFactory.java:1120) ~[spring-beans-4.1.
7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.
doResolveDependency(DefaultListableBeanFactory.java:1044) ~[spring-beans-4.1.7.R
ELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.
resolveDependency(DefaultListableBeanFactory.java:942) ~[spring-beans-4.1.7.RELE
ASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.resolve
AutowiredArgument(ConstructorResolver.java:813) ~[spring-beans-4.1.7.RELEASE.jar
!/:4.1.7.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.createA
rgumentArray(ConstructorResolver.java:741) ~[spring-beans-4.1.7.RELEASE.jar!/:4.
1.7.RELEASE]
... 23 common frames omitted
Caused by: org.springframework.dao.DataAccessResourceFailureException: Timed out
after 30000 ms while waiting for a server that matches ReadPreferenceServerSele
ctor{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, ser
vers=[{address=<IP_ADDRESS>:33333, type=UNKNOWN, state=CONNECTING, exception={com.m
ongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.
ConnectException: Connection refused}}]; nested exception is com.mongodb.MongoTi
meoutException: Timed out after 30000 ms while waiting for a server that matches
ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster st
ate is {type=UNKNOWN, servers=[{address=<IP_ADDRESS>:33333, type=UNKNOWN, state=CON
NECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening sock
et}, caused by {java.net.ConnectException: Connection refused}}]
at org.springframework.data.mongodb.core.MongoExceptionTranslator.transl
ateExceptionIfPossible(MongoExceptionTranslator.java:75) ~[spring-data-mongodb-1
.8.0.RELEASE.jar!/:na]
at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConver
tRuntimeException(MongoTemplate.java:2013) ~[spring-data-mongodb-1.8.0.RELEASE.j
ar!/:na]
at org.springframework.data.mongodb.core.MongoTemplate.executeFindOneInt
ernal(MongoTemplate.java:1843) ~[spring-data-mongodb-1.8.0.RELEASE.jar!/:na]
at org.springframework.data.mongodb.core.MongoTemplate.doFindOne(MongoTe
mplate.java:1656) ~[spring-data-mongodb-1.8.0.RELEASE.jar!/:na]
at org.springframework.data.mongodb.core.MongoTemplate.findOne(MongoTemp
late.java:564) ~[spring-data-mongodb-1.8.0.RELEASE.jar!/:na]
at org.springframework.data.mongodb.repository.query.AbstractMongoQuery$
SingleEntityExecution.execute(AbstractMongoQuery.java:312) ~[spring-data-mongodb
-1.8.0.RELEASE.jar!/:na]
at org.springframework.data.mongodb.repository.query.AbstractMongoQuery.
execute(AbstractMongoQuery.java:108) ~[spring-data-mongodb-1.8.0.RELEASE.jar!/:n
a]
at org.springframework.data.repository.core.support.RepositoryFactorySup
port$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:454)
~[spring-data-commons-1.11.0.RELEASE.jar!/:na]
at org.springframework.data.repository.core.support.RepositoryFactorySup
port$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:432) ~[
spring-data-commons-1.11.0.RELEASE.jar!/:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.7.RELEASE.jar!/:4.1.7.RELE
ASE]
at org.springframework.data.projection.DefaultMethodInvokingMethodInterc
eptor.invoke(DefaultMethodInvokingMethodInterceptor.java:61) ~[spring-data-commo
ns-1.11.0.RELEASE.jar!/:na]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.7.RELEASE.jar!/:4.1.7.RELE
ASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invok
e(ExposeInvocationInterceptor.java:92) ~[spring-aop-4.1.7.RELEASE.jar!/:4.1.7.RE
LEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(
ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.7.RELEASE.jar!/:4.1.7.RELE
ASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynami
cAopProxy.java:207) ~[spring-aop-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at com.sun.proxy.$Proxy68.findByName(Unknown Source) ~[na:na]
at com.capitalone.dashboard.service.CollectorServiceImpl.initProductColl
ectorOnStartup(CollectorServiceImpl.java:65) ~[api.jar!/:2.0.0-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.
0_66]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62) ~[na:1.8.0_66]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43) ~[na:1.8.0_66]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_66]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBea
nPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.ja
va:349) ~[spring-beans-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBea
nPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPost
Processor.java:300) ~[spring-beans-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBea
nPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProc
essor.java:133) ~[spring-beans-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
... 36 common frames omitted
Caused by: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while wai
ting for a server that matches ReadPreferenceServerSelector{readPreference=prima
ry}. Client view of cluster state is {type=UNKNOWN, servers=[{address=<IP_ADDRESS>:
33333, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenExc
eption: Exception opening socket}, caused by {java.net.ConnectException: Connect
ion refused}}]
at com.mongodb.connection.BaseCluster.createTimeoutException(BaseCluster
.java:370) ~[mongo-java-driver-3.0.2.jar!/:na]
at com.mongodb.connection.BaseCluster.selectServer(BaseCluster.java:101)
~[mongo-java-driver-3.0.2.jar!/:na]
at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.(ClusterBinding.java:75) ~[mongo-java-driver-3.0.2.jar!/:na]
at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.(ClusterBinding.java:71) ~[mongo-java-driver-3.0.2.jar!/:na]
at com.mongodb.binding.ClusterBinding.getReadConnectionSource(ClusterBin
ding.java:63) ~[mongo-java-driver-3.0.2.jar!/:na]
at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.
java:166) ~[mongo-java-driver-3.0.2.jar!/:na]
at com.mongodb.operation.FindOperation.execute(FindOperation.java:394) ~
[mongo-java-driver-3.0.2.jar!/:na]
at com.mongodb.operation.FindOperation.execute(FindOperation.java:57) ~[
mongo-java-driver-3.0.2.jar!/:na]
at com.mongodb.Mongo.execute(Mongo.java:738) ~[mongo-java-driver-3.0.2.j
ar!/:na]
at com.mongodb.Mongo$2.execute(Mongo.java:725) ~[mongo-java-driver-3.0.2
.jar!/:na]
at com.mongodb.DBCollection.findOne(DBCollection.java:737) ~[mongo-java-
driver-3.0.2.jar!/:na]
at com.mongodb.DBCollection.findOne(DBCollection.java:710) ~[mongo-java-
driver-3.0.2.jar!/:na]
at com.mongodb.DBCollection.findOne(DBCollection.java:657) ~[mongo-java-
driver-3.0.2.jar!/:na]
at org.springframework.data.mongodb.core.MongoTemplate$FindOneCallback.d
oInCollection(MongoTemplate.java:2080) ~[spring-data-mongodb-1.8.0.RELEASE.jar!/
:na]
at org.springframework.data.mongodb.core.MongoTemplate$FindOneCallback.d
oInCollection(MongoTemplate.java:2064) ~[spring-data-mongodb-1.8.0.RELEASE.jar!/
:na]
at org.springframework.data.mongodb.core.MongoTemplate.executeFindOneInt
ernal(MongoTemplate.java:1839) ~[spring-data-mongodb-1.8.0.RELEASE.jar!/:na]
... 57 common frames omitted

Here's the relevant section from the output:
...
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating
 bean with name 'buildServiceImpl' defined in URL [jar:file:/home/ibmcloud/Hygie
ia-2.0.0/api/target/api.jar!/com/capitalone/dashboard/service/BuildServiceImpl.c
lass]: Unsatisfied dependency expressed through constructor argument with index
3 of type [com.capitalone.dashboard.service.CollectorService]: : Error creating
bean with name 'collectorServiceImpl': Invocation of init method failed; nested
exception is org.springframework.dao.DataAccessResourceFailureException: Timed o
ut after 30000 ms while waiting for a server that matches ReadPreferenceServerSe
lector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, s
ervers=[{address=<IP_ADDRESS>:33333, type=UNKNOWN, state=CONNECTING, exception={com
.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.ne
t.ConnectException: Connection refused}}]
...

Make sure your database can be reached at the following address: <IP_ADDRESS>:33333. Also check that your other database settings are appropriate.

Hi.. I don't get exceptions anymore...But..I am not able to access the API layer.Since I am running Hygieia over a VM, the API Layer should be accessible through the ip address of the VM i.e., <IP_ADDRESS>:8080 (if i am not wrong).. Here are the logs:
:: Spring Boot ::        (v1.2.5.RELEASE)
2016-09-27 10:29:23,677 INFO  com.capitalone.dashboard.Application - Starting Ap
plication v2.0.0-SNAPSHOT with PID 4670 (/home/ibmcloud/Hygieia-2.0.0/api/target
/api.jar started by root in /home/ibmcloud/Hygieia-2.0.0/api)
2016-09-27 10:29:23,757 INFO  o.s.b.c.e.AnnotationConfigEmbeddedWebApplicationCo
ntext - Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmb
eddedWebApplicationContext@4a9effa2: startup date [Tue Sep 27 10:29:23 UTC 2016]
; root of context hierarchy
2016-09-27 10:29:26,188 INFO  o.s.b.f.a.AutowiredAnnotationBeanPostProcessor - J
SR-330 'javax.inject.Inject' annotation found and supported for autowiring
2016-09-27 10:29:26,250 INFO  o.h.validator.internal.util.Version - HV000001: Hi
bernate Validator 5.1.3.Final
2016-09-27 10:29:26,903 INFO  o.s.b.c.e.t.TomcatEmbeddedServletContainer - Tomca
t initialized with port(s): 8080 (http)
2016-09-27 10:29:27,223 INFO  o.a.catalina.core.StandardService - Starting servi
ce Tomcat
2016-09-27 10:29:27,225 INFO  o.a.catalina.core.StandardEngine - Starting Servle
t Engine: Apache Tomcat/8.0.23
2016-09-27 10:29:27,487 INFO  o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing
Spring embedded WebApplicationContext
2016-09-27 10:29:27,487 INFO  o.s.web.context.ContextLoader - Root WebApplicatio
nContext: initialization completed in 3730 ms
2016-09-27 10:29:27,740 INFO  c.c.dashboard.config.MongoConfig - Initializing Mo
ngo Client server at: localhost:27017
2016-09-27 10:29:27,867 INFO  org.mongodb.driver.cluster - Cluster created with
settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, ser
verSelectionTimeout='30000 ms', maxWaitQueueSize=500}
2016-09-27 10:29:27,900 INFO  c.c.dashboard.config.MongoConfig - Connecting to M
ongo: Mongo{options=MongoClientOptions{description='null', readPreference=primar
y, writeConcern=WriteConcern{w=1, wtimeout=0, fsync=false, j=false, codecRegistr
y=org.bson.codecs.configuration.ProvidersCodecRegistry@f0b59a60, minConnectionsP
erHost=0, maxConnectionsPerHost=100, threadsAllowedToBlockForConnectionMultiplie
r=5, serverSelectionTimeout=30000, maxWaitTime=120000, maxConnectionIdleTime=0,
maxConnectionLifeTime=0, connectTimeout=10000, socketTimeout=0, socketKeepAlive=
false, sslEnabled=false, sslInvalidHostNamesAllowed=false, alwaysUseMBeans=false
, heartbeatFrequency=10000, minHeartbeatFrequency=500, heartbeatConnectTimeout=2
0000, heartbeatSocketTimeout=20000, localThreshold=15, requiredReplicaSetName='n
ull', dbDecoderFactory=com.mongodb.DefaultDBDecoder$1@5ecca014, dbEncoderFactory
=com.mongodb.DefaultDBEncoder$1@7f2b64e0, socketFactory=javax.net.DefaultSocketF
actory@704899ba, cursorFinalizerEnabled=true, connectionPoolSettings=ConnectionP
oolSettings{maxSize=100, minSize=0, maxWaitQueueSize=500, maxWaitTimeMS=120000,
maxConnectionLifeTimeMS=0, maxConnectionIdleTimeMS=0, maintenanceInitialDelayMS=
0, maintenanceFrequencyMS=60000}, socketSettings=SocketSettings{connectTimeoutMS
=10000, readTimeoutMS=0, keepAlive=false, receiveBufferSize=0, sendBufferSize=0}
, serverSettings=ServerSettings{heartbeatFrequencyMS=10000, minHeartbeatFrequenc
yMS=500}, heartbeatSocketSettings=SocketSettings{connectTimeoutMS=20000, readTim
eoutMS=20000, keepAlive=false, receiveBufferSize=0, sendBufferSize=0}}}
2016-09-27 10:29:28,030 INFO  org.mongodb.driver.connection - Opened connection
[connectionId{localValue:1, serverValue:42}] to localhost:27017
2016-09-27 10:29:28,033 INFO  org.mongodb.driver.cluster - Monitor thread succes
sfully connected to server with description ServerDescription{address=localhost:
27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionL
ist=[2, 6, 12]}, minWireVersion=0, maxWireVersion=2, electionId=null, maxDocumen
tSize=16777216, roundTripTimeNanos=1918200}
2016-09-27 10:29:28,253 INFO  o.s.b.c.e.ServletRegistrationBean - Mapping servle
t: 'dispatcherServlet' to [/]
2016-09-27 10:29:28,260 INFO  o.s.b.c.e.FilterRegistrationBean - Mapping filter:
'characterEncodingFilter' to: [/]
2016-09-27 10:29:28,260 INFO  o.s.b.c.e.FilterRegistrationBean - Mapping filter:
'loggingFilter' to: [/]
2016-09-27 10:29:28,675 INFO  org.mongodb.driver.connection - Opened connection
[connectionId{localValue:2, serverValue:43}] to localhost:27017
2016-09-27 10:29:31,076 INFO  org.mongodb.driver.cluster - Monitor thread succes
sfully connected to server with description ServerDescription{address=localhost:
27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionL
ist=[2, 6, 12]}, minWireVersion=0, maxWireVersion=2, electionId=null, maxDocumen
tSize=16777216, roundTripTimeNanos=453641}
2016-09-27 10:29:31,078 INFO  org.mongodb.driver.connection - Opened connection
[connectionId{localValue:5, serverValue:46}] to localhost:27017
2016-09-27 10:29:31,079 INFO  org.mongodb.driver.cluster - Monitor thread succes
sfully connected to server with description ServerDescription{address=localhost:
27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionL
ist=[2, 6, 12]}, minWireVersion=0, maxWireVersion=2, electionId=null, maxDocumen
tSize=16777216, roundTripTimeNanos=423444}
2016-09-27 10:29:31,082 INFO  c.c.dashboard.config.MongoConfig - Connecting to M
ongo: Mongo{options=MongoClientOptions{description='null', readPreference=primar
y, writeConcern=WriteConcern{w=1, wtimeout=0, fsync=false, j=false, codecRegistr
y=org.bson.codecs.configuration.ProvidersCodecRegistry@f0b59a60, minConnectionsP
erHost=0, maxConnectionsPerHost=100, threadsAllowedToBlockForConnectionMultiplie
r=5, serverSelectionTimeout=30000, maxWaitTime=120000, maxConnectionIdleTime=0,
maxConnectionLifeTime=0, connectTimeout=10000, socketTimeout=0, socketKeepAlive=
false, sslEnabled=false, sslInvalidHostNamesAllowed=false, alwaysUseMBeans=false
, heartbeatFrequency=10000, minHeartbeatFrequency=500, heartbeatConnectTimeout=2
0000, heartbeatSocketTimeout=20000, localThreshold=15, requiredReplicaSetName='n
ull', dbDecoderFactory=com.mongodb.DefaultDBDecoder$1@5ecca014, dbEncoderFactory
=com.mongodb.DefaultDBEncoder$1@7f2b64e0, socketFactory=javax.net.DefaultSocketF
actory@704899ba, cursorFinalizerEnabled=true, connectionPoolSettings=ConnectionP
oolSettings{maxSize=100, minSize=0, maxWaitQueueSize=500, maxWaitTimeMS=120000,
maxConnectionLifeTimeMS=0, maxConnectionIdleTimeMS=0, maintenanceInitialDelayMS=
0, maintenanceFrequencyMS=60000}, socketSettings=SocketSettings{connectTimeoutMS
=10000, readTimeoutMS=0, keepAlive=false, receiveBufferSize=0, sendBufferSize=0}
, serverSettings=ServerSettings{heartbeatFrequencyMS=10000, minHeartbeatFrequenc
yMS=500}, heartbeatSocketSettings=SocketSettings{connectTimeoutMS=20000, readTim
eoutMS=20000, keepAlive=false, receiveBufferSize=0, sendBufferSize=0}}}
2016-09-27 10:29:31,379 INFO  o.s.j.e.a.AnnotationMBeanExporter - Registering be
ans for JMX exposure on startup
2016-09-27 10:29:31,391 INFO  s.d.s.w.p.DocumentationPluginsBootstrapper - Conte
xt refreshed
2016-09-27 10:29:31,418 INFO  s.d.s.w.p.DocumentationPluginsBootstrapper - Found
1 custom documentation plugin(s)
2016-09-27 10:29:31,432 INFO  s.d.s.w.s.ApiListingReferenceScanner - Scanning fo
r api listing references
2016-09-27 10:29:31,857 INFO  s.d.s.w.r.o.CachingOperationNameGenerator - Genera
ting unique operation named: searchUsingGET_1
2016-09-27 10:29:31,944 INFO  s.d.s.w.r.o.CachingOperationNameGenerator - Genera
ting unique operation named: createBuildUsingPOST_1
2016-09-27 10:29:31,957 INFO  s.d.s.w.r.o.CachingOperationNameGenerator - Genera
ting unique operation named: deployStatusUsingGET_1
2016-09-27 10:29:32,138 INFO  s.d.s.w.r.o.CachingOperationNameGenerator - Genera
ting unique operation named: qualityDataUsingGET_1
2016-09-27 10:29:32,181 INFO  o.a.coyote.http11.Http11NioProtocol - Initializing
ProtocolHandler ["http-nio-8080"]
2016-09-27 10:29:32,197 INFO  o.a.coyote.http11.Http11NioProtocol - Starting Pro
tocolHandler ["http-nio-8080"]
2016-09-27 10:29:32,203 INFO  o.a.tomcat.util.net.NioSelectorPool - Using a shar
ed selector for servlet write/read
2016-09-27 10:29:32,226 INFO  o.s.b.c.e.t.TomcatEmbeddedServletContainer - Tomca
t started on port(s): 8080 (http)
2016-09-27 10:29:32,228 INFO  com.capitalone.dashboard.Application - Started App
lication in 8.922 seconds (JVM running for 9.848)

Ok, looks like it's connecting to MongoDB now, so that's good.
The API will be listening at http://localhost:8080 on your VM, so in order to access it from your host machine, you'll have to either go through the VM's IP Address or try something like http://<IP_ADDRESS>:8080, which should be the local address to your VM from your host.

I have already tried pinging my VM's IP Address i.e., <IP_ADDRESS>:8080 but I am not able to access the API . I am running th VM in public Bluemix environment(which is an open PAAS provided  by IBM) and my VM has only two ips assigned ..one is PUBLIC IP and the other one PRIVATE IP..I have tried pinging both of the ips but no luck. Is there any issue with the execution of the jar file itself?

No, the jar seemed to start up just fine:
...
2016-09-27 10:29:32,226 INFO  o.s.b.c.e.t.TomcatEmbeddedServletContainer - Tomcat started on port(s): 8080 (http)
2016-09-27 10:29:32,228 INFO  com.capitalone.dashboard.Application - Started Application in 8.922 seconds (JVM running for 9.848)

Is it just the API that's not working, or are you also not able to access the UI?

I am not able to access the UI too.!! :(

Here is the result for  'gulp serve' to get Hygieia UI running but i am not able to see the  UI as well..
[root@hygieia UI]# gulp serve
[07:24:01] Warning: gulp version mismatch:
[07:24:01] Global gulp is 3.9.1
[07:24:01] Local gulp is 3.8.11
[07:24:03] Using gulpfile /home/ibmcloud/Hygieia-2.0.0/UI/gulpfile.js
[07:24:03] Starting 'build'...
[07:24:03] Starting 'clean'...
[07:24:03] Finished 'clean' after 63 ms
[07:24:03] Starting 'assets'...
[07:24:03] Starting 'themes'...
[07:24:03] Starting 'fonts'...
[07:24:03] Starting 'js'...
[07:24:03] Starting 'views'...
[07:24:03] Starting 'test-data'...
[07:24:10] Finished 'test-data' after 7.64 s
[07:24:13] Finished 'assets' after 9.9 s
[07:24:13] Finished 'themes' after 9.9 s
[07:24:13] Finished 'views' after 9.96 s
[07:24:13] Finished 'js' after 10 s
[07:24:13] Finished 'fonts' after 10 s
[07:24:13] Starting 'html'...
[07:24:13] gulp-inject 1 files into index.html.
[07:24:13] gulp-inject 89 files into index.html.
[07:24:13] Finished 'html' after 195 ms
[07:24:13] Finished 'build' after 11 s
[07:24:13] Starting 'serve'...
[07:24:13] Finished 'serve' after 292 ms
[BS] Local URL: http://localhost:3000
[BS] External URL: http://<IP_ADDRESS>:3000
[BS] Serving files from: dist/

Here is the result for 'gulp serve' to get Hygieia UI running but i am not
able to see the UI as well..
[root@hygieia UI]# gulp serve
[07:24:01] Warning: gulp version mismatch:
[07:24:01] Global gulp is 3.9.1
[07:24:01] Local gulp is 3.8.11
[07:24:03] Using gulpfile /home/ibmcloud/Hygieia-2.0.0/UI/gulpfile.js
[07:24:03] Starting 'build'...
[07:24:03] Starting 'clean'...
[07:24:03] Finished 'clean' after 63 ms
[07:24:03] Starting 'assets'...
[07:24:03] Starting 'themes'...
[07:24:03] Starting 'fonts'...
[07:24:03] Starting 'js'...
[07:24:03] Starting 'views'...
[07:24:03] Starting 'test-data'...
[07:24:10] Finished 'test-data' after 7.64 s
[07:24:13] Finished 'assets' after 9.9 s
[07:24:13] Finished 'themes' after 9.9 s
[07:24:13] Finished 'views' after 9.96 s
[07:24:13] Finished 'js' after 10 s
[07:24:13] Finished 'fonts' after 10 s
[07:24:13] Starting 'html'...
[07:24:13] gulp-inject 1 files into index.html.
[07:24:13] gulp-inject 89 files into index.html.
[07:24:13] Finished 'html' after 195 ms
[07:24:13] Finished 'build' after 11 s
[07:24:13] Starting 'serve'...
[07:24:13] Finished 'serve' after 292 ms
[BS] Local URL: http://localhost:3000
[BS] External URL: http://<IP_ADDRESS>:3000
[BS] Serving files from: dist/
From:   Zach McAuliffe<EMAIL_ADDRESS>To:     capitalone/Hygieia<EMAIL_ADDRESS>Cc:     Samriddhi Awasthi/India/IBM@IBMIN, Comment
<EMAIL_ADDRESS>Date:   09/29/2016 08:21 PM
Subject:        Re: [capitalone/Hygieia] Need Help on Building API (#698)
No, the jar seemed to start up just fine:
...
2016-09-27 10:29:32,226 INFO  o.s.b.c.e.t.TomcatEmbeddedServletContainer -
Tomcat started on port(s): 8080 (http)
2016-09-27 10:29:32,228 INFO  com.capitalone.dashboard.Application -
Started Application in 8.922 seconds (JVM running for 9.848)
Is it just the API that's not working, or are you also not able to access
the UI?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

One more thing to bring to your notice...I skipped the Test Run while building the hygieia....instead of "mvn clean install" , I ran the build as "mvn clean install -DskipTests" because Test  run was throwing failures...Will that make a difference?

Hi Zach.
I am able to run UI successfully..As discussed before, api is still not
coming up when i ping the ip address : http://<IP_ADDRESS>:8080.
I have not updated any dashboard.properties file. Application has
successfully started but I get the following error while pinging the above
ip:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing
this as a fallback.
Mon Oct 03 09:42:07 UTC 2016
There was an unexpected error (type=Not Found, status=404).
No message available
Please look into the error.This is urgent for me. Any kind of help will be
appreciated.
Regards,
Samriddhi
From:   Zach McAuliffe<EMAIL_ADDRESS>To:     capitalone/Hygieia<EMAIL_ADDRESS>Cc:     Samriddhi Awasthi/India/IBM@IBMIN, Comment
<EMAIL_ADDRESS>Date:   09/29/2016 08:21 PM
Subject:        Re: [capitalone/Hygieia] Need Help on Building API (#698)
No, the jar seemed to start up just fine:
...
2016-09-27 10:29:32,226 INFO  o.s.b.c.e.t.TomcatEmbeddedServletContainer -
Tomcat started on port(s): 8080 (http)
2016-09-27 10:29:32,228 INFO  com.capitalone.dashboard.Application -
Started Application in 8.922 seconds (JVM running for 9.848)
Is it just the API that's not working, or are you also not able to access
the UI?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Hmm, I'm curious as to which test was failing - can you please post that?
I'm not really sure what the root cause could be here - @tabladrum do you have any ideas?

sure...Please find the results of 'mvn clean install'  from hygieia root:
Results :
Tests in error:
DashboardCreateTests.com.capitalone.dashboard.repository.DashboardCreateTests
» UnknownHost
AuthenticationRepositoryTest.com.capitalone.dashboard.repository.Authenticatio
nRepositoryTest » UnknownHost
FeatureRepositoryTest.com.capitalone.dashboard.repository.FeatureRepositoryTes
t » UnknownHost
ScopeOwnerRepositoryTest.com.capitalone.dashboard.repository.ScopeOwnerReposit
oryTest » UnknownHost
ScopeRepositoryTest.com.capitalone.dashboard.repository.ScopeRepositoryTest »
UnknownHost
Tests run: 28, Failures: 0, Errors: 5, Skipped: 1
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] com.capitalone.dashboard:Hygieia ................... SUCCESS [  0.907 s]
[INFO] com.capitalone.dashboard:core ...................... FAILURE [ 10.407 s]
[INFO] com.capitalone.dashboard:api ....................... SKIPPED
[INFO] com.capitalone.dashboard:jenkins-build-collector ... SKIPPED
[INFO] com.capitalone.dashboard:sonar-codequality-collector SKIPPED
[INFO] com.capitalone.dashboard:subversion-collector ...... SKIPPED
[INFO] com.capitalone.dashboard:github-scm-collector ...... SKIPPED
[INFO] com.capitalone.dashboard:stash-scm-collector ....... SKIPPED
[INFO] com.capitalone.dashboard:versionone-feature-collector SKIPPED
[INFO] com.capitalone.dashboard:udeploy-deployment-collector SKIPPED
[INFO] com.capitalone.dashboard:jira-feature-collector .... SKIPPED
[INFO] com.capitalone.dashboard:jenkins-cucumber-test-collector SKIPPED
[INFO] com.capitalone.dashboard:chat-ops-collector ........ SKIPPED
[INFO] com.capitalone.dashboard:UI ........................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.144 s
[INFO] Finished at: 2016-10-05T06:08:54+00:00
[INFO] Final Memory: 41M/446M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.
17:test (default-test) on project core: There are test failures.
[ERROR]
[ERROR] Please refer to /home/ibmcloud/Hygieia-2.0.0/core/target/surefire-report
s for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureExc
eption
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn  -rf :core

I am also receiving same issue . UI and API are working fine but when i try to access api using browser then i get following error ,
This application has no explicit mapping for /error, so you are seeing this as a fallback.
I am using docker based deployment .

It's not clear from these logs which test failed - is there anymore output you can provide?

build goes well with no error message . I solved my integration by using Key which can be generated through core package or jar .

I am receiving the same error. My build happened fine but when I try to access my api
http://<IP_ADDRESS>:8090/api/ I get
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Wed Nov 16 17:49:02 GMT 2016
There was an unexpected error (type=Not Found, status=404).
No message available
Has anyone being able to resolve this?
If yes any help is highly appreciated

@anshul14 did you start mongodb before running the api??if yes,  can you post the logs for mongodb?

@anshul14 The url to verify that the api is running fine in your case would be http://<IP_ADDRESS>:8090/api/ping  If this returns true, then ur api layer should be running fine.  If this is still an issue, please reopen.

@anshul14  Yo mate ... This is the headache or a trick one must go through to use Hygieia ..
Nevertheless , it's all good . Just run UI and see if its getting connected to API .
You can also validate API Service availability using telnet command over network but make sure nothing else is running on this port apart from API services.

I was having this issue in Cloud Foundry but it was because the port 3000 is not reachable by default so I had to use the only reachable port for my containers, in my case 8080.
Also I had to upgrade browser-sync dependency to its latest version because right now is using 1.7.x and in order to specify a different port I think you need 2.x
Also I did install http-proxy-middleware to proxy my api calls to the container where I had the api running
@Samriddhi1 hope this is useful for you :P since it's pretty late response haha I just happened to work on the same task today

I am facing similar issue, api log says connected to mongodb on port 27017, but localhost:8090/api/ping doesn't return true and give me a whitelabel error message page.
UI says red on api connectivity. It was working well earlier suddenly it isnt working, Can someone please help me with this/if any faced same ??


BlogSite sample app page added.

Adding a new sample app page as a part of ICP Twitter content, discussed with @domwoe and @dprats.
It is a simple Blogsite written in Motoko language. Original repo of the project can be found here https://github.com/lukasvozda/icblog
Please let me know if you would like me to change anything.
Thank you for your contribution to the IC Developer Portal.
Before submitting your Pull Request, please make sure that:

[x] You have updated the .github/CODEOWNERS file according to your changes.
[x] You have registered new documents to /sidebars.js if any.

@dfinity/editorial Do we want to have this sample here or ask @lukasvozda to move it to https://github.com/dfinity/portal/blob/master/static/supernovaProjects.json ?

Thanks @sesi200
@lukasvozda Sorry for the inconvenience. Could you add your sample to the community contributions instead?

@domwoe no problem, I have removed the previous changes and sending a new push with the new update in the supernovaProjects.json.


Automatically replace common emoji shortcuts to actual emojis

While composing a message, replace emoji text representations with actual unicode emojis:
:) to 😄
:P to 😛

Have a map of strokes to emoji conversion
On each change event in the ComposeText component, check if latest symbols are in the map

One simple approach can be having map of these text -> emoji's and before sending the message we can parse it and then replace the text with emoji's.
2nd approach can be instead of parsing the text before sending we can have a buffer which will store the current typed word (i.e. which will empty evertime the space bar is pressed.) and then find is that word in the map. This approach will provide changes as we are typing as the buffer stores strings as we are typing.
3rd approach is use of regular expression.

#1 sounds the best.
We would do it live, while the user types.

Do we want to do this on the backend?  There's an open issue for that.

Maybe we want to do it both on back-end and front-end?

Possibly, if we're doing some sort of inline preview.  But I guess this suggests we should do it in the backend first? :)

I just noticed FB Messenger does not do the replacement in the compose box, neither in the web app or in the mobile app. I guess it is good enough to be done server-side, but we also want the optimistic update to be fully rendered.

Maybe worth doing the refactor in the webapp to split the local-echo related pieces of echo.js from the rendering pieces (which are likely reusable here).

Well i tried to do this and here are the result - A short video please comment need suggestions.
https://drive.google.com/open?id=0BzZnaFq4F3EdVXhpU25oV2ZRMUU

@zulipbot claim

@borisyankov  @timabbott there is a problem i am facing when i update the emoji in composeText and hit send send then the emoji dont appear on the send message
Written the emoji in ComposeText

Emoiji Donot appear

In the last message the emoji must appear after hello but it doesn't any reason ?

I think its problem at zulip-mobile app side because i saw correct result on zulip-android application.

this got implemented. Can be closed now

Closing as implemented.


Refactor implicit GEMM forward v4r4 xdlops solver and kernel

This PR refactors  fwd v4r4 xdlop solver and  kernel. The updated solver is ConvHipImplicitGemmForwardV4R4Xdlops
Changes

Changed gridwise-GEMM's (GridwiseBatchGemmXdlops_gkmkpack_gknkpack_gmn_v2) pipeline/synchronization  to take advantage of the fact that gfx908 s_barrier no longer implicitly does s_waitcnt vmcnt(0). So we can use only single LDS buffer, and much less VGPRs. This help double occupancy in many cases, and help enabling larger wave-wise GEMM
Merged @zjing14's igemm_large_wave_gemm, so we can do larger wave-wise GEMM when possible and improve flops/byte ratio
Merged @muralinr's buffer_load fp16 PR #144, and created some workaround for compiler issue. so you can use buffer_load/store_dword(x1/x2/x4) for fp16x2, fp16x4, fp16x8 load/store. fp16x1 load/store is still done with global_load/store_ushort, as a temporary workaround of compile issue. Same appliesto bfloat16
Fixes some issues in fp16 xdlops solver so it can do more vector load, and use larger GemmKPack for fp16
Merged @zjing14's #231 that fix a xdlops blockwise GEMM bug
It does forward group convolution for all datatype

Caveat

This solver would only do vector write on matrix A and B's GemmKPack dimension, even when GemmKPack==1. It would not do vector write on matrix A's GemmM dimension or matrix B's GemmN (unlike solver ConvHipImplicitGemmV4R4GenXdlopsFwdFp32). However, it's unlikely GemmKPack==1 is a good choice of performance config
Several compiler issues are found when testing this branch
http://ontrack-internal.amd.com/browse/SWDEV-239555
http://ontrack-internal.amd.com/browse/SWDEV-240356
http://ontrack-internal.amd.com/browse/SWDEV-241660
http://ontrack-internal.amd.com/browse/SWDEV-241664
for fp16/bfp16 xdlops kernel, padding support is completely disabled due to SWDEV-239555
for bfp16 xdlops kernel, larger blockwise-GEMM is disabled due to SWDEV-240356 and SWDEV-241664

Perhaps my review is made too soon, but I could not stop my pain.

Perhaps my review is made too soon, but I could not stop my pain.

Those comments are valid

@atamazov I'm confused about your comments on IsReallyValid
I need several boolean functions for different purposes

If a PerformanceConfig is functionally correct (assuming compiler works OK)
EuristicInit() and GenericSearch will call this function (indirectly)
I'm using  PerformanceConfig::IsValid(ctx) now
If a PerformanceConfig should be excluded due to compiler bug
EuristicInit() and GenericSearch will call this function (indirectly)
I'm using  PerformanceConfig::IsExcludedDueToCompilerBug(ctx) now
If a PerformanceConfig should be excluded from tuning, so tuning is faster. But the GenericSearch will call this function (indirectly), EuristicInit() will not call this function
I'm using  PerformanceConfig::IsFastPerformanceConfig(ctx) now

How should i organize the function calls to satisfy the design of solver?

@asroy Make sure merge this fix: https://github.com/ROCmSoftwarePlatform/MIOpen/commit/b51e45f52e09a5b9ecd39a95be85299f2d69287e

IsValid and IsValidPerformanceConfig
1. What are their intended use scenario?

IsValid() is required for tunable Solvers, see documentation: https://github.com/ROCmSoftwarePlatform/MIOpen/blob/4836625c84937a5f3dbde0b5f46fb5337f93d604/src/include/miopen/generic_search.hpp#L45-L66
It's name is defined in the interface of the ComputedContainer class. The name and documentation reflect the initial intent.
Later, as code evolved, it turned out that this function is also used to skip unwanted valid configs, in order to optimize tuning. So its name should be changed (to something like IsGoodToBeIncludedInTuning :smile: ), and the description should be corrected. This is not done yet, as it requires a large number of changes. Therefore, the function still exists with an inaccurate name.
Functions that perform exactly what is described for IsValid ("Checks if instance is valid for the given c") are still often necessary in many solvers, including this one. Current name of this function in your solver is IsValidPerformanceConfig() (and I suggest renaming it to IsReallyValid).

2. Would them return the same result?

No. IsValid should call IsReallyValid first, and then optimize out some configs to accelerate tuning.

3. Will generic search use both of them?

No, only IsValid. What is generic search uses is described in its header, lee link above.

I need several boolean functions for different purposes
1. To decide if a `PerformanceConfig` is functionally correct, and will not be excluded due to workaround
   `EuristicInit()` and `GenericSearch` will call this function (directly or indirectly)

I recommend moving the contents of IsWorkAroundedPerformanceConfig() function into IsValidPerformanceConfig(). These two are always used together (as it should be).
Then rename IsValidPerformanceConfig() to IsReallyValid(). This function should allow you to see if a PerformanceConfig is functionally correct (taking into account compiler or other bugs).

2. To decide if a `PerformanceConfig` should be excluded from tuning, so tuning is faster.
   `GenericSearch` need call this function (directly or indirectly), `EuristicInit()` will not call this function

Right. This is job for IsValid. It should check IsReallyValid first, and then optimize out configs you would like to skip.
Hope this helps.

IsValidPerformanceConfig() // this seems duplicated with IsReallyValid(), why needed?

This is just a relic of the evolution of the architecture. We shall get rid of it. This is trivial except legacy tunable OpenCL solvers (see how it is implemented in ConvOclDirectFwd).

Please review the code change in use of IsValidXXX functions again.

Let me do it when PR is ready (non-WIP). Most likely, you did well.

@atamazov @TejashShah All previous comments have been addressed. Please see if there is any other issue. Thanks

@asroy How does this PR affect the performance database. What needs to be retuned? What datatypes / directions / any contraints?

@alexandraBara @cderb @JehandadKhan for visibility.

Yes, it seems that this PR is not a plain refactor (that, by definition, only reorganizes/cleans the source code and does not affect behavior). AFAICS this PR affects both perf-db and find-db. @asroy Am I right?

Yes, it seems that this PR is not a plain refactor (that, by definition, only reorganizes/cleans the source code and does not affect behavior). AFAICS this PR affects both perf-db and find-db. @asroy Am I right?

yes, performance is improved and it support all datatype and group, so it affect both perf-db and find-db
It should fp32/fp16/bfp16 group and non-group forward convolution.

Description updated & relevant labels assigned.


[W3MService] Please provide a valid projectId. See https://docs.walletconnect.com/web3modal/flutter/options for details.

flutter run --dart-define=PROJECT_ID='657cca24a6aebfa977eb5b427b87cXXX'
i put project id but it shows this error in flutter
plz help me.

Hello @sureshturbo, make sure you are passing a valid project id. Can you share your dApp's name?

nft
657cca24a6aebfa977eb5b427b87c634

Hello @sureshturbo, make sure you are passing a valid project id. Can you share your dApp's name?
nft
657cca24a6aebfa977eb5b427b87c634

Thanks @sureshturbo! By the way you can confidently share your projectId, there's no harm on sharing it. In any case, I checked it and the I can run the SDK properly with your given projectId. Are you sure you are passing it right to the SDK?

Thanks @sureshturbo! By the way you can confidently share your projectId, there's no harm on sharing it. In any case, I checked it and the I can run the SDK properly with your given projectId. Are you sure you are passing it right to the SDK?

Sure, plz check it.

I mean that I already did. I already checked it and it's working fine.  Are you sure you are passing it correctly to the SDK?

I mean that I already did. I already checked it and it's working fine. Are you sure you are passing it correctly to the SDK?

yes, i passed correctly. can you share the your code.

Did you read the docs? https://docs.walletconnect.com/web3modal/flutter/options
You can also check how it's done here in the example app https://github.com/WalletConnect/Web3ModalFlutter/blob/master/example/lib/home_page.dart#L31

Did you read the docs? https://docs.walletconnect.com/web3modal/flutter/options
You can also check how it's done here in the example app https://github.com/WalletConnect/Web3ModalFlutter/blob/master/example/lib/home_page.dart#L31

yes, I read the docs,
and I use this repo for the testing.

I put my project id.

String.fromEnvironment() is a function that takes a key (PROJECT_ID in this case) to read a value from environment. https://api.flutter.dev/flutter/dart-core/String/String.fromEnvironment.html
You shouldn't modify that file if you are going to run your project with flutter run --dart-define=PROJECT_ID=657cca24a6aebfa977eb5b427b87c634
Otherwise this is what you should do:
class DartDefines {
  static const String projectId = '657cca24a6aebfa977eb5b427b87c634';
}

But this 👆 solution here is kinda pointless.

And, as the documentation says, if you want to "hardcode" your projectId you do so in the service instance
https://docs.walletconnect.com/web3modal/flutter/options

And, as the documentation says, if you want to "hardcode" your projectId you do so in the service instance https://docs.walletconnect.com/web3modal/flutter/options
So basically this
final _w3mService = W3MService(
  projectId: '657cca24a6aebfa977eb5b427b87c634',
  metadata: const PairingMetadata(
    name: 'Web3Modal Flutter Example',
    description: 'Web3Modal Flutter Example',
    url: 'https://www.walletconnect.com/',
    icons: ['https://walletconnect.com/walletconnect-logo.png'],
    redirect: Redirect(
      native: 'flutterdapp://',
      universal: 'https://www.walletconnect.com',
    ),
  ),
);
await _w3mService.init();

Okay, I tried this code. but it give the null error,
I have no idea Plz correct me.

Can you share YOUR implementation?

And, as the documentation says, if you want to "hardcode" your projectId you do so in the service instance https://docs.walletconnect.com/web3modal/flutter/options
So basically this
final _w3mService = W3MService(
  projectId: '657cca24a6aebfa977eb5b427b87c634',
  metadata: const PairingMetadata(
    name: 'Web3Modal Flutter Example',
    description: 'Web3Modal Flutter Example',
    url: 'https://www.walletconnect.com/',
    icons: ['https://walletconnect.com/walletconnect-logo.png'],
    redirect: Redirect(
      native: 'flutterdapp://',
      universal: 'https://www.walletconnect.com',
    ),
  ),
);
await _w3mService.init();

Okay, I tried the code , it is working fine, Thank so much for the support

the example repo is working fine,
I create the new project for the testing I import all the necessary things like

AndroidManifest.xml add queries
add the flutter pub add web3modal_flutter dependencies

but I have PairingMetadata as an error
I want to know about new project integration
please correct me.
https://github.com/sureshturbo/nft.git

I don't see you have web3modal dependency installed in your project https://github.com/sureshturbo/nft/blob/master/pubspec.yaml

I don't see you have web3modal dependency installed in your project https://github.com/sureshturbo/nft/blob/master/pubspec.yaml

yes, actually i have some version issue , so now I add the dependency without version plz check


Add "deploy" phase to Travis

See https://github.com/ember-learn/ember-cli-addon-docs/blob/master/.travis.yml#L68 for reference

woops we already have this


DFA example files corrupt

The DFAs in the example folder dandy/benches/example_dfas seem to be corrupt and invalid. I can't tell whether or not this is intentional, but if not, it seems that the files may be getting corrupted upon committing.

Thank you for your issue!
The examples are, in fact, not corrupt or invalid. The parser accepts any unicode string without reserved characters as a name, and thus the example does compile with dandy. The examples were generated with proptest and have thus already passed the parser, compiler and checker before appearing in that folder. But your comment made me aware of that it would probably be better to have some examples with just ascii names to make them more readable. Will replace them very soon and reply here with the commit. Thanks for your input!

Example DFAs changes as of a1f8402b415c94c64df2fd3f468b16cc06f84a3f .


added zmq in distributed computing paragraph

Functory in this paragraph... come on, people are looking for production-ready solutions. Not for prototypes that have never seen the battlefield.

Thanks. Feel free to add comments about the prototypical nature of Functory.


chore: fix var spelling

Hey David!
There was a typo in a var name. This PR fixes just that. Funny tool!

Thanks for the heads up!!!


Relative VOLUME declarations are always relative to "/"

Output of docker version:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Thu Feb 25 09:29:05 2016
 OS/Arch:      linux/amd64

Output of docker info:
Containers: 167
 Running: 2
 Paused: 0
 Stopped: 165
Images: 902
Server Version: 1.10.2
Storage Driver: overlay
 Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
 Volume: local
 Network: host bridge null
Kernel Version: 4.4.3-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.716 GiB
Name: xxx
ID: xxx
Username: xxx
Registry: https://index.docker.io/v1/

Provide additional environment details (AWS, VirtualBox, physical, etc.):
Physical Linux machine.
List the steps to reproduce the issue:
1.) Create a Docker image with the following Dockerfile:
FROM ubuntu
WORKDIR /usr/src/app
VOLUME ./data

2.) Run the following command:
docker run -it --rm <imagename> sh -c "mount | grep /data"

Describe the results you received:
Volume is mounted at /data:
/dev/sda9 on /data type ext4 (rw,relatime,data=ordered)

Describe the results you expected:
Volume should be mounted at /usr/src/app/data.
/dev/sda9 on /usr/src/app/data type ext4 (rw,relatime,data=ordered)

Provide additional info you think is important:
Relative VOLUME declarations should either become relative to the WORKDIR or raise an error instead.

Thanks for reporting. While I can see this being consistent, I'm not sure we'd be able to change this without introducing backward-incompatible changes, resulting in Dockerfiles no longer being built as they were before.

Docker changes things that result in backwards incompatibility all the time. (Just playing Devil's advocate, I don't agree or disagree with the change)
Perhaps we should start a document somewhere with all the proposed changes that would result in significant breakage. Just a list of issue numbers or something. And then when docker 2 comes around, we pull out the document and decide which ones we want to implement.
If the document gets big enough, it might even be used as the driving force for bumping the version number to 2.0.

@phemmer yup, one of the first issues I opened https://github.com/docker/docker/issues/4907.
w.r.t. a list of proposed changes; I try to label each issue with "area/builder" so that we should be able to create such list at some point

We haven't seen more requests for this, and this is consistent with the --volume flag also requiring to specify the full path in the container. Given that this would be a breaking change, and not a high priority, I'm closing this. But as always, feel free to comment if you don't agree


DateTime.Ticks broken in Chrome 67

Upgrading to Chrome will make several unit tests to fail where they rely in DateTime's Ticks property. It works fine on Edge, Firefox and Safari.
Steps To Reproduce
https://deck.net/1049588cfb52c7874edacd21a2a81363
Expected Result
Success.
315254592000000000

Actual Result
Failure.
315254592280000000

This is one of the failing samples in examples explorer. This issue does not require an unit test, as several unit tests are failing due to this.

Google Chrome 67 introduced early time zone historical consideration. According to this website: https://www.timeanddate.com/time/zone/brazil/sao-paulo
The time zone for Brazil was GMT-3:06:28 from at least 1800 until 1913. Seems Chrome just assumed any date prior to 1800 will be using this time zone as well.
According to this stackoverflow question, other countries and cities may be affected by this new google Chrome behavior.
Other browsers do not take this into consideration.

This command is probably a good one to check for the failing browser in different time zones (switch time zone and run the command):
var truecount=0;
var falsecount=0;

for (var i = 1; i < 2100; i++) {
 for (var j = 0; j < 12; j++) {
  var g = new Date(i, j, 1);
  g.setFullYear(i);
  var ug = new Date(Date.UTC(g.getUTCFullYear(), g.getUTCMonth(), g.getUTCDay(), g.getUTCHours(), g.getUTCMinutes(), g.getUTCMilliseconds()));
  ug.setFullYear(g.getUTCFullYear());
  if (ug.getHours() == g.getHours()) truecount++;
  else falsecount++;
 }
}
console.log("true:"+truecount+" - false:"+falsecount);

It should read zero false occurences.

Just disabled the tests that relied on the features this Chrome issue breaks, unfortunately the fix won't be trivial, as now different browsers handle the issues differently. There were around 15 tests ignored.

This one still failing (the original one, i suppose) https://testing.bridge.net/?testId=7548dbd0


Change button tag to a tag

Hey @KeitIG, sorry that this was superseded by master with out templating system.

I ended up adding most of the styles for the 404 page, though, so it should be an easy update. :)

@cassidyjames How is it now ?

@KeitIG it's not a clean merge at all :-/ Could you rebase off of master then make the couple of changes? Right now it's showing the changes from an old version of master which gets messy.

I believe we decided not to do this since we would be changing it back to a button anyways for Fabian's stripe branch?

Let's close this branch.
As @danrabbit said, I propose we forget that until Fabian finishes its work. We'll see that later if it's still needed.


fix socket recv error(SIGPIPE)

Current coverage is 82.36% (diff: 66.66%)

Merging #638 into master will decrease coverage by 3.58%

@@             master       #638   diff @@
==========================================
  Files            27         27
  Lines          3260       3261     +1
  Methods           0          0
  Messages          0          0
  Branches        519        508    -11
==========================================
- Hits           2802       2686   -116
- Misses          317        428   +111
- Partials        141        147     +6

Powered by Codecov. Last update 8f4617c...8062e01

Brokers would fail to reconnect after the socket is reset by peer because the Exception 104 raised after the sending of requests is not going to be captured properly.
And since there's no way to make brokers reconnect mannually via client, the Exception 32 will be repeatedly raised till the process is killed.

See the description of #640 for more information. @hallelujah-shih sorry for the duplicate PR, I read your issue before this pull request.