ValueError: Dimensions must be equal, but are 2560 and 10 for 'digit_caps_2/add' (op: 'AddV2') with input shapes: [?,10,10,2560,32], [10,32].

I am facing this error while training.
I have used the following args:
class args:
numGPU = 1
epochs = 100
batch_size = 8
lr = 0.001
lr_decay = 0.96
lam_recon = 0.4
r = 3
routings = 3
shift_fraction = 0.1
debug = False
digit = 5
save_dir = 'model/CIFAR10/13'
t = False
w = None
ep_num = 0
dataset = "CIFAR10"
The error is common to all datasets.

This is the exact error:
InvalidArgumentError: Dimensions must be equal, but are 2560 and 10 for 'digit_caps_2/add' (op: 'AddV2') with input shapes: [?,10,10,2560,32], [10,32].
During handling of the above exception, another exception occurred:
ValueError                                Traceback (most recent call last)
12 frames
 in ()
118
119 # model, eval_model = DeepCapsNet(input_shape=x_train.shape[1:], n_class=y_train.shape[1], routings=args.routings)  # for 6464
--> 120 model, eval_model = DeepCapsNet28(input_shape=x_train.shape[1:], n_class=y_train.shape[1], routings=args.routings)  #for 2828
121
122 # plot_model(model, show_shapes=True,to_file=args.save_dir + '/model.png')
 in DeepCapsNet28(input_shape, n_class, routings)
132
133 #     l = Dropout(0.4)(l)
--> 134     digits_caps = CapsuleLayer(num_capsule=n_class, dim_capsule=32, routings=routings, channels=0, name='digit_caps')(l)
135
136     l = CapsToScalars(name='capsnet')(digits_caps)
/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py in call(self, inputs, **kwargs)
449             # Actually call the layer,
450             # collecting output(s), mask(s), and shape(s).
--> 451             output = self.call(inputs, **kwargs)
452             output_mask = self.compute_mask(inputs, previous_mask)
453
 in call(self, inputs, training)
559             # then matmal: [input_num_capsule] x [input_num_capsule, dim_capsule] -> [dim_capsule].
560             # outputs.shape=[None, num_capsule, dim_capsule]
--> 561             outputs = squash(K.batch_dot(c, inputs_hat, [2, 2]) + self.B)  # [None, 10, 16]
562
563             if i < self.routings - 1:
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/math_ops.py in binary_op_wrapper(x, y)
910           else:
911             raise
--> 912       return func(x, y, name=name)
913
914   def binary_op_wrapper_sparse(sp_x, y):
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/math_ops.py in _add_dispatch(x, y, name)
1195       return gen_math_ops.add(x, y, name=name)
1196     else:
-> 1197       return gen_math_ops.add_v2(x, y, name=name)
1198   else:
1199     return gen_math_ops.add(x, y, name=name)
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/ops/gen_math_ops.py in add_v2(x, y, name)
547   # Add nodes to the TensorFlow graph.
548   _, _, _op = _op_def_lib._apply_op_helper(
--> 549         "AddV2", x=x, y=y, name=name)
550   _result = _op.outputs[:]
551   _inputs_flat = _op.inputs
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/framework/op_def_library.py in _apply_op_helper(self, op_type_name, name, **keywords)
792         op = g.create_op(op_type_name, inputs, dtypes=None, name=scope,
793                          input_types=input_types, attrs=attr_protos,
--> 794                          op_def=op_def)
795
796       # Conditionally invoke tfdbg v2's op callback(s).
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/util/deprecation.py in new_func(*args, **kwargs)
505                 'in a future version' if date is None else ('after %s' % date),
506                 instructions)
--> 507       return func(*args, **kwargs)
508
509     doc = _add_deprecated_arg_notice_to_docstring(
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/framework/ops.py in create_op(failed resolving arguments)
3355         raise TypeError("Input #%d is not a tensor: %s" % (idx, a))
3356     return self._create_op_internal(op_type, inputs, dtypes, input_types, name,
-> 3357                                     attrs, op_def, compute_device)
3358
3359   def _create_op_internal(
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/framework/ops.py in _create_op_internal(self, op_type, inputs, dtypes, input_types, name, attrs, op_def, compute_device)
3424           input_types=input_types,
3425           original_op=self._default_original_op,
-> 3426           op_def=op_def)
3427       self._create_op_helper(ret, compute_device=compute_device)
3428     return ret
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/framework/ops.py in init(self, node_def, g, inputs, output_types, control_inputs, input_types, original_op, op_def)
1768           op_def, inputs, node_def.attr)
1769       self._c_op = _create_c_op(self._graph, node_def, grouped_inputs,
-> 1770                                 control_input_ops)
1771     # pylint: enable=protected-access
1772
/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/framework/ops.py in _create_c_op(graph, node_def, inputs, control_inputs)
1608   except errors.InvalidArgumentError as e:
1609     # Convert to ValueError for backwards compatibility.
-> 1610     raise ValueError(str(e))
1611
1612   return c_op
ValueError: Dimensions must be equal, but are 2560 and 10 for 'digit_caps_2/add' (op: 'AddV2') with input shapes: [?,10,10,2560,32], [10,32].

For CIFAR10, you need to uncomment line 122 in train.py and comment line 123 in train.py

For CIFAR10, you need to uncomment line 122 in train.py and comment line 123 in train.py.

Hi @brjathu
I got exactly the same error. I am using DeepCapsNet28 for MNIST dataset (however I tried to change toggle comments on lines 122 and 123 without any impact).
I have tested several environments and no one was working. Can you please help me with this error? I think it may be caused by Keras update.
Thanks in advance!
This is the trackback of the error
WARNING:tensorflow:From $HOME/deepcaps/deepcaps/capslayers.py:346: calling softmax (from tensorflow.python.ops.nn_ops) with dim is deprecated and will be removed in a future version.
Instructions for updating:
dim is deprecated, use axis instead
Traceback (most recent call last):
  File "$HOME/.conda/envs/snowflakes/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1659, in _create_c_op
    c_op = c_api.TF_FinishOperation(op_desc)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Dimensions must be equal, but are 640 and 10 for 'digit_caps/add' (op: 'Add') with input shapes: [?,10,10,640,32], [10,32].

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "train.py", line 123, in <module>
    model, eval_model = DeepCapsNet28(input_shape=x_train.shape[1:], n_class=y_train.shape[1], routings=args.routings)  #for 28*28
  File "$HOME/deepcaps/deepcaps/deepcaps.py", line 135, in DeepCapsNet28
    digits_caps = CapsuleLayer(num_capsule=n_class, dim_capsule=32, routings=routings, channels=0, name='digit_caps')(l)
  File "$HOME/.local/lib/python3.6/site-packages/keras/engine/base_layer.py", line 489, in __call__
    output = self.call(inputs, **kwargs)
  File "$HOME/deepcaps/deepcaps/capslayers.py", line 563, in call
    outputs = squash(K.batch_dot(c, inputs_hat, [2, 2]) + self.B)  # [None, 10, 16]
  File "$HOME/.conda/envs/snowflakes/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py", line 824, in binary_op_wrapper
    return func(x, y, name=name)
  File "$HOME/.conda/envs/snowflakes/lib/python3.6/site-packages/tensorflow/python/ops/gen_math_ops.py", line 365, in add
    "Add", x=x, y=y, name=name)
  File "$HOME/.conda/envs/snowflakes/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper
    op_def=op_def)
  File "$HOME/.conda/envs/snowflakes/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "$HOME/.conda/envs/snowflakes/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3300, in create_op
    op_def=op_def)
  File "$HOME/.conda/envs/snowflakes/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1823, in __init__
    control_input_ops)
  File "$HOME/.conda/envs/snowflakes/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1662, in _create_c_op
    raise ValueError(str(e))
ValueError: Dimensions must be equal, but are 640 and 10 for 'digit_caps/add' (op: 'Add') with input shapes: [?,10,10,640,32], [10,32].

This is the list of installed packages (I am using Anaconda)
$ conda list
# packages in environment at $HOME/.conda/envs/snowflakes:
#
# Name                    Version                   Build  Channel
_tflow_select             2.1.0                       gpu    anaconda
absl-py                   0.9.0                    py36_0    anaconda
astor                     0.8.0                    py36_0    anaconda
blas                      1.0                         mkl    anaconda
c-ares                    1.15.0            h7b6447c_1001    anaconda
ca-certificates           2020.1.1                      0    anaconda
certifi                   2019.11.28               py36_0    anaconda
cudatoolkit               10.0.130                      0    anaconda
cudnn                     7.6.5                cuda10.0_0    anaconda
cupti                     10.0.130                      0    anaconda
freetype                  2.9.1                h8a8886c_1    anaconda
gast                      0.3.3                      py_0    anaconda
grpcio                    1.27.2           py36hf8bcb03_0    anaconda
h5py                      2.10.0           py36h7918eee_0    anaconda
hdf5                      1.10.4               hb1b8bf9_0    anaconda
intel-openmp              2020.0                      166    anaconda
jpeg                      9b                   habf39ab_1    anaconda
keras-applications        1.0.8                      py_0    anaconda
keras-base                2.3.1                    py36_0    anaconda
keras-gpu                 2.1.6                    py36_0    anaconda
keras-preprocessing       1.1.0                      py_1    anaconda
ld_impl_linux-64          2.33.1               h53a641e_7    anaconda
libedit                   3.1.20181209         hc058e9b_0    anaconda
libffi                    3.2.1                h4deb6c0_3    anaconda
libgcc-ng                 9.1.0                hdf63c60_0    anaconda
libgfortran-ng            7.3.0                hdf63c60_0    anaconda
libpng                    1.6.37               hbc83047_0    anaconda
libprotobuf               3.11.4               hd408876_0    anaconda
libstdcxx-ng              9.1.0                hdf63c60_0    anaconda
libtiff                   4.1.0                h2733197_0    anaconda
markdown                  3.1.1                    py36_0    anaconda
mkl                       2019.5                      281    anaconda
mkl-service               2.3.0            py36he904b0f_0    anaconda
mkl_fft                   1.0.15           py36ha843d7b_0    anaconda
mkl_random                1.1.0            py36hd6b4f25_0    anaconda
mock                      4.0.1                      py_0    anaconda
ncurses                   6.2                  he6710b0_0    anaconda
numpy                     1.18.1           py36h4f9e942_0    anaconda
numpy-base                1.18.1           py36hde5b4d6_1    anaconda
olefile                   0.46                       py_0    anaconda
openssl                   1.1.1                h7b6447c_0    anaconda
pillow                    7.0.0            py36hb39fc2d_0    anaconda
pip                       20.0.2                   py36_1    anaconda
protobuf                  3.11.4           py36he6710b0_0    anaconda
python                    3.6.10               h0371630_0    anaconda
pyyaml                    5.3              py36h7b6447c_0    anaconda
readline                  7.0                  h7b6447c_5    anaconda
scipy                     1.4.1            py36h0b6359f_0    anaconda
setuptools                45.2.0                   py36_0    anaconda
six                       1.14.0                   py36_0    anaconda
sqlite                    3.31.1               h7b6447c_0    anaconda
tensorboard               1.13.1           py36hf484d3e_0    anaconda
tensorflow                1.13.1          gpu_py36h3991807_0    anaconda
tensorflow-base           1.13.1          gpu_py36h8d69cac_0    anaconda
tensorflow-estimator      1.13.0                     py_0    anaconda
tensorflow-gpu            1.13.1               h0d30ee6_0    anaconda
termcolor                 1.1.0                    py36_1    anaconda
tk                        8.6.8                hbc83047_0    anaconda
werkzeug                  1.0.0                      py_0    anaconda
wheel                     0.34.2                   py36_0    anaconda
xz                        5.2.4                h14c3975_4    anaconda
yaml                      0.1.7                h96e3832_1    anaconda
zlib                      1.2.11               h7b6447c_3    anaconda
zstd                      1.3.7                h0b5b093_0    anaconda

Maybe I have found the problem!
Problem was in keras versions. With following modules
keras-base                2.2.4                    py36_0
keras-gpu                 2.2.4                         0
keras-preprocessing       1.1.0                      py_1    anaconda

and update in capslayers.py
#        self.data_format = K.normalize_data_format(data_format)
        self.data_format = conv_utils.normalize_data_format(data_format)

it seems to be working!
I recommend to update README with specification of keras version (in conda install commands) and this update in capslayers.py. I can create a pull request, if you want ;)

Hi @mrazekv, First of all, sorry for the late reply, and Thank you for figuring out the issue. It would be great if can create the pull request.


Add media production

Opening a PR to host the conversation

@crashGoBoom today @knmurphy and I worked on testing out NICE DCV instead of parsec, and it went really well! What would you think about making NICE DCV the base ami that we start from? https://aws.amazon.com/marketplace/seller-profile?id=74eff437-1315-4130-8b04-27da3fa01de1
https://aws.amazon.com/hpc/dcv/

Just pushed some changes I never actually committed earlier. Havent tested this much since we moved on though.

Just pushed some changes I never actually committed earlier. Havent tested this much since we moved on though.


Prediction request end up with "invalid data" errors

Hi,
Here is a simplified request using the library (this is after coffee compilation)
parameters = {
auth: jwtClient,
project: googleProjectID,
id: 'interest_classifier',
input: {
csvInstance: ["country united states", "/location/location"]
}
};
return prediction.trainedmodels.predict(parameters, function(err, response) {
if (err) {
logger.info(null, "prediction err ", err);
}
logger.info(null, "response from predict ", response);
return callback(null, response);
});
And the response :
14:21:20 info   prediction err  { [Error: Input data invalid.]
code: 400,
errors:
[ { domain: 'global',
reason: 'invalidValue',
message: 'Input data invalid.' } ] }

Forgot to clarify:
The training data was csv with 3 columns, (1 value and 2 features)
When I run a similar request using the online simulator, runs fine.
It is only from my node server that I get these failures.
Could this be an encoding issue or something of the sort?

And in case my authentication method is relevant:
var   jwtClient = new<EMAIL_ADDRESS>'keys/key.pem', null, ['https://www.googleapis.com/auth/prediction']);
jwtClient.authorize(function(err, tokens) {
logger.info(null, "authorizing");
if (err) {
logger.info(null, "error ", err);
} else {
return logger.info(null, "authenticated ", tokens);
}
});

OK,
So I dug in a bit more, because clearly the solution is NOT going to come from Google (clearly no-one even looks at these open issues).
The reason this was not working for me is that the actual input data is part of the request body.
Now I looked into how the parameters are parsed and used by the library, and it turns out the payload needs to be nested inside a parameter called "resource"
,
So the request parameters need to look like this:
parameters = {
auth: jwtClient,
project: googleProjectID,
id: 'interest_classifier',
resource:{
input: {
csvInstance: ["country united states", "/location/location"]
}
}
};
This is totally undocumented, and really disappointing
closing, hope this helps others

I've tried my best to make it as clear as possible on how to specify a resource (the body of the request) so I'm sorry you continue to have trouble understanding. I've added this section to the README to hopefully add more clarity.

thank you
On May 30, 2015 20:10, "Ryan Seys"<EMAIL_ADDRESS>wrote:

I've tried my best to make it as clear as possible on how to specify a
resource (the body of the request) so I'm sorry you continue to have
trouble understanding. I've added this section
https://github.com/google/google-api-nodejs-client#specifying-request-body
to the README to hopefully add more clarity.
—
Reply to this email directly or view it on GitHub
https://github.com/google/google-api-nodejs-client/issues/430#issuecomment-107066648
.


changing board.I2C reference, adding learning guide, product link(improvement)

As title mentions

Thanks


CSP Problem when refresh

📑 I have found these related issues/pull requests
Same with #3806 but I build with Docker and with external cloudflared

🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
CSP error without add unsafe-eval from the default-src Content Security Policy directive.
👟 Reproduction steps
Use with docker compose
services:
  cloudflared:
    image: cloudflare/cloudflared:latest
    container_name: Cloudflared
    restart: 'unless-stopped'
    depends_on:
      - uptime-kuma
    command: tunnel run
    environment:
      - TUNNEL_TOKEN=
    deploy:
      resources:
        limits:
          memory: 256mb
  uptime-kuma:
    image: louislam/uptime-kuma:beta
    container_name: uptime-kuma
    network_mode: 'host'
    volumes:
      - "./uptime-kuma:/app/data"
    restart: always
    ports:
      - "3001:3001"
    deploy:
      resources:
        limits:
          memory: 256m

For Content-Security-Policy add to Cloudflare with this string in Modify response header
Content-Security-Policy: default-src 'self';     script-src 'self' static.cloudflareinsights.com;     style-src 'self';     img-src 'self' data:;     connect-src 'self';     font-src 'self';     frame-src 'self';
👀 Expected behavior
I expected to see the admin account creation screen, and sure enough, if I use a browser extension to disable the Content Security Policy, everything works as expected.
😓 Actual Behavior
Blank screen and console error.
🐻 Uptime-Kuma Version
2:beta
💻 Operating System and Arch
Windows 11 x64
🌐 Browser
Microsoft Edge Canary 133.0.3016.0 x64
🖥 Deployment Environment

Runtime: Docker Desktop 4.36.0 (175267)
Database: sqlite/embedded
Filesystem used to store the database on: Windows/NTFS
number of monitors: 2

📝 Relevant log output
Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' static.cloudflareinsights.com".

    at new Function (<anonymous>)
    at Wy (index-CgA63pu9.js:49:35380)
    at Py (index-CgA63pu9.js:49:8010)
    at Oy (index-CgA63pu9.js:49:6940)
    at index-CgA63pu9.js:49:15424
    at U (index-CgA63pu9.js:49:15271)
    at Object.B [as t] (index-CgA63pu9.js:49:15411)
    at Object.t (index-CgA63pu9.js:49:21603)
    at Proxy.$t (index-CgA63pu9.js:49:28209)
    at Proxy.data (index-CgA63pu9.js:515:20108)

I guess you have set something on your Cloudflare like this: https://stackoverflow.com/questions/69853050/content-security-policy-problem-with-cloudflare

Does uptime-kuma support like this?
https://scotthelme.co.uk/csp-nonces-the-easy-way-with-cloudflare-workers/

FYI, my instance is working fine: https://status.kuma.pet/

Work fine because you doesn't add CSP in header🤔
https://securityheaders.com/?q=https%3A%2F%2Fstatus.kuma.pet&followRedirects=on

Alternatively, you can add a nginx or caddy container, and inject though headers following the Cloudflare docs:
https://developers.cloudflare.com/fundamentals/reference/policies-compliances/content-security-policies/

Is this another way of saying that uptime-kuma website doesn't support CSP directly?

Is this another way of saying that uptime-kuma website doesn't support CSP directly?

Just re-read your screenshoots, I find that CSP also block Vue.js due to unsafe-eval which is our frontend framework. So the answer is yes, Uptime Kuma doesn't support CSP directly currently.
https://stackoverflow.com/questions/65620412/content-security-policy-blocks-vue-js

Is this another way of saying that uptime-kuma website doesn't support CSP directly?

Just re-read your screenshoots, I find that CSP also block Vue.js due to unsafe-eval which is our frontend framework. So the answer is yes, Uptime Kuma doesn't support CSP directly currently.
https://stackoverflow.com/questions/65620412/content-security-policy-blocks-vue-js

Alright, Thanks your information
I'll remove CSPs until I found how perfect to config it.💪


Cleaned up parallel vs serial code paths a bit.

CODE REVIEW
Modified the code a bit to reflect two possible codepaths, serial and parallel.  Serial is going to be faster for small mutations and is what should be taken for small updates.  We use a constant number compared to the number of keys mutated to determine the correct codepath to take.  We can be smarter about this in the future.  Modified the add benchmark a bit and include the amortized cost of node splits.  Fast path insert is down to ~2400ns with the amortized splits included.  I still think we can do better though.
@alexandercampbell-wf @beaulyddon-wf @tannermiller-wf @rosshendrickson-wf @ericolson-wf @stevenosborne-wf @tylertreat

+1

+1

+1


BUG: Do not force ANNlib to build as shared

@thewtex  Your effort is very much appreciated, Matt. I just discussed your pull request with Marius. However, I'm sorry to say, we would rather keep the ANN lib "shared", even when elastix is built as a static lib! Especially because of the LGPL license of ANN, as you mentioned in issue #182. If we would link ANN statically to elastix, we would also have to make elastix LGPL, as far as I understand. But we prefer to keep elastix licensed as specified by https://github.com/SuperElastix/elastix/blob/develop/LICENSE
Hope you understand! By the way, I'm curious to hear, if you would like to share with us, what triggered your interest in ANN... 😃

@N-Dekker I updated the branch to keep the SHARED specification on the library, but still improve the export specification method so it is standard CMake, which should be more robust.
Yes, got curious about ANN since the LGPL raised an orange flag :netherlands: :-)

Sorry Matt, I'm reluctant to do modifications to the ANN, unless really necessary. I very much like the CMake generate_export_header command, but is there a real problem with the original #define DLL_API?
You see, the  #define DLL_API code is still from the original version, from https://www.cs.umd.edu/~mount/ANN/
#ifdef DLL_EXPORTS
   #define DLL_API __declspec(dllexport)
#else
  #define DLL_API __declspec(dllimport)
#endif

From "ann_1.1\include\ANN\ANN.h", from https://www.cs.umd.edu/~mount/ANN/Files/1.0/ann_1.0.tar.gz
If possible, I would prefer not get too much "out of sync" with the original ANN. Hope you understand.

May be i understand it wrong, not 100% sure, but seems that it might be possible to link statically, important is the ability to re-link the program.
"Essentially, if it is a "work that uses the library", then it must be possible for the software to be linked with a newer version of the LGPL-covered program. The most commonly used method for doing so is to use "a suitable shared library mechanism for linking". Alternatively, a statically linked library is allowed if either source code or linkable object files are provided.[3]"
[3] Gnu Lesser General Public License, Section 4

on the other hand the modifications to the ANN lib are quite straightforward, only replacing this key at places. If it makes library issues more robust, we should consider it...

Marius wrote:

on the other hand the modifications to the ANN lib are quite straightforward, only replacing this key at places.

@thewtex So is the main issue you're aiming to fix that the original ANN DLL_API macro does not have an ANN prefix? I see that that might possibly lead to ambiguities.

If it makes library issues more robust, we should consider it...

@mstaring OK, but could we then also consider upgrading to the latest version of ANN? It feels a bit odd to do maintenance on an outdated version (version 1.1, 2005). The latest version (version 1.1.2, 2010) has a few small improvement in coding style and license text.

I believe the use of GenerateExportHeader is a main thing also. I guess that gives a better definition of the DLL_API thing, not only the ANN prefix (but that is a guess)
yes upgrading is a good idea!

yes upgrading is a good idea!

Here it is: Pull request #194 "ENH: Upgrade ANN library from 1.1 (2005) to 1.1.2 (2010)"

@thewtex Now that we upgraded ANN (pull request  #194), your export specification commit 127c9ae81166469f46a2a92cb95e4d6077f38a88 cannot be merged automatically anymore. Would you possibly have time to resolve the conflicts? I think it would be rather straightforward, but it probably requires some manual editing.

@N-Dekker yes, I will rebase.
It seems that we need this to avoid the itkElastixRegistrationMethodTest test from failing on Windows. It is passing here, with the patch:
https://dev.azure.com/ITKElastix/ITKElastix/_build/results?buildId=27
And it fails here, without the patch:
https://dev.azure.com/ITKElastix/ITKElastix/_build/results?buildId=32

yes, I will rebase.

Thanks Matt!

It seems that we need this to avoid the itkElastixRegistrationMethodTest test from failing on Windows. It is passing here, with the patch

@thewtex Do you have an explanation, why or how this patch would fix a test failure? Until now, I thought it was mostly a style PR, allowing CMake GenerateExportHeader to generate export macro's, instead of the original "manually defined" ANN export macro's.

The Elastix / ITK code is #include'ing ANN.h, which has the export macros, but we disabled the ANNlib build in ITKElastix -- this is evidently problematic with non-CMake export macros.

The Elastix / ITK code is #include'ing ANN.h, which has the export macros, but we disabled the ANNlib build in ITKElastix -- this is evidently problematic with non-CMake export macros.

Thanks for the explanation Matt. But then, when you disable  the ANNlib build, where does the #include ANN.h come from? Is the elastix CMake option USE_KNNGraphAlphaMutualInformationMetric = OFF not working properly?

But then, when you disable the ANNlib build, where does the #include ANN.h come from?But then, when you disable the ANNlib build, where does the #include ANN.h come from?

Here are a few examples:
https://github.com/SuperElastix/elastix/blob/285083d01dd923e046a41528db3eadb3e4d435eb/Components/Metrics/KNNGraphAlphaMutualInformation/KNN/itkANNBinaryTreeCreator.h#L24
https://github.com/SuperElastix/elastix/blob/285083d01dd923e046a41528db3eadb3e4d435eb/Components/Metrics/KNNGraphAlphaMutualInformation/KNN/itkBinaryANNTreeBase.h#L22
https://github.com/SuperElastix/elastix/blob/465fad42a9b4f2861ee034f098c9c71074881f2c/Components/Metrics/KNNGraphAlphaMutualInformation/KNN/itkBinaryANNTreeSearchBase.h#L23

Is the elastix CMake option USE_KNNGraphAlphaMutualInformationMetric = OFF not working properly?

The option ensures the ANNLib is not built, but the manual export specification is not compatible.

@N-Dekker rebased! :construction_worker_man:

Thank you @N-Dekker !


fix typo in startup mad libs exercise

corrected name of the feedback macro to be implemented. Also, if the user binds one of the variables to a non-binary type, such as number or nil, the livebook evaluator throws an error before the assertion macro is implemented. (See picture below).

This happens because using non-binary values in string concatenation throws an error in Elixir (note that this does not happen in the next cell where string interpolation is used instead.)
I tried moving the Utils.feedback code before the madlib, but then madlib is undefined and that again causes an error. Perhaps there's a way to catch any errors thrown by the evaluator and show them alongside the feedback from the feedback macro?

Unfortunately, any syntax error in the Elixir cell will cause the cell to crash before the tests can run. We're in discussion about interrupting the evaluation of Elixir cells somehow but without doing that there's no (desirable) way I can think of to prevent a crash.


Update git clone logic in build.xml

Removes prestaged jck material and reclones it, if git command fails.
resolves: https://github.com/adoptium/aqa-tests/issues/4846

Grinder_jck test: 2010/2011

Converted the PR in draft. Please change the PR in Ready for review when it is ready.

The current PR only adds the error check in the places that we think it may fail. This is not sufficient. The better way to do this is to use try/catch. In shell, we mimic try/catch as follows.
{ # try

  # commands

} || { # catch

}

https://stackoverflow.com/questions/22009364/is-there-a-try-catch-command-in-bash
Also, this can help us to write clean code to avoid repeatedly calling the same functions. For example, remove_and_clone is called 6 times in the PR.


A timeout on a SET/SETEX call can return "OK" for the next GET

If a SETEX call fails due to a client side timeout, the socket buffers are not cleared. It is possible that the server finishes the SETEX call and returns "OK" down the wire. Then the next GET call from the client will see that in the buffer and return "OK" and not the correct value for the GET returned from the server.
Should be able to fix this by closing/reopening Connection.outputStream upon a timeout from SET/SETEX/GET calls.

How are you using jedis? With a pool or directly?
On 11/15/11, thushw
<EMAIL_ADDRESS>wrote:

If a SETEX call fails due to a client side timeout, the socket buffers are
not cleared. It is possible that the server finishes the SETEX call and
returns "OK" down the wire. Then the next GET call from the client will see
that in the buffer and return "OK" and not the correct value for the GET
returned from the server.
Should be able to fix this by closing/reopening Connection.outputStream upon
a timeout from SET/SETEX/GET calls.

Reply to this email directly or view it on GitHub:
https://github.com/xetorthio/jedis/issues/230

--
Sent from my mobile device

Is there any reason that this cannot be handled at the library level?

Usually I like to leave Jedis as simple as possible. Without doing too
many things and confusing the user.
I think that if we find very good reasons to handle this kind of stuff
internally we can add it. But I like to be carefull regard that.
On 11/16/11, thushara wijeratna
<EMAIL_ADDRESS>wrote:

Is there any reason that this cannot be handled at the library level?

Reply to this email directly or view it on GitHub:
https://github.com/xetorthio/jedis/issues/230#issuecomment-2767142

--
Sent from my mobile device

I will close this issue. I you think you have a good use case to add this to Jedis than we can reopen this.
Thanks!


Aurelia Bundling

It seems during install the aurelia mask package does not install an<EMAIL_ADDRESS>file.  This file is necessary for aurelia bundling to work correctly.

looks like we need jspm.main to be set to something. I guess index?

ok, file appears to show up in 1.1.5


Nested groups and Enterprise Applications

This bullet point from the list of unsupported features:

We currently don't support:

Assigning apps to nested groups.

Not sure it is the same scenario, but I was able to add/assign a nested group to an enterprise application.
However, if instead I try to add the parent group to the Enterprise Application, then it shows a warning about cascading the permissions to the nested groups:

If I understand, the limitation is that permissions from a parent group won't cascade to nested groups, but you can add/assign nested groups to the enterprise applications, and direct memberships will receive the assignment.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: d8e8f086-fb5c-4fe3-10d3-cf6c5557559d
Version Independent ID: 3188422c-1f0d-f99c-ad0c-19b22a75e1fb
Content: How to manage groups - Microsoft Entra
Content Source: docs/fundamentals/how-to-manage-groups.md
Service: active-directory
Sub-service: fundamentals
GitHub Login: @shlipsey3
Microsoft Alias: sarahlipsey

@epomatti
Thanks for your feedback! We will investigate and update as appropriate.

@shlipsey3
Can you please check and add your comments on this doc update request as applicable.

Been a minute since I've looked at nested groups, but the idea is that only the parent group gets the assignment, whether you assign the app to the group or the other way around. The nested group won't get the assignment regardless of how it's assigned. I'll look into adding some clarifying language. Thanks!

@epomatti
if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.

@AjayBathini-MSFT I understand clarification will be added to the documentation. Up to you if you want to keep this opened or not.


Use Message#mentions instead of regex for leaderboard

Discord.js has built-in support for mentions so we can use that instead, also in Discord.js v13 using a regex for mentions will make it harder to conform to discord.js types.

I like red diffs

Ayyyyyy can I get one more approval on my PR: 🥺👉👈 😂😂😂 🥺👉👈

I can't figure out how to approve this on mobile lol.

[ ] Approved!


yaxis value not the expected value

版本及环境 (Version & Environment)

ECharts 版本 (ECharts version): 3.1.3

可能哪里有问题 (What went wrong)
y axis value is not good in my project but also in echarts examples : http://echarts.baidu.com/echarts2/doc/example/line2.html#-en
the real value is 932 but the line is shown between 1500 and 2000

but if we disable all the others lines the y axis value is good

It is because you set the stack in series. Which will cause value in series will be added value in previous series with same stack


updated dashboard version

Task/Issue URL:
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

Current dependencies on/for this PR:

shane/toggle-exp

PR #2   👈

This comment was auto-generated by Graphite.


Localization of the word "to" in range mode

Is it possible to change the word "to" in range mode without tinkering the main js file?

Thanks. That was quick and great!


Running Frankencover script on Jenkins

The coverage.info holds the wrong source file destination. I created a Project A and run the Frankencover script locally. Then deleted the project and created Project B. This time the coverage.info files SN: value is pointing to the file that belongs to project A. Has anyone come across this issue?
geninfo ./build/reports/temp/coverage-data/*.gcno  --output-filename ./build/reports/temp/coverage.info.temp || :
lcov -r ./build/reports/temp/coverage.info.temp main.m queue.h once.h CGGeometry.h MKGeometry.h NSRange.h > ./build/reports/temp/coverage.info

I guess its picking up from the DerivedData folder. can someone confirm on this?

@siddharthan64 Sounds like a possible error. Because build output for a particular app can end up in an unpredictably (so far as I know) named folder, it uses unix cmds to scan that entire root folder for data-files corresponding to the name of one of your files in the specified source dir. . So if you have two projects with classes named the same this problem could occur.
Workaround:
Before running the build you could rm -fr ~/Library/Developer/Xcode/DerivedData - there should be no negative impacts to this beyond a slightly slower build, but on the plus side it would give more reliable results overall, not just for coverage.


Prisma doesn't know which engines to download for the Linux distro "guttaos"

Bug description
Prisma doesn't know which engines to download for the Linux distro "guttaos". Falling back to Prisma engines built "debian".
Please report your experience by creating an issue at https://github.com/prisma/prisma/issues so we can add your distro to the list of known supported distros.
How to reproduce

Expected behavior
No response
Prisma information

// Add your schema.prisma

// Add your code using Prisma Client

Environment & setup

OS:
Database:
Node.js version:

Prisma Version
^5.9.1
"

Hi @RobertoModeneziNeto
I'll close this, as the fallback/default engine should work as expected, so only a report would be needed if there is an issue.
Note that we changed the message, to make it informational only in https://github.com/prisma/prisma/pull/23243
The updated message will be part of the next release 5.11.0, next week.


504 Gateway Time-out

Hi!
I am not managing to add a new organization, after clicking appears or error 504 Gatewat Time-out.
Currently I have 4 organizations, is there any limit?
Thanks!

Hey @lira. Apologies for the slowness in replying to you on this. Are you still having issues connecting? What browser are you using?

Hi @rachellerathbone, the problem still occurs :( I tried it on Google Chrome, on Windows, Linux, Mac and Android.
I also tried it with Opera and Microsoft Edge, on the same platforms.
It keeps loading and ends up in error 504.

@lira I can't find anything in our logs.  This seems to be some networking issue which I'm not sure where it's stemming from.  We'll need to investigate further.
Could this be possibly an issue on your side?  like some kind of company VPN/firewall?  We haven't heard anyone else having this issue.

@lira I can't find anything in our logs. This seems to be some networking issue which I'm not sure where it's stemming from. We'll need to investigate further.
Could this be possibly an issue on your side? like some kind of company VPN/firewall? We haven't heard anyone else having this issue.

Hello! @mboudreau, I used 2 different internet providers on the computers, with or without vpn, browser in normal mode and anonymous mode. Tried by cell phone on a 4G network, the same problem occurs. is there any restriction for requests coming from Brazil?
I copied the same request with Curl, using the -vv parameter, and it returned:
*   Trying <IP_ADDRESS>:443...
* TCP_NODELAY set
* Connected to github.atlassian.com (<IP_ADDRESS>) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=AU; ST=New South Wales; L=Sydney; O=Atlassian Pty Ltd; CN=*.atlassian.com
*  start date: Apr  8 00:00:00 2020 GMT
*  expire date: Jun 10 12:00:00 2022 GMT
*  subjectAltName: host "github.atlassian.com" matched cert's "*.atlassian.com"
*  issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert SHA2 High Assurance Server CA
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55fae1d201c0)
> GET /github/configuration HTTP/2
> Host: github.atlassian.com
> accept-encoding: deflate, gzip, br
> authority: github.atlassian.com
> cache-control: max-age=0
> sec-ch-ua: "Microsoft Edge";v="95", "Chromium";v="95", ";Not A Brand";v="99"
> sec-ch-ua-mobile: ?0
> sec-ch-ua-platform: "Windows"
> upgrade-insecure-requests: 1
> user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44
> accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
> sec-fetch-site: same-origin
> sec-fetch-mode: navigate
> sec-fetch-user: ?1
> sec-fetch-dest: document
> referer: https://github.atlassian.com/
> accept-language: pt-BR,pt;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
> cookie: atl_xid.xc=%7B%22value%22%3A%222949a629-33f9-48e6-a8a7-d1cabc4f0e0c%22%2C%22createdAt%22%3A%222021-02-16T13%3A45%3A58.455Z%22%2C%22type%22%3A%22xc%22%7D; seg_xid=d0a25079-71d1-49d0-acd0-c50d45e64bc5; ajs_anonymous_id=%223d3ec80f-519e-ef71-ce58-22687469b883%22; ajs_group_id=null; atlCohort={"bucketAll":{"bucketedAtUTC":"2021-09-06T16:42:56.623Z","version":"2","index":17,"bucketId":0}}; optimizelyEndUserId=oeu1630946589158r0.06533526443671067; atlUserHash=1393648548; _gcl_au=1.1.785868909.1630946591; _ga=GA1.2.165801127.1630946591; _mkto_trk=id:594-ATC-127&token:_mch-atlassian.com-1630946591138-12337; _rdt_uuid=1630946591183.d65d7589-86dc-4f48-aa7e-9b23f201ef35; _fbp=fb.1.1630946591210.573428309; _uetvid=85af57500f3111ec8adac1daadccde61; _cs_c=1; _cs_id=e49e61de-0c8b-a92d-f1fc-9cfc85891755.1630946591.1.1630946591.1630946591.1.1665110591662; _biz_uid=34fa889b2f894127e67747a3f1361140; _biz_nA=3; _biz_flagsA=%7B%22Version%22%3A1%2C%22Mkto%22%3A%221%22%2C%22ViewThrough%22%3A%221%22%2C%22XDomain%22%3A%221%22%7D; WRUIDAWS=3454995332088892; __CT_Data=gpv=1&ckp=tld&dm=atlassian.com&apv_45_www33=1&cpv_45_www33=1&rpv_45_www33=1; _biz_pendingA=%5B%5D; __cid=8eb72504-8f33-4a90-97d0-ca5d613c5dd4-1546581b989542d5c1de6e73; __aid_user_id=5d30ae9d4d6e3c0c88a054d4; OptanonConsent=landingPath=NotLandingPage&datestamp=Tue+Oct+26+2021+19%3A35%3A43+GMT-0300+(Hor%C3%A1rio+Padr%C3%A3o+de+Bras%C3%ADlia)&version=4.3.3&EU=false&groups=0_144275%3A1%2C101%3A1%2C1%3A1%2C2%3A1%2C103%3A1%2C0_144389%3A1%2C105%3A1%2C3%3A1%2C0_145087%3A1%2C112%3A1%2C0_145849%3A1%2C4%3A1%2C113%3A1%2C0_146519%3A1%2C125%3A1%2C0_147366%3A1%2C126%3A1%2C0_149658%3A1%2C127%3A1%2C0_150360%3A1%2C128%3A1%2C0_150361%3A1%2C131%3A1%2C0_152586%3A1%2C134%3A1%2C0_177825%3A1%2C0_144574%3A1%2C0_145089%3A1%2C0_147243%3A1%2C0_147316%3A1%2C0_147317%3A1%2C0_147320%3A1%2C0_147327%3A1%2C0_150364%3A1%2C0_150452%3A1%2C0_151725%3A1%2C0_151744%3A1%2C0_151754%3A1%2C0_155093%3A1%2C0_152355%3A1%2C0_147367%3A1%2C0_162785%3A1%2C0_148475%3A1%2C0_154648%3A1%2C0_147315%3A1%2C0_154645%3A1%2C0_155091%3A1%2C0_142671%3A1%2C0_154646%3A1%2C0_155092%3A1%2C0_150368%3A1&AwaitingReconsent=false; session=eyJjc3JmU2VjcmV0IjoiaVltOE5ZOFdHOHFCMUNwR1ByTWdDWnNxIiwiamlyYUhvc3QiOiJodHRwczovL2xpcmFzLmF0bGFzc2lhbi5uZXQiLCJnaXRodWJUb2tlbiI6ImdodV9raHJWenAzTlJoZDVpT01QbzR5OEl6U2YwS3RONXEweUxRdGkifQ==; session.sig=DsIdfZYW0cxBTtvjBIP-6yvLg9E
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Connection state changed (MAX_CONCURRENT_STREAMS ==<PHONE_NUMBER>)!
< HTTP/2 504
< server: globaledge-envoy
< date: Tue, 09 Nov 2021 10:52:38 GMT
< content-type: text/html
< content-length: 534
< x-envoy-upstream-service-time: 180200
< expect-ct: report-uri="https://web-security-reports.services.atlassian.com/expect-ct-report/github-for-jira", max-age=86400
< strict-transport-security: max-age=63072000; preload
< x-content-type-options: nosniff
< x-xss-protection: 1; mode=block
< atl-traceid: 9b350c77d3827856
< report-to: {"group": "endpoint-1", "max_age": 600, "endpoints": [{"url": "https://dj9s4kmieytgz.cloudfront.net"}], "include_subdomains": true}
< nel: {"report_to": "endpoint-1", "max_age": 600, "include_subdomains": true, "failure_fraction": 0.001}
<

<title>504 Gateway Time-out</title>

504 Gateway Time-out

* Connection #0 to host github.atlassian.com left intact

@lira Quick question, do you have IP allowlisting enabled on your github org?

@mboudreau Hello! I didn't activate the ip restriction in the organization

@mboudreau I did a new test, created a new account on Github and let her own my orgs, with the new account I could add. I have others orgs, which I'm not owner, I imagine that some of them might have the allowlist enabled.
Is there any forecast of any adjustment?

@lira We've done some updates which might have fixed your scenario.  Could you please try again and let us know?  Thanks.

Hello @mboudreau I tried again but a new loading screen appeared and after a while error 504 appeared.

@lira you are really good at finding bugs.  Apparently this was caused if one of your organizations has too many repositories.  We've now fixed this issue.  Could you please try again?  Thanks.

@mboudreau hey, bang, now I can install and add all of my organizations!
Thank you!

That's great to hear! Finally :)


CPU editor writing to different folder than listing

The CPU editor lists and reads files from "cpuchip", but writes the files to "CPUChip"
This is likely only a problem on Linux, since Windows ignores case.
I somehow got it to work but after reloading the map it stopped working again and I could not reproduce that behaviour again, but I don't think it is important.
(And this time I tested it in singleplayer...)

Is this related to the last patch you did @AbigailBuccaneer?
I was searching for hours why mostly zcpu was halting with error#2 all the time and the debugger goes crazy, even with helloworld.txt.
Then I have seen, as soon as I attach the debugger, I will get this error in console:
"Erroring opening file: CPUChip\cpuchip/examples/helloworld.txt."
It happens with all programs, even with build in helloworld.txt in example folder.
But I use a windows server, so upper/lowercase could not be the problem, you have any idea why I get the error?

Interrupt 2 is end of execution. Was this halting just caused by #851 or is this a separate issue? (And if so, post code, of course.)

Yes Interrupt 2 is caused by pressing reset (#851), I figured it out late at night.


Insertion Point Unintentionally Moves to Line 1

User Agent is: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36.
While typing code, insertion point will sometimes move to Line 1.  The problem is difficult to recreate, but it's happened so far when I've inputted backspace, ctrl+backspace, home + backspace, shift + 7 (&).  This problem has occurred across multiple challenges and only after the implementation of the new site.  I've tried controlling for user error by locking my touchpad, problem still persists with occasional frequency.

Closing as duplicate of the codemirror bug
Please see http://forum.freecodecamp.com/t/creating-a-new-github-issue/18392
Happy Coding!


New check: article/images (location, resolution and filesize)

We currently don't have any checks for family articles. I'm opening this issue so we can discuss possible checks we'd like to include in our CI for families that have articles.
The following have been proposed:

Check images/videos are included in an /images directory
Check images are no bigger than 800kb for raster images and 1750kb for vector

@nathan-williams for the /images dir. Do we expect it in /ofl/family/article/images or /ofl/family/images?
cc @chrissimpkins @davelab6 @emmamarichal @vv-monsalve @nathan-williams

Nathan also noticed that Ojuju had a massive 1.5mb .gif. These should be converted to mp4.

Here's a list of image resolutions sampled from the google/fonts repo and sorted (largest first). Where should we put the max resolution threshold?

3840 x 2160: robotoflex
2800 x 2800: climatecrisis
2700 x 1800: gulzar
2700 x 1800: eduvicwantbeginner
2700 x 1800: edutasbeginner
2700 x 1800: edusabeginner
2700 x 1800: eduqldbeginner
2700 x 1800: edunswactfoundation
2700 x 1800: dynapuff
2432 x 1622: spectral
2400 x 1800: atkinsonhyperlegible
2400 x 1536: gulzar
2400 x 1350: kalnia
2400 x 1200: tirotamil
2400 x 1200: tirokannada
2400 x 1200: tirogurmukhi
2400 x 1200: tirodevanagarisanskrit
2400 x 1200: tirodevanagarimarathi
2400 x 1200: tirodevanagarihindi
2400 x 1200: tirobangla
2400 x 1200: lexendzetta
2400 x 1200: lexendtera
2400 x 1200: lexendpeta
2400 x 1200: lexendmega
2400 x 1200: lexendgiga
2400 x 1200: lexendexa
2400 x 1200: lexenddeca
2400 x 1200: lexend
2400 x 1200: fraunces
2400 x 1158: kalnia
2160 x 1440: afacad
2048 x 816: redactedscript
2048 x 816: redacted
2048 x 816: flowrounded
2048 x 816: flowcircular
2048 x 816: flowblock
2048 x 1024: zentokyozoo
2048 x 1024: zenoldmincho
2048 x 1024: zenmarugothic
2048 x 1024: zenloop
2048 x 1024: zenkurenaido
2048 x 1024: zenkakugothicnew
2048 x 1024: zenkakugothicantique
2048 x 1024: zendots
2048 x 1024: zenantiquesoft
2048 x 1024: zenantique
2048 x 1024: questrial
1999 x 1000: shantellsans
1999 x 1000: readexpro
1800 x 1200: atkinsonhyperlegible
1601 x 692: anektelugu
1601 x 692: anektamil
1601 x 692: anekodia
1601 x 692: anekmalayalam
1601 x 692: aneklatin
1601 x 692: anekkannada
1601 x 692: anekgurmukhi
1601 x 692: anekgujarati
1601 x 692: anekdevanagari
1601 x 692: anekbangla
1420 x 887: robotoserif
1400 x 788: playpensans
1400 x 700: taiheritagepro
1400 x 700: mingzat
1400 x 700: andika
1280 x 758: playpensans
1280 x 720: playpensans
1100 x 550: spacemono
800 x 533: brygada1918
800 x 250: fraunces
640 x 640: urbanist
640 x 402: bizudpmincho
640 x 402: bizudpgothic
640 x 402: bizudmincho
640 x 402: bizudgothic
400 x 400: pushster
228 x 221: pushster

@m4rc1e, I've renamed the issue to focus on this specific article/images new check proposal.
For additional check proposals, please open separate issues.

Look at that!!!
Roboto Flex's massive image has 17.7 mega bytes!

@nathan-williams do we care about resolution or just size?

@nathan-williams do we care about resolution or just size?

Given the example of Roboto Flex above, yes, I think we should have a max resolution rule.

I've merged the PR with the new check implementation so that people can try it (it is marked as an experimental check).
But I'll keep this issue open for additional discussion on proposed checking criteria.
I've set the experimental check to:

WARN if an article directory is not found
FAIL if image (either raster or vector) are found but not on the article/images directory.
FAIL if image files not within these contraints:
=> MAX_WIDTH = 2048 pixels
=> MAX_HEIGHT = 1024 pixels
=> MAXSIZE_VECTOR = 1.75Mb
=> MAXSIZE_RASTER =  800kb

Check images/videos are included in an /images directory

Currently, we do not use an /images directory but add the images directly to the article directory next to the ARTICLE.en_us.html file. Do we need this directory, or could we continue adding them to the root of the /article directory?
Will there be a limit on the number of images? Therefore, the total size of the image files.

Thank you for the summary, @felipesanches. All of that looks good to me.
@vv-monsalve I don't think we need a check for total image load at this time. As for the /images directory, it looks like that isn't necessary after all; Onest is a working example. My suggestion to include that check was based on some images checks in the knowledge_graph.py workflow, which are made redundant by these FontBakery checks. I'm actually okay with dropping that requirement if it makes things easier. No strong preference either way, so whatever the team feels is better for the author.

I don't think we need a check for total image load at this time.

Okay. In that case, there will also be no limit on the number of images, right?
About the limit for vector Vs. raster images. Couldn't it be the opposite, bigger for raster and smaller for vector?
The firsts are usually heavier, and 800kb could be a really low limit for animated GIFs or videos. Or would there be a different limit for them?
=> MAXSIZE_VECTOR = 800kb
=> MAXSIZE_RASTER = 1.75Mb

I agree with @vv-monsalve  It seems that we should accept larger rasters, rather than larger vectors.

As for the /images directory, it looks like that isn't necessary after all;

But it could be useful to at least WARN, so that we could slightly nudge the whole library towards some consistency

I can add more context here. The MAXSIZE_RASTER of 1.75MB corresponds to the following types:  PNG, JPG/JPEG, JXL, and GIF. MAXSIZE_VECTOR should apply to any other media. These constraints are loosely based on infrastructure limitations under default configurations.

The MAXSIZE_RASTER of 1.75MB corresponds to the following types: PNG, JPG/JPEG, JXL, and GIF

Thanks, @nathan-williams, for the added info. However, this value is the opposite of what you specified in the chat where you said 1,75 were for vector images. Could you confirm it is 1.75MB for the above formats? and in that case 800 kb for VECTORS?

@nathan-williams Could you please check whether it is actually VECTORS that have the 800kb limit? We're suspecting that the numbers may be mixed, because vectors are usually smaller than raster images.

Nate was/is out this week so I'll follow up with him on Monday :)
Wow yes, that Roboto Flex hero.png is 3840 × 2160 and optipng makes it 17,658,525 bytes (a 15,415 byte, 0.09% decrease...) So I added a downscaled version to https://github.com/google/fonts/pull/7518 which I started to deal with the 1.5Mb GIF in Ojuju.
I made a few and in macOS Chrome Inspector I found the image is only rendered just under 900px wide anyway due the page layout, which came it at 900kb, but a JPEG (80% compression) version of the same resolution is ~166kb optimized:
$ sips -Z 800 hero.png -o hero-800.png
$ sips -Z 800 -s format jpeg -s formatOptions 80 hero.png -o hero-800.jpg
$ ls -l
  899,639 hero-800.png
  176,465 hero-800.jpg
$ jpegoptim hero-800.jpg
hero-800.jpg 800x450 24bit N JFIF,Exif [OK] 176,465 --> 166,258 bytes (5.78%), optimized.

So... probably we should have a "gf content" profile that has a dependency on imagemagick (or sips if running on macOS, a proprietary image converter) to empirically test all the images in the repo, convert them to/from png/jpg and test if the image compression format makes a big difference, and rescale the article images to 900px width proportionally.

Nate was/is out this week so I'll follow up with him on Monday :)
Wow yes, that Roboto Flex hero.png is 3840 × 2160 and optipng makes it 17,658,525 bytes (a 15,415 byte, 0.09% decrease...) So I added a downscaled version to https://github.com/google/fonts/pull/7518 which I started to deal with the 1.5Mb GIF in Ojuju.
I made a few and in macOS Chrome Inspector I found the image is only rendered just under 900px wide anyway due the page layout, which came it at 900kb, but a JPEG (80% compression) version of the same resolution is ~166kb optimized:
$ sips -Z 800 hero.png -o hero-800.png
$ sips -Z 800 -s format jpeg -s formatOptions 80 hero.png -o hero-800.jpg
$ ls -l
  899,639 hero-800.png
  176,465 hero-800.jpg
$ jpegoptim hero-800.jpg
hero-800.jpg 800x450 24bit N JFIF,Exif [OK] 176,465 --> 166,258 bytes (5.78%), optimized.

So... probably we should have a "gf content" profile that has a dependency on imagemagick (or sips if running on macOS, a proprietary image converter) to empirically test all the images in the repo, convert them to/from png/jpg and test if the image compression format makes a big difference, and rescale the article images to 900px width proportionally.

Resizing some images doesn't make any difference as they don't have any sharp shapes (like small text labels) but for some the JPEG format makes it overall a little fuzzy even without resizing. Its only ~80 families so I'll manually review visually and make a PR to update them as needed.

@felipesanches though surprising, the thresholds should indeed be set that way today. These are inferred constraints based on where we encounter timeouts in the processing infrastructure. I'm interested in adjusting timeouts where we can to shift those thresholds, but we aren't going to pursue that right now.

@nathan-williams, thanks for the clarification!

The initial implementation of this check will be included in today's 0.12.0 release. And any further improvements can be made for the v0.12.1 later this month.

@felipesanches I think this can be closed then? :)


[🐞] qwik-react client:signal directive not working

Which component is affected?
Qwik React
Describe the bug
Setting a signal to trigger React hydration is not working.
Reproduction
https://stackblitz.com/edit/qwik-starter-45daja?file=src/routes/index.tsx
Steps to reproduce
Try clicking the button in the demo repo - the value of the signal changes but the component does not render.
System Info
System:
    OS: macOS 13.1
    CPU: (10) arm64 Apple M1 Max
    Memory: 48.61 MB / 32.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.18.0 - ~/Library/Caches/fnm_multishells/99978_1678031038873/bin/node
    Yarn: 1.22.19 - ~/.nvm/versions/node/v14.21.3/bin/yarn
    npm: 8.19.2 - ~/Library/Caches/fnm_multishells/99978_1678031038873/bin/npm
  Browsers:
    Chrome: 111.0.5563.64
    Chrome Canary: 113.0.5653.0
    Safari: 16.2
  npmPackages:
    @builder.io/qwik: 0.21.0 => 0.21.0
    @builder.io/qwik-city: 0.5.3 => 0.5.3
    @builder.io/qwik-react: 0.4.2 => 0.4.2
    undici: 5.20.0 => 5.20.0
    vite: 4.1.4 => 4.1.4

Additional Information
No response

Is it still a valid issue?


Stuck pending channels

Background
Some pending channels are still in a state of pending, although their funding transactions have more than 100 confirmations
Your environment

version of lnd - 0.8.0-beta
version of btcd, bitcoind, or other backend - bitcoind 0.18.0
golang 1.13.3

Steps to reproduce
I don't know.
Expected behaviour
After some confirmations they should be opened
Actual behaviour
Over the last day, my own autopilot opened 82 channels until the nodes worked. But it is important that of these 14 channels are still in a state of pending, although their funding transactions have more than 100 confirmations. Do I need to create a ticket for this? As explained to me @btcontract, this could be due to the fact that the remote nodes must exchange messages FundingLocked. But I have big doubts that this is because of this, because for several hours the list of such channels has not been reduced, although they are open with different nodes. It is hard to believe that all these nodes behave in the same way (with some there are even active channels on the same LNBIG nodes where pending channels are with them). If I restart the server’s server now, I’m afraid that these channels will go into opened status and they won’t be able to catch the bug.
Other strange things about pending channels that they are seen as opened through 1ml.com for example. Here is full list of channel points of their channels:
p_1, pending, keys: lnd-01, 77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0, 16776085
p_1, pending, keys: lnd-03, 23269e76af291d70a883bf2ad4cbb47f12394d6419b979ad3e0b3256e47f331e:1, 16776085
p_1, pending, keys: lnd-11, 0f34842013205509f3c00da1d29542f2912913d4ec124bbeca13132a87b90607:0, 2956141
p_1, pending, keys: lnd-12, fcf666865702e4da1e45207a1c1ea6764128caadae13c877d7c9336388711330:1, 7998870
p_1, pending, keys: lnd-12, d19a86b6f63a863ac0ce84f70e319079eab4f9188ea79393e59399d96225c9fe:1, 7998870
p_1, pending, keys: lnd-12, 177a81d2719cd63b7203dffae93d7f8d9fed19a14f6c3669b5bf150e980543d0:1, 7998870
p_1, pending, keys: lnd-13, 92dc896927df360280f65b50213a3c67778817acaa7badaa7b72f9d158b7c574:1, 7998867
p_1, pending, keys: lnd-13, 78417a41a0d734cead2b38560301634770e0ca432fd2df9ac31b97899292247c:1, 13974405
p_1, pending, keys: lnd-13, 22d94aadd0d599fb866eec4b123c370ee24e73869eaeef8faed28f9cb8f5af91:1, 7998979
p_1, pending, keys: lnd-13, acd8a99c25dc0486f36084acfabb6dafaf6cf131583a0f88372840d20e826d6c:1, 7998870
p_1, pending, keys: lnd-13, 68532a99f566f41d480785f1e4dc46a67f4222af882fa7240f154b3382e85491:1, 9737903
p_1, pending, keys: lnd-13, 754bce568b58ea24ad1df09e6bfa7682fbf41de7dd5d3ca01a5c435f518d0c85:1, 7998979
p_1, pending, keys: lnd-27, 93c1547a79b3b93fbec0d77430243d958691898b455e4af99e604ca7ca8cc6fb:1, 7998979
p_1, pending, keys: lnd-31, 94037ead101b0f23f32d0a3e09b302518804f09f0d6a2edda12038db1d477185:1, 7998870

For example lets see to this channel: lnd-01, 77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0
Right now the lnd-01 has in pendingchannels:
        {
            "channel": {
                "remote_node_pub": "02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695",
                "channel_point": "77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0",
                "capacity": "16777215",
                "local_balance": "16776085",
                "remote_balance": "0",
                "local_chan_reserve_sat": "167772",
                "remote_chan_reserve_sat": "167772"
            },
            "confirmation_height": 0,
            "commit_fee": "1130",
            "commit_weight": "600",
            "fee_per_kw": "1562"
        },

Here all related grep info from logs:
$ grep -E '77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9|02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695|600553:2370:0' ~/.lnd/mainnet-lnd-run.log

2019-10-22 17:30:15.604 [ERR] RPCS: [connectpeer]: error connecting to peer: already connected to peer: 02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695@<IP_ADDRESS>:9735
2019-10-22 17:30:15.604 [ERR] RPCS: [/lnrpc.Lightning/ConnectPeer]: already connected to peer: 02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695@<IP_ADDRESS>:9735
2019-10-22 17:30:15.846 [INF] FNDG: Initiating fundingRequest(local_amt=0.16777215 BTC (subtract_fees=false), push_amt=0 mSAT, chain_hash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f, peer=02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695, dust_limit=0.00000573 BTC, min_confs=0)
2019-10-22 17:30:16.619 [INF] FNDG: Generated ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0) for pendingID(a83e47e8c926d02446c7c60ad89247962545cda25256bba2d34ab4011bdf8b80)
2019-10-22 17:30:16.822 [INF] FNDG: Broadcasting funding tx for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0): (*wire.MsgTx)(0xc0073221c0)({
2019-10-22 17:30:16.822 [INF] LNWL: Inserting unconfirmed transaction 77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9
2019-10-22 17:30:16.874 [INF] CNCT: Creating new ChannelArbitrator for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0)
2019-10-22 17:30:16.875 [INF] CNCT: ChannelArbitrator(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0): starting state=StateDefault
2019-10-22 17:30:16.876 [INF] NTFN: New spend subscription: spend_id=699, outpoint=77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0, height_hint=600546
2019-10-22 17:30:16.959 [INF] FNDG: Finalizing pendingID(a83e47e8c926d02446c7c60ad89247962545cda25256bba2d34ab4011bdf8b80) over ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0), waiting for channel open on-chain
2019-10-22 17:30:16.959 [INF] CNCT: Close observer for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0) active
2019-10-22 17:30:16.959 [INF] NTFN: New confirmation subscription: conf_id=134, txid=77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9, num_confs=6 height_hint=600546
2019-10-22 17:30:16.959 [INF] FNDG: Waiting for funding tx (77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9) to reach 6 confirmations
2019-10-22 17:39:33.317 [WRN] FNDG: ChainNotifier shutting down, cannot complete funding flow for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0)
2019-10-22 17:39:33.318 [ERR] FNDG: Unable to advance pending state of ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0): error waiting for funding confirmation for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0): waiting for fundingconfirmation failed
2019-10-22 17:39:33.521 [INF] SRVR: Disconnecting from 02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695@<IP_ADDRESS>:9735
2019-10-22 17:39:33.521 [INF] PEER: Disconnecting 02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695@<IP_ADDRESS>:9735, reason: server: disconnecting peer 02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695@<IP_ADDRESS>:9735
2019-10-22 17:39:33.521 [INF] PEER: unable to read message from 02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695@<IP_ADDRESS>:9735: read tcp <IP_ADDRESS>:37392-><IP_ADDRESS>:9735: use of closed network connection
2019-10-22 17:47:25.751 [INF] NTFN: New spend subscription: spend_id=537, outpoint=77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0, height_hint=600546
2019-10-22 17:47:57.261 [INF] CNCT: Close observer for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0) active
2019-10-22 17:48:15.546 [INF] CNCT: ChannelArbitrator(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0): starting state=StateDefault
2019-10-22 17:48:20.096 [INF] NTFN: New confirmation subscription: conf_id=15, txid=77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9, num_confs=6 height_hint=600546
2019-10-22 17:48:20.247 [INF] FNDG: Waiting for funding tx (77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9) to reach 6 confirmations
2019-10-22 17:48:22.707 [INF] SRVR: Established connection to: 02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695@<IP_ADDRESS>:9735
2019-10-22 17:48:22.707 [INF] SRVR: Finalizing connection to 02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695@<IP_ADDRESS>:9735, inbound=false
2019-10-22 17:48:22.870 [INF] PEER: NodeKey(02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695) loading ChannelPoint(82f5bb545b35e549303c0b533c07da71620814664d60273de929c661e79ee3cb:1)
2019-10-22 17:48:23.129 [INF] PEER: NodeKey(02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695) loading ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0)
2019-10-22 17:48:23.131 [WRN] PEER: Unable to find our forwarding policy for channel 77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0, using default values
2019-10-22 17:48:23.145 [INF] HSWC: ChannelLink(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0) is starting
2019-10-22 17:48:23.145 [INF] HSWC: HTLC manager for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0) started, bandwidth=16607992000 mSAT
2019-10-22 17:48:23.145 [INF] HSWC: Attempting to re-resynchronize ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0)
2019-10-22 17:48:23.145 [INF] SRVR: Negotiated chan series queries with 02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695
2019-10-22 17:48:23.145 [INF] DISC: Creating new GossipSyncer for peer=02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695
2019-10-22 17:48:23.146 [INF] HSWC: Received re-establishment message from remote side for channel(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0)
   PreviousOutPoint: (wire.OutPoint) 77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:1,
2019-10-22 18:21:12.929 [INF] LNWL: Marking unconfirmed transaction 77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9 mined in block 600553
2019-10-22 18:45:45.500 [INF] DISC: Received new remote channel announcement for 600553:2370:0
2019-10-22 18:45:46.519 [INF] NTFN: Dispatching 6 confirmation notification for txid=77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9
2019-10-22 18:45:46.519 [INF] FNDG: ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0) is now active: ChannelID(64396461323030303439396539333665363836353261386365366530383264323731613863343036626166333336326366353562663734393630363963383737)
2019-10-22 18:45:47.063 [INF] HSWC: ChannelLink(0:0:0) Updating to short_chan_id=600553:2370:0 for chan_id=d9da2000499e936e68652a8ce6e082d271a8c406baf3362cf55bf7496069c877
2019-10-22 18:45:47.063 [INF] HSWC: Updated short_chan_id for ChannelLink(d9da2000499e936e68652a8ce6e082d271a8c406baf3362cf55bf7496069c877): old=0:0:0, new=600553:2370:0
2019-10-22 18:45:47.063 [INF] CNCT: Attempting to update ContractSignals for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0)
2019-10-22 18:45:47.068 [INF] FNDG: Peer(02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695) is online, sending FundingLocked for ChannelID(d9da2000499e936e68652a8ce6e082d271a8c406baf3362cf55bf7496069c877)
2019-10-22 18:45:49.367 [INF] PEER: Already have ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0), ignoring.
2019-10-22 18:45:49.367 [INF] PEER: Processing retransmitted FundingLocked for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0)
2019-10-22 18:45:50.312 [INF] NTFN: New confirmation subscription: conf_id=29, txid=77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9, num_confs=6 height_hint=600553
2019-10-22 18:45:50.312 [INF] NTFN: Dispatching 6 confirmation notification for txid=77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9
2019-10-22 18:45:50.312 [INF] FNDG: Announcing ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0), short_chan_id=600553:2370:0
2019-10-22 18:45:50.313 [INF] DISC: Received new local channel announcement for 600553:2370:0
2019-10-23 00:22:23.410 [INF] HSWC: ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0): updating commit fee to 1562 sat/kw sat/kw
2019-10-23 05:59:25.602 [INF] DISC: GossipSyncer(02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695): applying new update horizon: start=2019-10-23 05:59:24 +0200 CEST, end=2155-11-29 11:27:39 +0100 CET, backlog_size=0
2019-10-23 06:19:25.628 [INF] DISC: GossipSyncer(02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695): applying new update horizon: start=2042-07-14 02:04:00 +0100 CET, end=2042-07-14 02:04:00 +0100 CET, backlog_size=0

And other related problem: if some funding transaction was not confirmed and will not be - the lnd keeps same channel as pending forever. I see this problem from version to version. It could be when a lnd or remote node created transaction when meepool was under high load and transaction was wiped by fee. Because of this, I have to constantly check the channel point for presence in the blockchain in order to correctly calculate balances in pending channels. These pending channels as eternal garbage. The LND could be check channel points for validity and to change status of same channels to other state (for example new status non_existing_channels for example).
I suspect that some monitoring tools may erroneously consider the balance of such channels in favor of the node, although in fact these UTXOs were spent in other transactions of the node. What do you think about this @alexbosworth @Roasbeef @wpaulino ?

Stuck pending is a common issue, I have it on my own node and multiple people have told me about it.
Most commonly there was a bug previously that caused the stuck pending and then the bug was fixed but the stuck pending was not cleaned up.

And other related problem: if some funding transaction was not confirmed and will not be - the lnd keeps same channel as pending forever. I see this problem from version to version. It could be when a lnd or remote node created transaction when meepool was under high load and transaction was wiped by fee. Because of this, I have to constantly check the channel point for presence in the blockchain in order to correctly calculate balances in pending channels. These pending channels as eternal garbage. The LND could be check channel points for validity and to change status of same channels to other state (for example new status non_existing_channels for example).

We are aware of this issue, it just hasn't been addressed yet. Note that you see this a lot more than other nodes due to spending unconfirmed funds for channels.

As explained to me @btcontract, this could be due to the fact that the remote nodes must exchange messages FundingLocked.

From looking at your logs, this isn't the case, it seems more like a database issue where the channel isn't moved from it's persistent pending state to confirmed.

From looking at your logs, this isn't the case, it seems more like a database issue where the channel isn't moved from it's persistent pending state to confirmed.

Should I wait for the patch or can I fix these problems myself?

As you noted in your first comment, restarting should address the issue for now.

There's a few interesting things to see in the logs:
A restart seems to have happened during the flow (which should be okay):
2019-10-22 17:39:33.317 [WRN] FNDG: ChainNotifier shutting down, cannot complete funding flow for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0)

After the restart, we re-sync the channel, and add it to the active channels know by the peer (maybe we shouldn't do this for pending channels?):
2019-10-22 17:48:23.145 [INF] HSWC: Attempting to re-resynchronize ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0)

When the funding tx confims, we mark the channel opened in the DB, and report the shortChanID to the switch:
2019-10-22 18:45:46.519 [INF] NTFN: Dispatching 6 confirmation notification for txid=77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9
2019-10-22 18:45:46.519 [INF] FNDG: ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0) is now active: ChannelID(64396461323030303439396539333665363836353261386365366530383264323731613863343036626166333336326366353562663734393630363963383737)
2019-10-22 18:45:47.063 [INF] HSWC: ChannelLink(0:0:0) Updating to short_chan_id=600553:2370:0 for chan_id=d9da2000499e936e68652a8ce6e082d271a8c406baf3362cf55bf7496069c877
2019-10-22 18:45:47.063 [INF] HSWC: Updated short_chan_id for ChannelLink(d9da2000499e936e68652a8ce6e082d271a8c406baf3362cf55bf7496069c877): old=0:0:0, new=600553:2370:0
2019-10-22 18:45:47.063 [INF] CNCT: Attempting to update ContractSignals for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0)

We send the FundingLocked message, which means the channel has successfully been marked open in the DB:
2019-10-22 18:45:47.068 [INF] FNDG: Peer(02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695) is online, sending FundingLocked for ChannelID(d9da2000499e936e68652a8ce6e082d271a8c406baf3362cf55bf7496069c877)

We also receive FundingLocked from the peer:
2019-10-22 18:45:49.367 [INF] PEER: Already have ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0), ignoring.
2019-10-22 18:45:49.367 [INF] PEER: Processing retransmitted FundingLocked for ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0)
2019-10-22 18:45:50.312 [INF] NTFN: New confirmation subscription: conf_id=29, txid=77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9, num_confs=6 height_hint=600553
2019-10-22 18:45:50.312 [INF] NTFN: Dispatching 6 confirmation notification for txid=77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9
2019-10-22 18:45:50.312 [INF] FNDG: Announcing ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0), short_chan_id=600553:2370:0
2019-10-22 18:45:50.313 [INF] DISC: Received new local channel announcement for 600553:2370:0
2019-10-23 00:22:23.410 [INF] HSWC: ChannelPoint(77c8696049f75bf52c36f3ba06c4a871d282e0e68c2a65686e939e490020dad9:0): updating commit fee to 1562 sat/kw sat/kw
2019-10-23 05:59:25.602 [INF] DISC: GossipSyncer(02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695): applying new update horizon: start=2019-10-23 05:59:24 +0200 CEST, end=2155-11-29 11:27:39 +0100 CET, backlog_size=0
2019-10-23 06:19:25.628 [INF] DISC: GossipSyncer(02c12b5459cf107ee0440cae41902f1189db50fa003a077f3a6fbe6b5760218695): applying new update horizon: start=2042-07-14 02:04:00 +0100 CET, end=2042-07-14 02:04:00 +0100 CET, backlog_size=0

Everything looks okay from the logs, question is why it appears in the pendingchannels list, since I cannot see how we could get to the sendFundingLocked state without marking it IsPending = false in the DB.

@LNBIG-COM if you run with debuglevel=debug and see this problem again, those logs would be super useful!

@LNBIG-COM Just to make sure, is the channel in question found under pending_open_channels when issuing the pendingchannels command?

@LNBIG-COM if you run with debuglevel=debug and see this problem again, those logs would be super useful!

May be it's main reason of this bug?
https://github.com/lightningnetwork/lnd/issues/3624#issuecomment-545938476
I used autopilot and it created channels from unconfirmed of unconfirmed transactions. As @wpaulino told there:

I noticed that both transactions have an output that was spent in the same block, which makes me wonder if this is an edge case that's not covered in the wallet.

There's a few interesting things to see in the logs:

Today i restarted the lnd-01 and this channel is active.
But the transaction 77c869604... is child of https://www.smartbit.com.au/tx/0838c0113185a6a40bae9f5f44677b9a96e0810d25a0e035340868a3cf81832d & https://www.smartbit.com.au/tx/3143a58e8a4536520965071aba67d4e9c3984083c52ce378b5fe95d4a931d90c which were confirmed in same block. So i think this bug and bug https://github.com/lightningnetwork/lnd/issues/3624#issuecomment-545938476 are related together.

@LNBIG-COM Just to make sure, is the channel in question found under pending_open_channels when issuing the pendingchannels command?

@LNBIG-COM any answer to this?

Just to make sure, is the channel in question found under pending_open_channels when issuing the pendingchannels command?

I did not quite understand what you meant by the word pending_open_channels, but now everything has returned to normal status. After restart pending channels are active ones now.

Closing this in favor of https://github.com/lightningnetwork/lnd/issues/3675, which provides better details on how to reproduce the issue. Once that's closed, the issue should be resolved going forward. If you run into it before then, restarting should bring things back to normal.


Upgrade from 0.7.13 -> 0.7.16 - Invalid DNS server IP

Describe the bug
After upgrading from 0.7.13 -> 0.7.16, I get an error with the set of IPv6 DNS servers I have configured for clients (see logs below).
To Reproduce
firezone.rb has this configuration:
default['firezone']['wireguard']['dns'] = '<IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, 2606:4700:4700::1111, 2606:4700:4700::1001, 2001:4860:4860::8888, 2001:4860:4860::8844'

Removing the addresses from firezone.rb does not fix; rather they are set in the DB.
Expected behavior
The IPv6 DNS servers are allowed
Screenshots / Logs
2023-02-23_07:18:39.15981     ** (EXIT) an exception was raised:
2023-02-23_07:18:39.15981         ** (RuntimeError) Found 1 configuration errors:
2023-02-23_07:18:39.15982
2023-02-23_07:18:39.15982
2023-02-23_07:18:39.15982 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-02-23_07:18:39.15982
2023-02-23_07:18:39.15983 Invalid configuration for 'default_client_dns' retrieved from database configuration default_client_dns.
2023-02-23_07:18:39.15983
2023-02-23_07:18:39.15983 Errors:
2023-02-23_07:18:39.15983
2023-02-23_07:18:39.15983  - `" 2001:4860:4860::8844"`: must be one of: Elixir.FzHttp.Types.IP, string, 2001:4860:4860::8844 is not a valid FQDN
2023-02-23_07:18:39.15984  - `" 2001:4860:4860::8888"`: must be one of: Elixir.FzHttp.Types.IP, string, 2001:4860:4860::8888 is not a valid FQDN
2023-02-23_07:18:39.15984  - `" 2606:4700:4700::1001"`: must be one of: Elixir.FzHttp.Types.IP, string, 2606:4700:4700::1001 is not a valid FQDN
2023-02-23_07:18:39.15984  - `" 2606:4700:4700::1111"`: must be one of: Elixir.FzHttp.Types.IP, string, 2606:4700:4700::1111 is not a valid FQDN
2023-02-23_07:18:39.15985             (fz_http 0.7.16) lib/fz_http/config/errors.ex:10: FzHttp.Config.Errors.raise_error!/1
2023-02-23_07:18:39.15987             (fz_http 0.7.16) lib/fz_http/application.ex:12: FzHttp.Application.start/2
2023-02-23_07:18:39.15987             (kernel 8.5) application_master.erl:293: :application_master.start_it_old/4

Platform (please complete the following information):

Firezone Version 0.7.16
OS: Linux
Distro: Ubuntu 22.04
Kernel version: 5.15
Deployment method: Omnibus

Additional context
N/A

Thanks for the report @gbe0 -- we made some major improvements and updates to configuration system in 0.7.16, looks like we need to add a test for this case. Will have a fix out shortly.

@gbe0 I started to work on a fix but now I feel like the simplest way to fix this would be to remove spaces after the comma:
default['firezone']['wireguard']['dns'] = '<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,2606:4700:4700::1111,2606:4700:4700::1001,2001:4860:4860::8888,2001:4860:4860::8844'

If we trim the whitespace in configs we can also run into another issue where we might trim something the user wants to keep, I'm not sure if we want to do that @jamilbk.


Style/EmptyLiteral erroneously thinks Hash.new([]) is equal to {}

Expected behavior
I would have expected RuboCop not to consider Hash.new([]) as an empty literal, as it is an empty hash with a default value ([]), whereas {} has no default value
Actual behavior
Rubocop detects a problem and suggests a fix which breaks the code (because the default value is missing:
Offenses:

foo.rb:42:16: C: [Correctable] Style/EmptyLiteral: Use hash literal {} instead of Hash.new([]).
      result = Hash.new([])

Steps to reproduce the problem
Add Hash.new([]) somewhere in code which is checked by Rubocop
RuboCop version
$ bundle exec rubocop -V
1.66.0 (using Parser <IP_ADDRESS>, rubocop-ast 1.32.1, running on ruby 3.2.0) [aarch64-linux]
  - rubocop-factory_bot 2.26.1
  - rubocop-graphql 1.5.4
  - rubocop-minitest 0.36.0
  - rubocop-performance 1.21.1
  - rubocop-rails 2.26.0
  - rubocop-rake 0.6.0

This issue was resolved in #13178 and the release is expected to happen soon. Thank you for the feedback.

I'm just waiting a bit to see if other serious issues won't be reported today.

Thanks for the quick response! And the sidenote in the PR also seems applicable in my case 😅

Yeah, it's a massive footgun, there is for this https://github.com/rubocop/rubocop/issues/11013. A notice from ruby itself was rejected (see linked bugtracker) but it may still make sense for RuboCopop itself.


Pager - Different url for first page

I'm using the model pager to create pagination and I noticed the following limitation
I have the first page as
{domain}/{some-page}
Now I use pagination as
{domain}/{some-page}/page/{page-num}
The issue that in pager i get the first page as
{domain}/{some-page}/page/1
But i need pagination not to have /page/1 on the first page but instead link to {domain}/{some-page}
In order to have /page/ in pager i use the following
$modelModel->pager->setPath(rtrim($route_to(static::class), '/') . '/page/');

What do you thing about adding the property string|string[] $prePaginationSegments to the pager class. So in my case I'll be setting this as 'page' instead of setting the complete path

Please send in a PR if you want this functionality.


Update COMMUNITY.md

add poem_admin

PR Info

Closes

Dependencies:

Dependents:

Adds

[ ]

Fixes

[ ]

Breaking Changes

[ ]

Changes

[ ]

Oh that's cool

Is it a ERP of some sort?

I would slightly change the tagline to "An admin panel"


Feature: Add item order to Repeater itemLabel

Useful for creating countable labels with functions on Repeater itemLabel() - Code and Docs updated
Repeater::make('Items')
    ->schema([
        Forms\Components\TextInput::make('copies')
            ->required()
            ->label('Quantity')
    ])
    ->itemLabel(fn(array $state, int $order): ?string => 'Package ' . $order ?? null),

Simple code change to Repeater.php that enables countable labels
Modified the docs (but didn't generated the screenshot)
No tests created, but no problems with my project

[ No ] Changes have been thoroughly tested to not break existing functionality.
[X] New functionality has been documented or existing documentation has been updated to reflect changes.
[X] Visual changes are explained in the PR description using a screenshot/recording of before and after.

Similar API already exists for Builder, so I think we should make the two match: https://filamentphp.com/docs/3.x/forms/fields/builder#numbering-builder-items.


Fix gsd mode pinned room not on the top

Details

Fixed Issues

$  https://github.com/Expensify/App/issues/6563
Tests

On LHN there must be two or more pinned reports
On LHN there must be one or more unpinned unread reports or have outstanding IOU
The unread reports name should be between or before the pinned reports ordered alphabetically
Change LHN  mode to focus mode
The pinned reports must be on top, alphabetically ordered
The unpinned reports that have unread  or outstanding IOU must be bellow pinned reports ordered alphabetically

QA Steps

On LHN there should be two or more pinned reports
On LHN there must be one or more unpinned unread reports or have outstanding IOU
The unread report names should be between or before the pinned reports ordered alphabetically
Change LHN  mode to focus mode
The pinned reports must be on top, ordered alphabetically
The unpinned reports that have unread  or outstanding IOU must be bellow pinned reports ordered alphabetically

Tested On

[v] Web
[v] Mobile Web
[ ] Desktop
[ ] iOS
[v] Android

Screenshots

Before

After
Web

Mobile Web

Desktop

iOS

Android

recheck

I have read the CLA Document and I hereby sign the CLA

recheck

recheck

Also, it's strange but I can't see who signed the commits. Could you please resign your commits so that we can see your name with the GPG key?

Also, it's strange but I can't see who signed the commits. Could you please resign your commits so that we can see your name with the GPG key?

I have  signed the last commit.

@K4tsuki You would need to sign all the commits. Thanks.

@K4tsuki You would need to sign all the commits and also please purge the last four unnecessary commits. You would need to rebase them. Thanks.

Done

@Luke9389 is back on Monday and will review then, apologies for the delay @K4tsuki

@Luke9389 is back on Monday and will review then, apologies for the delay @K4tsuki

No problem @mallenexpensify .

@Luke9389 All cheks have passed.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by @Luke9389 in version: 1.1.27-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by @Luke9389 in version: 1.1.27-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by @Luke9389 in version: 1.1.27-3 🚀

platform
result

🤖 android 🤖
skipped 🚫

🖥 desktop 🖥
skipped 🚫

🍎 iOS 🍎
skipped 🚫

🕸 web 🕸
skipped 🚫

🚀 Deployed to production by @Jag96 in version: 1.1.29-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@parasharrajat How about sorting issue here?
Currently the sorting is case sensitive. Should we make it case insensitive?
Should we make another pull request?

@parasharrajat can you reply to @K4tsuki above?
https://github.com/Expensify/App/pull/6849#issuecomment-1013533401

Aha, that's a good point. But this is a question for slack. @K4tsuki

slack: https://app.slack.com/client/T03SC9DTT/C01GTK53T8Q/thread/C01GTK53T8Q-1642834751.312800


Fix imports in drawRaster

Also fixed on dev branch at https://github.com/FZJ-IEK3-VSA/geokit/commit/8cc71ea99fb279139541f2ddce03f56a5bdf9b74.

Can be closed now, can't it?


sample is very slow on a big csv

I'm sure this is expected, but I'm trying to sample a few thousand rows from a 10gb CSV and it takes minutes to complete. Is there a better way I should be doing this?
Thanks for the awesome tool.

Did you try to index the database? For me it always greatly increases speed of almost every command.

This isn't actionable. Please provide a reproducible example. You could at least list the specs of your hardware and the times of running other commands.

Mid 2014 macbook pro 15" running 10.13.4
2.5GHz core i7
16gb RAM
xsv search -s cliff_value "[0]" noncliffs.csv takes 3 mins 4 seconds
xsv sample 129758 noncliffs.csv takes 3 mins 13 seconds

OK, so this has nothing to do with xsv sample.
@lisbakke You're not making this easy to debug. There's no reproducible example. I can't debug performance problems if you aren't willing to put in the work to provide as much data as possible. For example, it's conceivable that xsv is actually hitting disk on a file that big, but you don't actually bother to tell me what your storage hardware is. You should also be comparing xsv with other tools to get a decent baseline. e.g., How fast is ggrep '[0]' noncliffs.csv?

Hello, I know this issue has been closed, but just in case anyone is wondering, I have a real-world benchmark involving getting a 10% sample from a 6.5M row database.
tl;dr: the average time, over 25 iterations, was 6.8 seconds. Which, for my amateur purposes, is good enough :)
My machine and OS: MacBook Pro (Retina, 15-inch, Late 2013) with 2.3GHz Intel Core I7 and 16GB RAM.
OS: Mac OS 10.13.5 High Sierra
SSD: I wrote to and read the data from an external USB3 SSD: The Samsung T3 500GB.

Details
The data comes from the city of Chicago's database of crime records, from 2001 to 2017.
The dataset's dimensions are 21 columns by 6.5 million rows for a total of 1.33 GB.
Bash commands to download and save the raw data, and then perform 25 iterations of xsv sample to produce a 10% (650,000 row) sample:
#### Download to working directory
curl -o crimes.csv \
     'https://data.cityofchicago.org/api/views/sgiv-a9r2/rows.csv?accessType=DOWNLOAD'

#### Run 25 times
time for i in {1..25}; do
     xsv sample 650000 crimes.csv > /dev/null
done

Benchmark result over 25 times
The result output from time:
real    2m50.565s
user    2m10.141s
sys     0m40.210s

(2 * 60 + 50) / 25 gets us: 6.8 seconds

@dannguyen Thanks for reporting that! That time feels reasonableish to me. The times could go up dramatically if xsv is hitting spinning disk.


Cannot make can0 work

Hi,
I've installed a transceiver on the can0 of the feather m4 can express, and I cannot make it work. No data is being received there. I've tried with a CJMCU-1051 TJA1051 and a SN65HVD230 transceiver (The first one is new, so don't know if it was working, the second one was tested and working perfectly). I've wired the cantx with the cantx and the canrx with the canrx so it should work perfectly.
Everything works well on can1 (Onboard can). Have you encountered this problem? Can this be due to the transceivers used?
Thanks a lot!

Hi,
How do you power the transceivers ?
Be carefully, there are several different components called TJA1051, you should use an TJA1051T/3 that has a Vio pin. So Vio (pin #5) -> 3.3V, Vcc (pin #3) -> 5V, S (Silent mode, pin #8) -> GND.
For the SN65HVD230, Vcc (pin #3) -> 3.3V, RS (pin #8) -> GND.
Best Regards,
Pierre

Le 10 juin 2022 à 20:51, amarce @.***> a écrit :
Hi,
I've installed a transceiver on the can0 of the feather m4 can express, and I cannot make it work. No data is being received there. I've tried with a CJMCU-1051 TJA1051 and a SN65HVD230 transceiver (The first one is new, so don't know if it was working, the second one was tested and working perfectly). I've wired the cantx with the cantx and the canrx with the canrx so it should work perfectly.
Everything works well on can1 (Onboard can). Have you encountered this problem? Can this be due to the transceivers used?
Thanks a lot!
—
Reply to this email directly, view it on GitHub https://github.com/pierremolinaro/acanfd-feather-m4-can/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEWKZVHLQDDEB7A6DI6ATEDVOOFBXANCNFSM5YORQFBQ.
You are receiving this because you are subscribed to this thread.

Hi,
Thanks for you reply; the TJA1051 board works from 3 to 5V amd the SN65HVD230 board works with 3.3v right (I've tested in on an arduino DUE). I think that my problem is that I was making the led flicker with:
void LedLoop() {   if (ledActive==0){     if ((ledMillis==0) || ( millis() >= ledMillis + ledFlickTime )) {       //Turn on red led       digitalWrite(13, HIGH);       ledMillis = millis();       ledActive=1;     }   } else {      if ((ledMillis==0) || ( millis() >= ledMillis + ledFlickTime )) {       //Turn off red led       digitalWrite(13, LOW);       ledMillis = millis();       ledActive=0;     }   } }
So I was sending power to the rx pin of the transceiver, and for sure this was making it not working. I'll try tomorrow with the flickering disabled, but I'm pretty confident that the problem is here (I've seen it reading the PDF on the extras folder when you say that the same PIN is used on the onboard led and I did not notice).
Again, thanks a lot!

Hi,
I've been testing and it seems that something odd is happening on my board; if I press the processor down the red led illuminates, so it makes me thing that something is being shorted on the circuit.
I've ordered a new feather M4 to test it outside of any circuit, but it really looks like a hardware error. I'm clossing the issue because it does not seem software related.
Thanks a lot!


Changes to auto mode in EarlyStopping callback

In current implementation of EarlyStopping callback, If the argument mode is not mentioned in either min or max it fall backs to auto mode. In auto mode if the monitored metric name not ends with 'acc' or 'accuracy' ot 'auc' then the mode will fall back to mode= 'min' which is problematic. For example if the monitored metric is 'TruePositive' or 'FalsePositive' for both cases it will monitor whether the metric is decreasing or not by minimum change configured in callback.This makes callback not useful at all for this cases.
Similarly there are metrics in TF-ranking, which by default fall to min mode if user left the mode to auto.
Relevant issues from TF-Forum and SO.
IMO, its better to leave the metrics mode to be defined by user. Otherwise we need to list all the metrics that should have higher value(like accuracy) and lower values(like loss) to efficiently use this auto mode. This may be problematic for custom metrics.
Maybe we can leave a warning/exception to the user if metrics other than 'acc' or 'accuracy' ot 'auc' or used as monitored metric something like below.

The tests are failing for the case of metric = unknown and mode = unknown.
https://github.com/keras-team/keras/blob/1f0a013b02bbafc8a016353a0e60ba94895fea07/keras/callbacks/early_stopping_test.py#L34
We remove this case because with the proposed changes of this PR this case will fail.

@fchollet ,
Suppose the metric is f1-score and user not mentioned mode and by default it fall backs to "auto" mode in which case f1-score metric will default to "min" mode. But we know f1-score should be higher for a better model but because of the "auto" mode the model will continue training since f1-score improves with each epoch and EarlyStopping callback will never called. Even if it is called for decreasing value of  f1-score that is still pretty bad as it will stop training for pretty bad results.
IMO, in this particular case the purpose of EarlyStopping not being served.Hence proposed for exception as implementation of auto mode to work properly is not simple.
If it is still not a good idea to raise exception we may amend the warning here if OK.
https://github.com/keras-team/keras/blob/4501d8b9bc1e6f4f10ac09fe89f61494330b98a2/keras/callbacks/early_stopping.py#L93-L95
like:
if mode not in ["auto", "min", "max"]:
            warnings.warn(
                f"EarlyStopping mode {mode} is unknown, fallback to auto mode.",
                "in `"auto"` mode, the direction is automatically inferred from "
                " the name of the monitored quantity:"
                " it will default to 'min' mode unless the monitored quantity is"
                "one of {"accuracy", "auc"}, in which case it uses 'max' mode." ,
                stacklevel=2,
            )
            mode = "auto"

or some warning like below:
if mode not in ["auto", "min", "max"]:
            warnings.warn(
                f"EarlyStopping mode {mode} is unknown, fallback to auto mode.",
                "`"auto"` mode may not be suitable for your metric, hence decide"
                " the mode whether `"min"` or  `"max"`  " ,
                stacklevel=2,
            )
            mode = "auto"

What's the full list of built-in metrics that should be in max mode?

Ok, I pushed an extensive fix. Check it out.


No file in results folder?

Running generates a folder for the selected noise type, but there is no output file in any folder.

Hi, would you provide more information (errors or warnings)? By the way, make sure the save_img option is True.


Add shutdown

Add shutdown method
Update to latest native agents 6.11.0 and 7.4.4

Codecov Report

Merging #99 (314a3c9) into develop (1cd1c4e) will increase coverage by 0.13%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           develop      #99      +/-   ##
===========================================
+ Coverage    91.06%   91.19%   +0.13%
===========================================
  Files           11       11
  Lines          403      409       +6
  Branches        78       79       +1
===========================================
+ Hits           367      373       +6
  Misses          31       31
  Partials         5        5

Impacted Files
Coverage Δ

index.js
85.32% <100.00%> (+0.16%)
:arrow_up:

new-relic/nrma-modular-agent-wrapper.js
94.07% <100.00%> (+0.18%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more