OSError: [Errno 9] Bad file descriptor raised on program exit

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): v2.5.0-rc3-213-ga4dfb8d1a71 2.5.0
Python version: Python 3.8.5
CUDA/cuDNN version: 11.2 / <IP_ADDRESS>-1
GPU model and memory: P100

Describe the current behavior
When using MirroredStrategy as a context manager, Python raises an ignored exception on program exit:
Exception ignored in: <function Pool.__del__ at 0x7f21f942e4c0>
Traceback (most recent call last):
  File "/root/miniconda3/lib/python3.8/multiprocessing/pool.py", line 268, in __del__
    self._change_notifier.put(None)
  File "/root/miniconda3/lib/python3.8/multiprocessing/queues.py", line 368, in put
    self._writer.send_bytes(obj)
  File "/root/miniconda3/lib/python3.8/multiprocessing/connection.py", line 200, in send_bytes
    self._send_bytes(m[offset:offset + size])
  File "/root/miniconda3/lib/python3.8/multiprocessing/connection.py", line 411, in _send_bytes
    self._send(header + buf)
  File "/root/miniconda3/lib/python3.8/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
OSError: [Errno 9] Bad file descriptor

Describe the expected behavior
Python exits without the aforementioned exception. (In my testing, there is no such exception raised on TensorFlow 2.4.0, so this seems new in TensorFlow 2.5.0.)
Contributing

Do you want to contribute a PR? (yes/no): No

Standalone code to reproduce the issue
import tensorflow

def f():
    strategy = tensorflow.distribute.MirroredStrategy()
    with strategy.scope():
        tensorflow.keras.layers.Conv2D(64, (3, 3), activation="relu", padding="same")(
            tensorflow.keras.layers.Input(shape=(88, 88, 3))
        )

f()

Removing the strategy.scope() causes the program to exit without the ignored exception, as does removing the function definition (i.e., getting rid of def f() and f(), and invoking at the top level).

can confirm this in tf2.5.0 from pypi

@crm416 ,
Can you please try to execute the code in tf v2.5 and let us know if you are facing same issue? Thanks!

@tilakrayal - Yes, this only occurs for me in tf v2.5 (and not in tf v2.3 or tf v2.4).

I see a similar error when running the recommendation model from the models repo on TF2.5.0 and later on python3.8
https://github.com/tensorflow/models/tree/v2.5.1/official/recommendation
I0830 13:25:38.313945<PHONE_NUMBER>25024 ncf_keras_main.py:555] Result is {'loss': 0.3801446557044983, 'eval_loss': 0.0, 'eval_hit_rate': 0.09089403396520465, 'step_timestamp_log': ['BatchTimestamp<batch_index: 0, timestamp:<PHONE_NUMBER>.780229>', 'BatchTimestamp<batch_index: 100, timestamp:<PHONE_NUMBER>.5320396>'], 'train_finish_time':<PHONE_NUMBER>.9485285, 'avg_exp_per_second': 2638725.9874249455}
Exception ignored in: <function Pool.__del__ at 0x7fffa3c7cf70>
Traceback (most recent call last):
  File "/tmp/furmanek/miniconda3/envs/opence-conda-env-py3.8-cuda-openmpi-11.2/lib/python3.8/multiprocessing/pool.py", line 268, in __del__
    self._change_notifier.put(None)
  File "/tmp/furmanek/miniconda3/envs/opence-conda-env-py3.8-cuda-openmpi-11.2/lib/python3.8/multiprocessing/queues.py", line 368, in put
    self._writer.send_bytes(obj)
  File "/tmp/furmanek/miniconda3/envs/opence-conda-env-py3.8-cuda-openmpi-11.2/lib/python3.8/multiprocessing/connection.py", line 200, in send_bytes
    self._send_bytes(m[offset:offset + size])
  File "/tmp/furmanek/miniconda3/envs/opence-conda-env-py3.8-cuda-openmpi-11.2/lib/python3.8/multiprocessing/connection.py", line 411, in _send_bytes
    self._send(header + buf)
  File "/tmp/furmanek/miniconda3/envs/opence-conda-env-py3.8-cuda-openmpi-11.2/lib/python3.8/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
OSError: [Errno 9] Bad file descriptor

The other interesting thing is this only happens (for me at least) on py38 and py39. It runs just fine on py37, so maybe this is a python bug. Perhaps this one?
https://bugs.python.org/issue39995

I tried changing the MirroredStrategy to OneDeviceStrategy and the exception went away. So, not sure if it is an issue caused by both combination of python and TF problems.

I found that running gc.collect() before program exit fixed this for me.

I think this happens because MirroredStrategy creates a multiprocessing ThreadPool, but doesn't close it before your program ends, so its resources aren't properly cleaned up and it errors on shutdown.
You can explicitly close the pool on exit using:
import atexit

....

strategy = tf.distribute.MirroredStrategy()

atexit.register(strategy._extended._collective_ops._pool.close) # type: ignore

Which should prevent the error for now (until there is a fix).

This happens in TF 2. 7 too with python 3.9
I think it's because MirroredStrategy creates a multiprocessing ThreadPool, but doesn't close it before the program ends, so its resources aren't properly cleaned up and it errors on shutdown.
You can explicitly close the pool on exit using:
import atexit

....

strategy = tf.distribute.MirroredStrategy()

atexit.register(strategy._extended._collective_ops._pool.close) # type: ignore

Which should prevent the error for now (until there is a fix).

This happens in TF 2. 7 too with python 3.9
I think it's because MirroredStrategy creates a multiprocessing ThreadPool, but doesn't close it before the program ends, so its resources aren't properly cleaned up and it errors on shutdown.
You can explicitly close the pool on exit using:
import atexit

....

strategy = tf.distribute.MirroredStrategy()

atexit.register(strategy._extended._collective_ops._pool.close) # type: ignore

Which should prevent the error for now (until there is a fix).

This works for me, thank you!

For me in TF 2.5.0 the problem is hardware-dependant.
It is present with V100, but not with 2080 Ti.

This happens in TF 2. 7 too with python 3.9
I think it's because MirroredStrategy creates a multiprocessing ThreadPool, but doesn't close it before the program ends, so its resources aren't properly cleaned up and it errors on shutdown.
You can explicitly close the pool on exit using:
import atexit

....

strategy = tf.distribute.MirroredStrategy()

atexit.register(strategy._extended._collective_ops._pool.close) # type: ignore

Which should prevent the error for now (until there is a fix).

The same issue occurs with the MultiWorkerMirroredStrategy (when using it on one machine as recommended here), on Python 3.9.10 and tf 2.7
The fix is basically the same as this one, but you have to close two pools:
strategy = tf.distribute.MultiWorkerMirroredStrategy()

atexit.register(strategy._extended._cross_device_ops._pool.close) # type: ignore
atexit.register(strategy._extended._host_cross_device_ops._pool.close) #type: ignore

I use python3.8 and tf 2.8, this problem happens too. So I try to close pools, but it doesn't work.
my code:
    from tensorflow.python.distribute.cross_device_ops import AllReduceCrossDeviceOps
    ......
    dist_strategy = tf.distribute.MirroredStrategy(
            devices=["GPU:" + str(x) for x in range(FLAGS.n_gpus)],
            cross_device_ops=AllReduceCrossDeviceOps('nccl', num_packs=FLAGS.n_gpus))

if I use atexit.register(dist_strategy._extended._collective_ops._pool.close) ,it doesn't work;
if I use atexit.register(dist_strategy._extended._cross_device_ops._pool.close), it raises error:'AllReduceCrossDeviceOps' object has no attribute '_pool'
what else can I do...

I can report this happens with tensorflow 2.7.0 / python 3.8 on power pc.
The solution of @tekumara worked for me as well!

Same issue in tf v2.6. OSError on program exit if strategy.scope() is called within a function.
The following code causes OSError on exit.
import tensorflow as tf

def main():
  strategy = tf.distribute.MirroredStrategy()
  print(f'\nNumber of devices: {strategy.num_replicas_in_sync}\n')
  with strategy.scope():
    model = tf.keras.Sequential([tf.keras.layers.Dense(10)])
    model.compile(
      loss=tf.keras.losses.MSE,
      optimizer=tf.keras.optimizers.Adam(),
      metrics=['accuracy']
    )

  print('\nDONE\n')

if __name__ == '__main__':
  main()

with the following output:
2021-08-27 12:00:25.516889: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 AVX512F FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021-08-27 12:00:32.832857: W tensorflow/core/common_runtime/gpu/gpu_bfc_allocator.cc:39] Overriding allow_growth setting because the TF_FORCE_GPU_ALLOW_GROWTH environment variable is set. Original config value was 0.
2021-08-27 12:00:32.832944: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 9659 MB memory:  -> device: 0, name: GeForce RTX 2080 Ti, pci bus id: 0000:1c:00.0, compute capability: 7.5
2021-08-27 12:00:32.834864: W tensorflow/core/common_runtime/gpu/gpu_bfc_allocator.cc:39] Overriding allow_growth setting because the TF_FORCE_GPU_ALLOW_GROWTH environment variable is set. Original config value was 0.
2021-08-27 12:00:32.834898: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /job:localhost/replica:0/task:0/device:GPU:1 with 9659 MB memory:  -> device: 1, name: GeForce RTX 2080 Ti, pci bus id: 0000:1d:00.0, compute capability: 7.5

Number of devices: 2

DONE

Exception ignored in: <function Pool.__del__ at 0x7fbecd304040>
Traceback (most recent call last):
  File "/miniconda3/envs/test/lib/python3.8/multiprocessing/pool.py", line 268, in __del__
    self._change_notifier.put(None)
  File "/miniconda3/envs/test/lib/python3.8/multiprocessing/queues.py", line 368, in put
    self._writer.send_bytes(obj)
  File "/miniconda3/envs/test/lib/python3.8/multiprocessing/connection.py", line 200, in send_bytes
    self._send_bytes(m[offset:offset + size])
  File "/miniconda3/envs/test/lib/python3.8/multiprocessing/connection.py", line 411, in _send_bytes
    self._send(header + buf)
  File "/miniconda3/envs/test/lib/python3.8/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
OSError: [Errno 9] Bad file descriptor

Whereas the one below is fine
import tensorflow as tf

strategy = tf.distribute.MirroredStrategy()
print(f'\nNumber of devices: {strategy.num_replicas_in_sync}\n')
with strategy.scope():
  model = tf.keras.Sequential([tf.keras.layers.Dense(10)])
  model.compile(
    loss=tf.keras.losses.MSE,
    optimizer=tf.keras.optimizers.Adam(),
    metrics=['accuracy']
  )

print('\nDONE\n')

Also tested the same code snippet with tf v2.4 and it ran fine in both cases.

Thank you, it worked

Confirmed getting the same with tf 2.9.1 with keras tuner where its included in the tuner model:
self.tuner = kt.tuners.Hyperband(                 ...                 distribution_strategy=tf.distribute.MirroredStrategy(),                 ...                 )

I tried changing the MirroredStrategy to OneDeviceStrategy and the exception went away. So, not sure if it is an issue caused by both combination of python and TF problems.

Hi, @npanpaliya can you share where did you modified to change MirroredStrategy to OneDeviceStrategy . Thnaks .

In my case, I'd to specify --distribution_strategy=one_device here in my tests https://github.com/open-ce/tensorflow-feedstock/blob/main/tests/open-ce-tests.yaml#L22

In my case, I'd to specify --distribution_strategy=one_device here in my tests https://github.com/open-ce/tensorflow-feedstock/blob/main/tests/open-ce-tests.yaml#L22

@npanpaliya  I'm using tensorflow model -garden, and tired your way to add strategy but tat parameter is not allowed in my case.

This happens in TF 2. 7 too with python 3.9
I think it's because MirroredStrategy creates a multiprocessing ThreadPool, but doesn't close it before the program ends, so its resources aren't properly cleaned up and it errors on shutdown.
You can explicitly close the pool on exit using:
import atexit

....

strategy = tf.distribute.MirroredStrategy()

atexit.register(strategy._extended._collective_ops._pool.close) # type: ignore

Which should prevent the error for now (until there is a fix).

@tekumara  could you please tell me in which Script should I add these code? I tried in the pool.py  file but not work.

Which scripts of tensorflow/models are you trying?

I'm training Bert using the run_pretraining.py
https://github.com/suchunxie/models/blob/master/official/nlp/bert/run_pretraining.py
here,
and got the error of Bad descriptor.
Then I  referenced the post of yours, changed the
python3.8/multiprocessing/pool.py file where shows the error.(see the
picture below)
[image: error.png]
(My environment is Ubuntu+docker+nvidia-tensorflow container. )
Nishidha @.***> 于2022年7月6日周三 23:12写道：

Which scripts of tensorflow/models are you trying?
—
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/50487#issuecomment-1176272998,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUJTPENGSHORVXROMKPD7HLVSWH33ANCNFSM47OEWZ3A
.
You are receiving this because you commented.Message ID:
@.***>

@suchunxie - You can specify strategy here https://github.com/suchunxie/models/blob/master/official/nlp/bert/run_pretraining.py#L207. "one_device" is supported https://github.com/suchunxie/models/blob/65e571fdc903873362e59abe0aeec5c8018da750/official/common/distribute_utils.py#L158.

Hi, @npanpaliya  It workes! I tried this way before but not worked, and after you pointed to me I checked it again, found there's a back slash lost before I pass --distribution_strategy.
Thanks greatly for your help !

Hi @suchunxie, This is great! Glad to hear this! :)

It seems that a fix is submitted https://github.com/tensorflow/tensorflow/issues/56279#issuecomment-1151621844 and users need to wait for tf 2.10 release.

It seems that a fix is submitted #56279 (comment) and users need to wait for tf 2.10 release.

I followed the code to change the cross_device_ops.py file under sitepackage but it doesn't seem to work for MultiWorkerMirroredStrategy

Hi @charliermarsh, Looks like issue is resolved with stable version Tensorflow 2.9
>>> import tensorflow
>>> def f():
...    strategy = tensorflow.distribute.MirroredStrategy()
...    with strategy.scope():
...       tensorflow.keras.layers.Conv2D(64, (3, 3), activation="relu", padding="same")(
...             tensorflow.keras.layers.Input(shape=(88, 88, 3))
...         )
...
>>> f()
2022-07-29 10:47:18.249928: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:18.250980: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:18.377905: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:18.378958: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:18.379854: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:18.380701: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:18.384793: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2022-07-29 10:47:18.841990: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:18.842974: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:18.843762: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:18.844505: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:18.845247: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:18.846005: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:20.846699: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:20.847686: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:20.848526: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:20.849336: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:20.850099: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:20.850823: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1532] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 13725 MB memory:  -> device: 0, name: Tesla T4, pci bus id: 0000:00:04.0, compute capability: 7.5
2022-07-29 10:47:20.854556: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:975] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-07-29 10:47:20.855362: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1532] Created device /job:localhost/replica:0/task:0/device:GPU:1 with 13791 MB memory:  -> device: 1, name: Tesla T4, pci bus id: 0000:00:05.0, compute capability: 7.5
INFO:tensorflow:Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0', '/job:localhost/replica:0/task:0/device:GPU:1')

Not for me. Using TensorFlow 2.9.1 when exiting the interpreter, it shows the exception:
In [1]: import tensorflow
   ...: def f():
   ...:    strategy = tensorflow.distribute.MirroredStrategy()
   ...:    with strategy.scope():
   ...:       tensorflow.keras.layers.Conv2D(64, (3, 3), activation="relu", padding="same")(
   ...:             tensorflow.keras.layers.Input(shape=(88, 88, 3))
   ...:         )
   ...: f()
2022-07-29 12:54:45.169943: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 AVX512F FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2022-07-29 12:54:47.305006: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1532] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 429 MB memory:  -> device: 0, name: NVIDIA GeForce RTX 2080 Ti, pci bus id: 0000:17:00.0, compute capability: 7.5
2022-07-29 12:54:47.305948: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1532] Created device /job:localhost/replica:0/task:0/device:GPU:1 with 9651 MB memory:  -> device: 1, name: NVIDIA GeForce RTX 2080 Ti, pci bus id: 0000:18:00.0, compute capability: 7.5
2022-07-29 12:54:47.306459: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1532] Created device /job:localhost/replica:0/task:0/device:GPU:2 with 427 MB memory:  -> device: 2, name: NVIDIA GeForce RTX 2080 Ti, pci bus id: 0000:65:00.0, compute capability: 7.5
2022-07-29 12:54:47.306939: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1532] Created device /job:localhost/replica:0/task:0/device:GPU:3 with 429 MB memory:  -> device: 3, name: NVIDIA GeForce RTX 2080 Ti, pci bus id: 0000:b4:00.0, compute capability: 7.5
INFO:tensorflow:Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0', '/job:localhost/replica:0/task:0/device:GPU:1', '/job:localhost/replica:0/task:0/device:GPU:2', '/job:localhost/replica:0/task:0/device:GPU:3')

In [2]:
Do you really want to exit ([y]/n)?
Exception ignored in: <function Pool.__del__ at 0x7ff160d75c10>
Traceback (most recent call last):
  File "/home/user/miniconda3/lib/python3.8/multiprocessing/pool.py", line 268, in __del__
    self._change_notifier.put(None)
  File "/home/user/miniconda3/lib/python3.8/multiprocessing/queues.py", line 368, in put
    self._writer.send_bytes(obj)
  File "/home/user/miniconda3/lib/python3.8/multiprocessing/connection.py", line 200, in send_bytes
    self._send_bytes(m[offset:offset + size])
  File "/home/user/miniconda3/lib/python3.8/multiprocessing/connection.py", line 411, in _send_bytes
    self._send(header + buf)
  File "/home/user/miniconda3/lib/python3.8/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
OSError: [Errno 9] Bad file descriptor

Hi @ZJaume, Could you share the system configuration, I am not able to replicate the issue. Thank you!

Hi, sorry for the inconvenience but now I've tried with a fresh new virtual environment and the error just disappeared, so I think the issue can be closed. The virtual environment that is throwing the exception has had many different tensorflow versions from 2.3 to 2.9. Maybe some outdated dependency is causing the error.
In case you want to reproduce it my versions are:
Tensorflow version: 2.9.1
Python version: 2.8.13
OS: Ubuntu 18.04
And the output of pip freeze:
absl-py==1.1.0
aiohttp==3.8.1
aiosignal==1.2.0
antlr4-python3-runtime==4.8
astunparse==1.6.3
async-timeout==4.0.1
atomicwrites==1.4.0
attrs==21.2.0
backcall==0.2.0
bitarray==2.3.7
blessed==1.19.0
cachetools==4.2.4
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.7
clang==5.0
click==8.0.3
colorama==0.4.4
Cython==0.29.24
dataclasses==0.6
datasets==1.16.1
decorator==5.1.0
dill==0.3.4
enlighten==1.10.1
fairseq==0.10.2
fastspell==0.1.5
fasttext==0.9.2
filelock==3.3.2
flatbuffers==1.12
frozenlist==1.2.0
fsspec==2021.11.1
ftfy==6.1.1
fuzzywuzzy==0.18.0
gast==0.4.0
gensim==4.1.2
google-auth==1.35.0
google-auth-oauthlib==0.4.6
google-pasta==0.2.0
grpcio==1.41.1
h5py==3.1.0
hanzidentifier==1.0.2
huggingface-hub==0.1.0
hunspell==0.5.5
hydra-core==1.1.1
idna==3.3
importlib-resources==5.4.0
ipython==7.29.0
jedi==0.18.0
joblib==0.14.1
keras==2.9.0
Keras-Preprocessing==1.1.2
latexcodec==2.0.1
libclang==13.0.0
Markdown==3.3.4
matplotlib-inline==0.1.3
monocleaner==1.0
more-itertools==8.10.0
mtdata==0.3.1
multidict==5.2.0
multiprocess==<IP_ADDRESS>
nltk==3.6.5
numpy==1.23.0
oauthlib==3.1.1
omegaconf==2.1.1
opt-einsum==3.3.0
packaging==21.2
pandas==1.3.5
parso==0.8.2
pexpect==4.8.0
pickleshare==0.7.5
Pillow==8.4.0
pluggy==0.13.1
portalocker==2.3.0
prefixed==0.3.2
prompt-toolkit==3.0.22
protobuf==3.19.1
psutil==5.8.0
ptyprocess==0.7.0
py==1.10.0
pyarrow==6.0.1
pyasn1==0.4.8
pyasn1-modules==0.2.8
pybind11==2.8.1
pybtex==0.24.0
pycld2==0.31
pycparser==2.21
Pygments==2.10.0
pyparsing==2.4.7
pypinyin==0.46.0
pytest==5.1.2
python-dateutil==2.8.2
python-Levenshtein==0.12.2
pytz==2021.3
PyYAML==5.4.1
regex==2022.3.2
requests==2.26.0
requests-oauthlib==1.3.0
rsa==4.7.2
ruamel.yaml==0.17.17
ruamel.yaml.clib==0.2.6
sacrebleu==2.1.0
sacremoses==0.0.43
scikit-learn==0.22.1
scipy==1.4.1
sentence-transformers==2.1.0
sentencepiece==0.1.94
six==1.15.0
smart-open==5.2.1
tabulate==0.8.9
tensorboard==2.9.1
tensorboard-data-server==0.6.1
tensorboard-plugin-wit==1.8.0
tensorflow==2.9.1
tensorflow-estimator==2.9.0
tensorflow-io-gcs-filesystem==0.24.0
termcolor==1.1.0
tf-estimator-nightly==2.8.0.dev2021122109
threadpoolctl==3.0.0
tokenizers==0.12.1
toolwrapper==0.4.1
torch==1.10.1
torch-train==0.0.3
torchsummary==1.5.1
torchvision==0.11.2
tqdm==4.62.3
traitlets==5.1.1
transformers==4.20.1
typing-extensions==<IP_ADDRESS>
Unidecode==1.2.0
urllib3==1.26.7
wcwidth==0.2.5
Werkzeug==2.0.2
wrapt==1.12.1
xxhash==2.0.2
yarl==1.7.2
zhon==1.1.5
zipp==3.7.0

I can reproduce this in tensorflow 2.9.2 using
# Original code:
# https://www.tensorflow.org/tutorials/distribute/multi_worker_with_keras

import numpy as np
import tensorflow as tf

def mnist_dataset(batch_size):
    (x_train, y_train), _ = tf.keras.datasets.mnist.load_data()
    # The `x` arrays are in uint8 and have values in the [0, 255] range.
    # You need to convert them to float32 with values in the [0, 1] range.
    x_train = x_train / np.float32(255)
    y_train = y_train.astype(np.int64)
    train_dataset = (
        tf.data.Dataset.from_tensor_slices((x_train, y_train))
        .shuffle(60000)
        .repeat()
        .batch(batch_size)
    )
    return train_dataset

def build_and_compile_cnn_model(config):
    learning_rate = config.get("lr", 0.001)
    model = tf.keras.Sequential(
        [
            tf.keras.Input(shape=(28, 28)),
            tf.keras.layers.Reshape(target_shape=(28, 28, 1)),
            tf.keras.layers.Conv2D(32, 3, activation="relu"),
            tf.keras.layers.Flatten(),
            tf.keras.layers.Dense(128, activation="relu"),
            tf.keras.layers.Dense(10),
        ]
    )
    model.compile(
        loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
        optimizer=tf.keras.optimizers.SGD(learning_rate=learning_rate),
        metrics=["accuracy"],
    )
    return model

def train_func(config):
    per_worker_batch_size = config.get("batch_size", 64)
    epochs = config.get("epochs", 3)
    steps_per_epoch = config.get("steps_per_epoch", 70)

    num_workers = 2

    strategy = tf.distribute.MultiWorkerMirroredStrategy()

    global_batch_size = per_worker_batch_size * num_workers
    multi_worker_dataset = mnist_dataset(global_batch_size)

    with strategy.scope():
        # Model building/compiling need to be within `strategy.scope()`.
        multi_worker_model = build_and_compile_cnn_model(config)

    history = multi_worker_model.fit(
        multi_worker_dataset,
        epochs=epochs,
        steps_per_epoch=steps_per_epoch,
        callbacks=[],
    )
    results = history.history
    return results

if __name__ == "__main__":
    results = train_func({"lr": 1e-3, "batch_size": 64, "epochs": 4})
    print(f"Results: {results.metrics}")

Traceback (most recent call last):
File "/home/sidney/py3102/lib/python3.10/multiprocessing/pool.py", line 268, in del
self._change_notifier.put(None)
File "/home/sidney/py3102/lib/python3.10/multiprocessing/queues.py", line 378, in put
self._writer.send_bytes(obj)
File "/home/sidney/py3102/lib/python3.10/multiprocessing/connection.py", line 205, in send_bytes
self._send_bytes(m[offset:offset + size])
File "/home/sidney/py3102/lib/python3.10/multiprocessing/connection.py", line 416, in _send_bytes
self._send(header + buf)
File "/home/sidney/py3102/lib/python3.10/multiprocessing/connection.py", line 373, in _send
n = write(self._handle, buf)
OSError: [Errno 9] Bad file descriptor
Same issue in py3.10+tf2.8+tfgnn0.4


Refactored project as installable package

Re: #6
Summary of changes:

Added setup.py file to enable setuptools install
Moved partition_spline.npz to resources submodule, and modified code to use pkg_resources to access it.
Moved resources loaded by tests to tests/resources/
Added a utility method _get_device to adaptive_test.py to handle selection of torch device (I was getting errors trying to run the tests without the number on the end of 'cuda:{num}').

Notes:

I couldn't figure out the nosetest way to skip the CUDA tests if no GPU is available. Is this possible?
Perhaps we should include some more detailed examples in the README?

Cheers,
Karl

Very nice work! Thanks for doing this. I also couldn't figure out how to skip CUDA tests, and just got used to the idea of them failing when there's no GPU available, which isn't perfect but doesn't seem too bad.
I agree that more detailed examples are needed. I can make a "hello world" regression demo script, though I've never written a pytorch optimization loop so it may be a bit weird. That should resolve some of the confusion in the other thread about how to include parameters.


Fix lint

@facebook-github-bot shipit

cc @gaearon just fyi, we don't have the prefer-const lint rule enabled in www but we do in open source projects.

Yes you can but let's talk about internal infra internally :P


SMS phone number placeholder says 'email'

+1
getting this as well. Also, mine won't send sms - I get the error 'There was an error sending the SMS code'?

This was fixed in the latest version of Lock for iOS. Running a pod update will update it.

+1
have the same issue


Unable to run successfully cypress-axe

Having trouble running tests and get the following error:
cypress_runner.js:157775 TypeError: Cannot read property 'run' of undefined
    at Context.<anonymous> (https://qa1.domain.com/__cypress/tests?p=cypress\support\index.js-350:18962:22)
From previous event:
    at Context.thenFn (https://qa1.domain.com/__cypress/runner/cypress_runner.js:71909:23)
    at Context.then (https://qa1.domain.com/__cypress/runner/cypress_runner.js:72229:21)
    at Context.<anonymous> (https://qa1.domain.com/__cypress/runner/cypress_runner.js:80256:21)
    at https://qa1.domain.com/__cypress/runner/cypress_runner.js:79783:33
From previous event:
    at runCommand (https://qa1.domain.com/__cypress/runner/cypress_runner.js:79765:14)
    at next (https://qa1.domain.com/__cypress/runner/cypress_runner.js:79900:14)
From previous event:
    at next (https://qa1.domain.com/__cypress/runner/cypress_runner.js:79900:34)
From previous event:
    at https://qa1.domain.com/__cypress/runner/cypress_runner.js:79937:37
From previous event:
    at run (https://qa1.domain.com/__cypress/runner/cypress_runner.js:79929:15)
    at Object.cy.<computed> [as percySnapshot] (https://qa1.domain.com/__cypress/runner/cypress_runner.js:80290:11)
    at Context.runnable.fn (https://qa1.domain.com/__cypress/runner/cypress_runner.js:80477:20)
    at callFn (https://qa1.domain.com/__cypress/runner/cypress_runner.js:30713:21)
    at Test.../driver/node_modules/mocha/lib/runnable.js.Runnable.run (https://qa1.domain.com/__cypress/runner/cypress_runner.js:30706:7)
    at https://qa1.domain.com/__cypress/runner/cypress_runner.js:84151:28
From previous event:
    at Object.onRunnableRun (https://qa1.domain.com/__cypress/runner/cypress_runner.js:84140:17)
    at $Cypress.action (https://qa1.domain.com/__cypress/runner/cypress_runner.js:78413:30)
    at Test.Runnable.run (https://qa1.domain.com/__cypress/runner/cypress_runner.js:82943:20)
    at Runner.../driver/node_modules/mocha/lib/runner.js.Runner.runTest (https://qa1.domain.com/__cypress/runner/cypress_runner.js:31180:10)
    at https://qa1.domain.com/__cypress/runner/cypress_runner.js:31286:12
    at next (https://qa1.domain.com/__cypress/runner/cypress_runner.js:31100:14)
    at https://qa1.domain.com/__cypress/runner/cypress_runner.js:31110:7
    at next (https://qa1.domain.com/__cypress/runner/cypress_runner.js:31042:14)
    at https://qa1.domain.com/__cypress/runner/cypress_runner.js:31073:7
    at next (https://qa1.domain.com/__cypress/runner/cypress_runner.js:84079:16)
    at https://qa1.domain.com/__cypress/runner/cypress_runner.js:84097:11
From previous event:
    at onNext (https://qa1.domain.com/__cypress/runner/cypress_runner.js:84094:57)
    at done (https://qa1.domain.com/__cypress/runner/cypress_runner.js:30674:5)
    at https://qa1.domain.com/__cypress/runner/cypress_runner.js:30718:11
From previous event:
    at callFn (https://qa1.domain.com/__cypress/runner/cypress_runner.js:30717:10)
    at Hook.../driver/node_modules/mocha/lib/runnable.js.Runnable.run (https://qa1.domain.com/__cypress/runner/cypress_runner.js:30706:7)
    at https://qa1.domain.com/__cypress/runner/cypress_runner.js:84151:28
From previous event:
    at Object.onRunnableRun (https://qa1.domain.com/__cypress/runner/cypress_runner.js:84140:17)
    at $Cypress.action (https://qa1.domain.com/__cypress/runner/cypress_runner.js:78413:30)
    at Hook.Runnable.run (https://qa1.domain.com/__cypress/runner/cypress_runner.js:82943:20)
    at next (https://qa1.domain.com/__cypress/runner/cypress_runner.js:31056:10)
    at https://qa1.domain.com/__cypress/runner/cypress_runner.js:31078:5
    at timeslice (https://qa1.domain.com/__cypress/runner/cypress_runner.js:26146:27)

My package:
{
	"devDependencies": {
		"@cypress/code-coverage": "^1.8.0",
		"@percy/cypress": "^2.0.0",
		"axe-core": "^3.3.1",
		"concurrently": "^4.1.1",
		"cypress": "^3.4.1",
		"cypress-axe": "^0.5.1",
		"fs-extra": "^8.1.0",
		"istanbul-lib-coverage": "^2.0.5",
		"mocha": "^5.2.0",
		"mocha-multi-reporters": "^1.1.7",
		"mochawesome": "^4.1.0",
		"mochawesome-merge": "^2.0.1",
		"mochawesome-report-generator": "^4.0.1",
		"nyc": "^14.1.1"
	},
	"dependencies": {
		"ls": "^0.2.1",
		"rimraf": "^2.6.3",
		"yargs": "^13.3.0"
	}
}

My test:
describe('APPB', function () {
	context('[Login] Login into account', function () {
		beforeEach(function(){
		  cy.visit('/login')
		  cy.injectAxe()
		})
		it('[Login] Redirects to /dashboard on success', function () {
			cy.percySnapshot('testing before')

			cy.get('input[name=username]').should('have.attr', 'placeholder', 'Username or Email address')
<EMAIL_ADDRESS>{ delay: 50 }).should('have.value'<EMAIL_ADDRESS>			cy.get('input[name=password]').should('have.attr', 'placeholder', 'Password')
				.type('12345678', { delay: 50 }).should('have.value', '12345678')

			cy.percySnapshot('testing after')

			cy.get('button.button.primary').contains('Sign in').click()
			cy.checkA11y()
		})
	})
})

Any ideas or suggestions on what could be wrong with my setup and or test?

beforeEach is a global method you should put it in the context of "describe".
So instead of putting it in context but it outside context inside describe.

@Webbanditten thanks for the explanation and this really blows my mind and it is indeed working as you said putting outside of the context 👍
describe('APPB', function () {
beforeEach(function(){
cy.injectAxe()
})
context('[Login] Login into account', function () {
before(function(){
cy.visit('/login')
})
it('[Login] Redirects to /dashboard on success', function () {
cy.percySnapshot('testing before')
		cy.get('input[name=username]').should('have.attr', 'placeholder', 'Username or Email address')
<EMAIL_ADDRESS>{ delay: 50 }).should('have.value'<EMAIL_ADDRESS>		cy.get('input[name=password]').should('have.attr', 'placeholder', 'Password')
			.type('12345678', { delay: 50 }).should('have.value', '12345678')

		cy.percySnapshot('testing after')

                    cy.checkA11y()

		cy.get('button.button.primary').contains('Sign in').click()
	})
})

})
I ended up using the following example from cypress: https://github.com/cypress-io/cypress-example-recipes/tree/master/examples/blogs__a11y


Update service-downloader

Moves over to the official package in the Microsoft org and then takes a new version with an updated tar (6.0.1 -> 6.1.6)
Did a quick test locally and stuff downloaded fine on Windows - will follow up with making sure all platforms are tested though.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 41.754%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

extensions/import/src/services/serviceClient.ts
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
26385

Relevant Lines:
57354

💛  - Coveralls


Initial version

Initial cmdlets to set up a Rundeck session and do some basic job management.

I'm ready for a re-review.  I think I've updated or replied to everything and the build looks green.

Sorry this took so long to get back to, but I think I've responded to the issues and am ready for a review.

I can't stress strongly enough that you should pass a mandatory session object to each function instead of having a global session object. I know many modules do it that way, but we should be following the pattern of PowerShell itself, not third-party modules. PowerShell has you create a session to something, then pass that session object around. Global variables are in general frowned upon and not recommended.
Update New-RundeckSession to return a session object and update each function to have a mandatory first parameter:
   [Parameter(Mandatory)]
   [Object] $Session,


Autopair ignores an escaped character and pairs a quotemark.

Reproduction steps

Write echo 'Let\'* (* stands for the cursor).
Type '.
Autopairs pairs the quotemark and the state ends up as echo 'Let\''*'.

Expected behavior
The shell should end up as echo 'Let\''*.

I expect it doesn't skip the closing symbol like (keys pressed -> character inputted):

'Let\ -> 'Let\*'
' -> 'Let\'*' instead of 'Let\'*

I think rather than your suggestion this makes a better experience of typing escaped quote marks, since it doesn't need to move the cursor to type more ('Let\''* + left -> 'Let\'*').


cloud-init, amazon-kvs-webrtc-sdk, aws-sdk-cpp: WORKDIR -> UNPACKDIR …

…fixes
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/run


.d.ts (type definition files) for optimal Typescript usage

Hello!
I have a couple of basic questions:

Are the function/class declarations needed for this located in the .h and .cpp files over at the MinimalLib repo?
Should the .d.ts file live in the project root?

Hi @adam-of-barot

Are the function/class declarations needed for this located in the .h and .cpp files over at the MinimalLib repo?
The class and functions in https://github.com/rdkit/rdkit/blob/master/Code/MinimalLib/jswrapper.cpp should have related types imho. I haven't dig into how easy it will be to do this in a wasm context like rdkit-js however.

Should the .d.ts file live in the project root?
the .d.ts files should be generated under the dist folder during the build and specified in the package.json here https://github.com/rdkit/rdkit-js/blob/master/package.json#L48

cc @ptosco

I'm unfortunately not very well versed with C++, much less WASM, so all I could manage was define things manually.
But auto-generation sounds way better.

@adam-of-barot it's definitely a good start, and could turn out to be the better way, time will tell :+1:


Icon

Type
No response
Info
Here are some icons some are for web page. Feel free to keep or discard.
Website: MSVoip
Icon(s)

Hey, you already requested this icon, just a different version? https://github.com/walkxcode/Dashboard-Icons/issues/115

@Kilthor reminder.


support for module .mjs files

switch to tsx loader

The batch command and its associated functionality were removed from the GenAIScript cli.
The content of some files like CONTRIBUTING.md and all Markdown (*.md) files were updated.
Many dependencies in THIRD_PARTY_LICENSES.md were updated. 👍
References to files with .genai.js extensions were renamed to .genai.mjs, indicating that they now support JavaScript ES6 modules imports. 🔄
Scripts starting with system.* are now unlisted by default.
Scripts using .mjs extension now support static or dynamic imports as any other JavaScript module. 🆕
Some unnecessary sections like that describing GPSpec and some FAQ entries were deleted from the documents. ❌
File reading in NodeHost no longer includes special processing for "virtual files".
When env.generator is used, it is presented as the second parameter to a script function before files.
A cliInfo property which includes the files option is now provided in PromptScriptRunOptions.
A version patching script was added to handle version updates.
The script configuration has also been updated to remove experimental Visual Studio Code Insiders support, and VSCode Copilot integration has been removed.

generated by pr-describe

/genai-describe /genai-review

/genai-describe /genai-review

/genai-describe /genai-review

/genai-test


Lazy evaluation for default parameter

Description
If i use a function on default parameter (ex. content.at(str, default)), the function will be executed before calling at(), even if there is no need to use default parameter.
Here's a more concrete example: https://gist.github.com/lxl66566/30e309e696169829524ee04503b526db
Use Case
I don't know how to implement it. Maybe a closure for default or something like .at(...).default(...)?
I think lazy evaluation may be good for more complex functions in default.

I think for Rust this makes a lot of sense, but for Typst it introduces unnecessary complexity. The compiler could try to transparently optimize such cases down the road, but forcing this on the user doesn't feel Typst-y to me.


One Drive: Search API returns 403 error in Shared drive

One drive Search API  is returning 403 forbidden error when we  try to search in Shared Drive.
I have provided all the required permission still getting 403 error

Any update on this ?


fix: correct types in panic error message

Codecov Report

Merging #445 (19d40ca) into main (6bcebc1) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #445   +/-   ##
=======================================
  Coverage   50.28%   50.28%
=======================================
  Files          72       72
  Lines        5688     5688
=======================================
  Hits         2860     2860
  Misses       2497     2497
  Partials      331      331

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6bcebc1...19d40ca. Read the comment docs.


High Res MIP runs OOMing

Few examples:

Job Link
iid

job link
CMIP6.OMIP.CAS.CAS-ESM2-0.omip1.r1i1p1f1.Omon.tos.gn.v20200520

job link
CMIP6.HighResMIP.BCC.BCC-CSM2-HR.hist-1950.r1i1p1f1.SImon.siconc.gn.v20200921

job link
CMIP6.HighResMIP.BCC.BCC-CSM2-HR.hist-1950.r1i1p1f1.SImon.sivol.gn.v20200921

We could probably push these through with bigger workers, but why are these so unruly? Lets take a deeper look at how large these files are...

#190 seems to fix this to some degree. Needs confirmation.


No easy way to specify steam user when multiple steam accounts exist

2 Steam users are on my deck and the script is auto selecting the first and incorrect one for protonutils. -u {ID} can be used to set the user, but that would require editing the install script as-is.
Would prefer it ask which user to use and I would select the 2nd.

Never saw this come through in my emails, sorry! Thanks for making the report.
I tried to fix this just now, but it seems like the -u flag is actually broken, at least on my machine. I have an existing issue for problems with user detection over there, and I've mentioned this there now. But it seems like the project is ~unmaintained so I may need to look for another solution for what I'm trying to use protonutils for.
https://github.com/nning/protonutils/issues/39
I'm working on a much more robust installer for this (and other) programs that will work in Game Mode and allow making choices easily with the controller, so in the meantime I'll double down on that and try to include this functionality there.

@chrisbrasington it looks like a fix may be coming from upstream. In the meantime, can you try protonutils config user <userid> and then re-running? If protonutils isn't in your PATH, it should be in .local/bin/ if you've run the install script.


Increase github abuse limit timeout

Related issues

#76

Purpose
This will increase the GitHub abuse limit timeout to 1 minute.

@yogyagamage Can you check why the Maven tests are failing?

@yogyagamage Can you check why the Maven tests are failing?

It seemed that PRs from forked repos did not have access to repo secrets before. Now the workflow is updated in 93dcb201eddd1553bce3474d1551c42fccfec84a to give them access.


PouchDB design

Two dbs - one for the users serialized keystore, another for the app's api key
Both should be synch-able - in practice users keystore would be replicated in order to backup wallet data, apps api key synch-able to retain control over the api key.
Storing keystore seed?

Closing this and making it about storing API key in the keychain.


shell: glob expansion

expanding * args should be done by the shell

I'm currently attempting this

Closed by #59


"npm run publish" fails... but still publishes

When running npm run publish the terminal show an error but still publishes.
It should show a success message in the terminal instead.

@brunobuddy Is this feature still relevant


MAINT: 1.13.0rc1 prep [wheel build]

A few more version-related changes, and some chance of screw up here given special circumstances of a
new major NumPy release, but have to continue at it.

mixed in with our own version-related changes here are adjustments to avoid some of the "nightly" shims for NumPy pre-release in wheel build infrastructure itself, which perhaps also makes sense to happen on main now that the NumPy 2 beta is on PyPI (depends what you want to test though...);
I was somewhat concerned this may otherwise lead to us getting nightly NumPy builds off of main instead of more official builds from PyPI (in theory, we're supposed to support 2.1.0 as well, but that seems like an extra degree of confusion and not our desired build target for immediate RC1 wheels...)

start probing the wheel builds to see what goes wrong as we look to RC1 and building alongside NumPy 2

[wheel build]

@h-vetinari how do things stand on your end re: major concerns?

start probing the wheel builds to see what goes wrong

nothing apparently!

@h-vetinari how do things stand on your end re: major concerns?

I haven't tested the 1.13 branch yet, but from my POV I don't have concerns with tagging the release candidate. I'll build that in conda-forge and report back on any issues. I've marked one fix as a backport candidate that would be nice to have for 1.13.0 GA, but not necessary for rc1.

These changes look ok to me.

Feels like I'm a bit too lucky here, but ok CI is green and folks are happy so in it goes.

I had a scroll through the logs, it all looks ready for RC1.
This was the one warning that should out; not an immediate problem, but may break the Windows builds once MinGW-w64 reaches 14.0 I suspect:
    [262/1477] Compiling C++ object scipy/sparse/sparsetools/_sparsetools.cp312-win_amd64.pyd.p/sparsetools.cxx.obj
    In file included from ../scipy/sparse/sparsetools/complex_ops.h:9,
                     from ../scipy/sparse/sparsetools/sparsetools.h:10,
                     from ../scipy/sparse/sparsetools/sparsetools.cxx:36:
    C:\Users\runneradmin\AppData\Local\Temp\pip-build-env-zvp86mh4\overlay\Lib\site-packages\numpy\_core\include/numpy/npy_math.h: In function 'npy_longdouble npy_creall(npy_clongdouble)':
    C:\Users\runneradmin\AppData\Local\Temp\pip-build-env-zvp86mh4\overlay\Lib\site-packages\numpy\_core\include/numpy/npy_math.h:405:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
      405 |     return ((longdouble_t *) &z)[0];
          |            ~^~~~~~~~~~~~~~~~~~~~

I'll have a long at that later, looks like a minor issue in NumPy.


The [webpack > resolve > alias] setting is not available in the css file. Is there any solution?

The [webpack > resolve > alias] setting is not available in the css file.
Is there any solution?

This may be because our strategy for resolving the url() path is different from the latest css-loader.
I'm considering upgrading this feature or adding an option to support it.
It's an old problem. There are two different styles resolving url() path in old css-loader below 2.0.0:

webpack style:

url(image.png) => require('./image.png')
url('image.png') => require('./image.png')
url(./image.png) => require('./image.png')
url('./image.png') => require('./image.png')
url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
To import assets from a node_modules path (include resolve.modules) and for alias, prefix it with a ~:
url('image.png') => require('./image.png')
url(~module/image.png) => require('module/image.png')
url('~module/image.png') => require('module/image.png')
url(~aliasDirectory/image.png) => require('otherDirectory/image.png')

We use the css moulde in our project
https://github.com/webpack-contrib/css-loader/releases/tag/v2.0.0


fix: public page header

removed clappr text in header and added png logo, added semantic nav tag for navigation and used flexbox in header to arrange elements on the index from the public route

Hi, @vander-furtuna!
At the moment, we don’t have any plans to update our local test page to include your suggestions. Therefore, I'll close your request.
But, anyway, thank you very much for your contribution ❤


Don't read all planes into memory at once

I think this fixes https://github.com/brainglobe/cellfinder-core/issues/52 - @agriffa0201 is there any chance you can try out this fix and see if it works for you?

I've done some more testing, and I think this only delays the memory being full up, so don't test it yet @agriffa0201 !

Right, this is now fixed again, if anyone wants to test.

Codecov Report

Merging #53 (fc011d3) into main (646290f) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head fc011d3 differs from pull request most recent head 65c0b6b. Consider uploading reports for the commit 65c0b6b to get more accurate results

@@           Coverage Diff           @@
##             main      #53   +/-   ##
=======================================
  Coverage   99.54%   99.54%
=======================================
  Files           8        8
  Lines         221      221
=======================================
  Hits          220      220
  Misses          1        1

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 646290f...65c0b6b. Read the comment docs.


Domains containing hyphens interpreted as IP range

It seems like when parsing the scope file passed with -sf, ODIN interprets a domain containing a hyphen as an IP range.
[+] blah123-online.com is a range - expanding...
[!] Parsing of scope file failed!
L.. Details: list index out of range

Thanks for the report! This was a super easy fix. It was resolved with THE LATEST UPDATE:
https://github.com/chrismaddalena/ODIN/commit/7a4c8bfcb8c1457e454a07b243c5573f97c41b1f


[#5678] Channels "enumeration" is out of date

Fixes #5678
Description
This PR updates the Channels enum adding Outlook and marking Twilio as obsolete.
Specific Changes

Added new channel Outlook.
Marked Twilio as obsolete.

Testing
This image shows the tests passing after the changes.

Pull Request Test Coverage Report for Build 302558

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 78.705%

Totals

Change from base Build 302179:
0.0%

Covered Lines:
25291

Relevant Lines:
32134

💛  - Coveralls

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll


add scheduleOnce()

First of all, thanks for this great library, I've been using it on most of my Arduino projects :)
One thing I've been doing again-and-again is to schedule a task to process some interruption event. But if the interruption happens several times before the task has a chance to run, it just needs to run once.
So far I've been using this to ensure tasks are only schedule once:
scheduler.removeCallbacks(task);
scheduler.schedule(task);

I suggest we add a new function scheduleOnce(), which avoids this issue.
Makes sense? What do you think?

How did you go @paulo-raca with using scheduleOnce()?


Improved theme of the Calculator

Here is the link to it's respective issue - #4

Here is the link to it's respective issue - #4

Hello @Rituraj-13 Can you try to come up with different colour combinations matching the button keys?


TypeScript Version not showing and thus causing no syntax highlighting or errors

VSCode Version:
Version: 1.44.2
Commit: ff915844119ce9485abfe8aa9076ec76b5300ddd

OS Version:
MacOS 10.15.1

Steps to Reproduce:

Open a .tsx file
Notice no TypeScript Version

Does this issue occur when all extensions are disabled?: Yes/No
Yes

This works: https://github.com/microsoft/vscode/issues/75466


Fix broken ref to board machine names page

Added space, link is now in the generated HTML as intended.
QA: checked rendered output and link. Ran linkcheck. No reason to run linter.
This commit addresses FS-2843, re: fix see:ref:ref-linux-supported
PR Template and Checklist
Please complete as much as possible to speed up the reviewing process.
Readiness and adding reviewers as appropriate is required.
All PRs should be reviewed by a technical writer/documentation team and a peer.
If effecting customers—which is a majority of content changes—a member of Customer Success must also review.
Readiness

[x] Merge (pending reviews)

Overview
Why merge this PR? What does it solve?
Checklist

[x] Run spelling and grammar check, preferably with linter.
[x] Avoid changing any header associated with a link/reference.
[x] Match tone and style of page/section.
[x] Run make linkcheck.
[x] View HTML in a browser to check rendering.
[x] Use semantic newlines.
[x] follow best practices for commits.

[x] Descriptive title written in the imperative.
[x] Include brief overview of QA steps taken.
[x] Mention any related issues numbers.
[x] End message with sign off/DCO line (-s, --signoff).
[x] Sign commit with your gpg key (-S, --gpg-sign).
[x] Squash commits if needed.

[x] Request PR review by a technical writer and at least one peer.

Docs for dcf5738790e748439f59b3d8e887cde32e2cd55c are browsable at: https://ci.foundries.io/projects/fio-docs/builds/2802/docs/artifacts/html/index.html


Add password manager

issue #433
pls label as level 2
https://github.com/user-attachments/assets/d71f01fd-5907-411a-84c1-4de3cd54eaa1

Here’s a description of your Password Manager Project using HTML, CSS, and Java and how it can be categorized as Level 2 based on complexity
The Password Manager is a secure, user-friendly application developed using HTML, CSS, and Java. It enables users to store, manage, and retrieve their passwords safely for multiple accounts. This project focuses on providing a simple interface for users while ensuring that passwords are securely stored and encrypted using Java-based algorithms.
Technology Stack:

Frontend:

HTML: Used for creating the structure of the user interface. It contains forms for user registration, login, and password management. The layout includes fields for usernames, passwords, and account details.
CSS: Used for styling the application’s user interface. CSS provides a responsive and visually appealing layout with various styles for buttons, forms, and alerts.
JavaScript: Provides frontend validation (e.g., password strength checking, form validation) and interactive features such as showing/hiding passwords.
Change the label to level 1 to level 2 @iamrahulmahato @Tapabrata-Goswami

there is a conflict resolve it


Cuda 12.4

Seems that is not compatible with cuda 12.4? I'm investigating on that
(base) johnny@johnny-jetson:~/Projects$ git clone https://github.com/dusty-nv/jetson-utils
Cloning into 'jetson-utils'...
remote: Enumerating objects: 3505, done.
remote: Counting objects: 100% (1271/1271), done.
remote: Compressing objects: 100% (141/141), done.
remote: Total 3505 (delta 1169), reused 1141 (delta 1130), pack-reused 2234
Receiving objects: 100% (3505/3505), 1.43 MiB | 5.98 MiB/s, done.
Resolving deltas: 100% (2474/2474), done.
(base) johnny@johnny-jetson:~/Projects$ cd jetson-utils/
(base) johnny@johnny-jetson:~/Projects/jetson-utils$ mkdir build
(base) johnny@johnny-jetson:~/Projects/jetson-utils$ cd build/
(base) johnny@johnny-jetson:~/Projects/jetson-utils/build$ cmake ../
make -j$(nproc)
sudo make install
sudo ldconfig
CMake Deprecation Warning at CMakeLists.txt:2 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- jetson-utils:  building as standalone
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/lib/ccache/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/lib/ccache/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- using patched FindCUDA.cmake
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found CUDA: /usr/local/cuda-12.4 (found version "12.4")
-- CUDA version: 12.4
-- CUDA 12.4 detected (aarch64), enabling SM_53 SM_62
-- CUDA 12.4 detected (aarch64), enabling SM_72
-- CUDA 12.4 detected (aarch64), enabling SM_87
-- system arch:  aarch64
-- output path:  /home/johnny/Projects/jetson-utils/build/aarch64
-- distro ID:       Ubuntu
-- distro version:  22.04
-- distro codename: jammy
-- nvbuf_utils:  NVBUF_UTILS-NOTFOUND
-- NVMM zero-copy memory:  ENABLE_NVMM=OFF
-- Copying /home/johnny/Projects/jetson-utils/alphanum.h
-- Copying /home/johnny/Projects/jetson-utils/camera/gstCamera.h
-- Copying /home/johnny/Projects/jetson-utils/camera/v4l2Camera.h
-- Copying /home/johnny/Projects/jetson-utils/codec/gstBufferManager.h
-- Copying /home/johnny/Projects/jetson-utils/codec/gstDecoder.h
-- Copying /home/johnny/Projects/jetson-utils/codec/gstEncoder.h
-- Copying /home/johnny/Projects/jetson-utils/codec/gstUtility.h
-- Copying /home/johnny/Projects/jetson-utils/codec/gstWebRTC.h
-- Copying /home/johnny/Projects/jetson-utils/codec/nvbuf_utils.h
-- Copying /home/johnny/Projects/jetson-utils/commandLine.h
-- Copying /home/johnny/Projects/jetson-utils/csvReader.h
-- Copying /home/johnny/Projects/jetson-utils/csvReader.hpp
-- Copying /home/johnny/Projects/jetson-utils/csvWriter.h
-- Copying /home/johnny/Projects/jetson-utils/csvWriter.hpp
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaAlphaBlend.cuh
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaBayer.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaColormap.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaColorspace.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaCrop.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaDraw.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaFilterMode.cuh
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaFilterMode.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaFont.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaGrayscale.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaMappedMemory.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaMath.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaNormalize.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaOverlay.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaPointCloud.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaRGB.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaResize.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaUtility.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaVector.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaWarp.h
-- Copying /home/johnny/Projects/jetson-utils/cuda/cudaYUV.h
-- Copying /home/johnny/Projects/jetson-utils/display/glBuffer.h
-- Copying /home/johnny/Projects/jetson-utils/display/glCamera.h
-- Copying /home/johnny/Projects/jetson-utils/display/glDisplay.h
-- Copying /home/johnny/Projects/jetson-utils/display/glEvents.h
-- Copying /home/johnny/Projects/jetson-utils/display/glTexture.h
-- Copying /home/johnny/Projects/jetson-utils/display/glUtility.h
-- Copying /home/johnny/Projects/jetson-utils/display/glWidget.h
-- Copying /home/johnny/Projects/jetson-utils/filesystem.h
-- Copying /home/johnny/Projects/jetson-utils/image/imageFormat.h
-- Copying /home/johnny/Projects/jetson-utils/image/imageFormat.inl
-- Copying /home/johnny/Projects/jetson-utils/image/imageIO.h
-- Copying /home/johnny/Projects/jetson-utils/image/imageLoader.h
-- Copying /home/johnny/Projects/jetson-utils/image/imageWriter.h
-- Copying /home/johnny/Projects/jetson-utils/image/loadImage.h
-- Copying /home/johnny/Projects/jetson-utils/input/devInput.h
-- Copying /home/johnny/Projects/jetson-utils/input/devJoystick.h
-- Copying /home/johnny/Projects/jetson-utils/input/devKeyboard.h
-- Copying /home/johnny/Projects/jetson-utils/json.hpp
-- Copying /home/johnny/Projects/jetson-utils/logging.h
-- Copying /home/johnny/Projects/jetson-utils/mat33.h
-- Copying /home/johnny/Projects/jetson-utils/network/Endian.h
-- Copying /home/johnny/Projects/jetson-utils/network/IPv4.h
-- Copying /home/johnny/Projects/jetson-utils/network/IPv6.h
-- Copying /home/johnny/Projects/jetson-utils/network/Networking.h
-- Copying /home/johnny/Projects/jetson-utils/network/RTSPServer.h
-- Copying /home/johnny/Projects/jetson-utils/network/Socket.h
-- Copying /home/johnny/Projects/jetson-utils/network/URI.h
-- Copying /home/johnny/Projects/jetson-utils/network/WebRTCServer.h
-- Copying /home/johnny/Projects/jetson-utils/pi.h
-- Copying /home/johnny/Projects/jetson-utils/rand.h
-- Copying /home/johnny/Projects/jetson-utils/threads/Event.h
-- Copying /home/johnny/Projects/jetson-utils/threads/Event.inl
-- Copying /home/johnny/Projects/jetson-utils/threads/Mutex.h
-- Copying /home/johnny/Projects/jetson-utils/threads/Mutex.inl
-- Copying /home/johnny/Projects/jetson-utils/threads/Process.h
-- Copying /home/johnny/Projects/jetson-utils/threads/RingBuffer.h
-- Copying /home/johnny/Projects/jetson-utils/threads/RingBuffer.inl
-- Copying /home/johnny/Projects/jetson-utils/threads/Thread.h
-- Copying /home/johnny/Projects/jetson-utils/timespec.h
-- Copying /home/johnny/Projects/jetson-utils/video/videoOptions.h
-- Copying /home/johnny/Projects/jetson-utils/video/videoOutput.h
-- Copying /home/johnny/Projects/jetson-utils/video/videoSource.h
-- Copying /home/johnny/Projects/jetson-utils/xml.h
-- trying to build Python bindings for Python versions:  3.10
-- detecting Python 3.10...
CMake Warning (dev) at python/bindings/CMakeLists.txt:24 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at python/bindings/CMakeLists.txt:25 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

This warning is for project developers.
In file included from /home/johnny/Projects/jetson-utils/codec/gstWebRTC.h:26,
                 from /home/johnny/Projects/jetson-utils/codec/gstDecoder.cpp:24:
/home/johnny/Projects/jetson-utils/build/aarch64/include/jetson-utils/WebRTCServer.h:26:10: fatal error: libsoup/soup.h: No such file or directory
   26 | #include <libsoup/soup.h>
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
In file included from /home/johnny/Projects/jetson-utils/codec/gstWebRTC.h:26,
                 from /home/johnny/Projects/jetson-utils/codec/gstEncoder.cpp:24:
/home/johnny/Projects/jetson-utils/build/aarch64/include/jetson-utils/WebRTCServer.h:26:10: fatal error: libsoup/soup.h: No such file or directory
   26 | #include <libsoup/soup.h>
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/jetson-utils.dir/build.make:237: CMakeFiles/jetson-utils.dir/codec/gstDecoder.cpp.o] Error 1
make[2]: *** [CMakeFiles/jetson-utils.dir/build.make:251: CMakeFiles/jetson-utils.dir/codec/gstEncoder.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:133: CMakeFiles/jetson-utils.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

sorry, it is working


toggle pointer-events with suspension

Hi,
I added two classes for the hidden/visible modules to toggle the pointer-events with the new .hidden class.
Further I removed the one with the universal selector, which made hidden modules and just anything in them stealing pointer events, if they were placed in any fullscreen area.

Codecov Report

Merging #2827 (93581ca) into develop (c5e9c9a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop    #2827   +/-   ##
========================================
  Coverage    65.26%   65.26%
========================================
  Files            8        8
  Lines          285      285
========================================
  Hits           186      186
  Misses          99       99

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c5e9c9a...93581ca. Read the comment docs.

Sure, thanks.
By the way. I'm currently creating some modules myself. Have to do some refactoring today but I'd like to contribute it to the 3rd party list. Whom might I contact for reviewing them?

You can just add them to the wiki. It's open for everybody to edit.


Add create history file if it does not exist already

Tried abacus and got an error on first start open /home/ole/.abacus_history: no such file or directory. Maybe it is a good idea to create the history file automatically if it does not exist.

Oh, great. A bit of an oversight by me!

Oh, great. A bit of an oversight by me!

Could you please remake the PR for the feature/tuples-and-lambda-expressions branch?

Could you please remake the PR for the feature/tuples-and-lambda-expressions branch?


Make it so SyncDisplay/CellDisplay can wrap arbitrary displays

Resolves #82. Note that this involves a change to the DisplayBase trait which wraps the Setup in an Arc. I'll update the derivative crates later.

Latest commit addresses breaking changes made in psychon/x11rb@2c4bcc6


Add  brand class name for Department for Business Innovation and Skills

Description
Department for Business Innovation and Skills has been broken into several departments. We've been asked to update the branding class to department-for-energy-security-and-net-zero.
Trello card
https://trello.com/c/XYjCuXRz/1325-update-old-bis-colour-name-in-whitehall

Thanks @colinrotherham. Quick question. We've got a draft PR open to update Whitehall to use the new class name. https://github.com/alphagov/whitehall/compare/main...update-bis-brand-colour-name
I've marked it as do not merge.
@beccapearce has pointed me to these PRs https://github.com/alphagov/govuk-frontend/pull/3407 https://github.com/alphagov/govuk-frontend/pull/3523
Is this something you'd want to batch up with those changes?

It's definitely my preference that all of the departmental name and colour changes be bundled together under #3407, as that includes some wider reaching changes to how we define and provide organisation colours.
I've been working with Design102 and GCS to try and have the definitive departmental colours authoritatively defined. It's been slow progress, as there seems to be little organisational knowledge over what they should be for the new departments.
This PR contributes to that confusion, which has DESNZ inheriting BEIS blue (#003479) when the the sources I've been in contact with say that DESNZ should be green (#00A33B)! Not ascribing blame to you or anyone else, but it's evidence of how this information seems poorly defined and distributed, and why updates to organisation colours have historically been very slow and piecemeal. Hopefully will be changing that soon. 🤞

As per my last comment, we would prefer to batch these changes into our larger organisation colour update in #3407. As such, I'm going to close this PR for now.


Slow/inconsistent startup time for SQL Server LocalDB on windows-2022 image

Description
I’m running database integration tests in Azure DevOps Pipelines with the Microsoft-hosted Windows agent. The tests use MS SQL Server Express LocalDB. The time it takes to start the LocalDB instance is very inconsistent. Sometimes it takes just 20 seconds (which is still slow compared to my local dev machine), but sometimes it takes more than 5 minutes!
For that reason I can’t just use LocalDB in my tests and rely on automatic startup of the DB like I’m used to from my local dev machine because then the tests time out.
As a workaround I now have an explicit step in my pipeline:
- script: 'sqllocaldb start MSSQLLocalDB'
  displayName: 'Start SQL Server LocalDB'

The works most of the time, but as mentioned just this single command can take multiple minutes.
Rarely the LocalDB startup even fails. It then prints the following to the log:
Start of LocalDB instance "MSSQLLocalDB" failed because of the following error:
Cannot create an automatic instance. See the Windows Application event log for error details.

(I can't check the Windows Application event log for details because this is a Microsoft-hosted agent. Enabling system diagnostics for the build also doesn't provide any more useful logs.)
Please fix this so that the LocalDB startup is consistently fast.
Maybe it would be possible to already start it when the image is created so that each new build run already gets a started LocalDB instance?
Platforms affected

[X] Azure DevOps
[ ] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] macOS 13
[ ] Windows Server 2019
[X] Windows Server 2022

Image version and build link
Image: windows-2022
Version: 20230804.1.0
Is it regression?
unknown
Expected behavior
MS SQL Server Express LocalDB creation/startup time should be fast and consistent.
Ideally I could rely on the auto-start feature and not have to manually start the LocalDB with a script step.
Actual behavior
MS SQL Server Express LocalDB creation/startup time varies between a few seconds and multiple minutes.
Repro steps

Create a pipeline which includes this step:

- script: 'sqllocaldb start MSSQLLocalDB'
  displayName: 'Start SQL Server LocalDB'

Run the pipeline multiple times and observe the time it takes to execute the step.

Hello @cremor, we will take a look, however, we cannot promise to start the MSSQLLocalDB service after Microsoft-hosted runner allocation, since it can affect the performance of other customers.

@cremor , you can check event log by running powershell, for example
- task: PowerShell@2
  condition: always()
  inputs:
    targetType: 'inline'
    script: |
      Get-EventLog -LogName System  | fl
      Get-EventLog -LogName Application | fl

we cannot promise to start the MSSQLLocalDB service after Microsoft-hosted runner allocation, since it can affect the performance of other customers.

I don't know how the agent images work, but can't you start the LocalDB before you create the image, so that it is already running when a new agent is started from that image?
If it doesn't work that way, then maybe the LocalDB instance could at least be created in the image? Then the agent would only have to start it (this is assuming that creating the instance is the problem and not starting it - I haven't verified this).
Of course, those are just some ideas. If there is a way to "simply" fix the startup performance then none of this is needed.

@cremor , did you have a chance to collect Windows Application Event Log ?

No, I've only seen that LocalDB creation error twice over a timespan of about a month. I'd have to add this to all my pipelines and hope that it happens again, which I don't really want to do.

ok, most probably it will be something like "the mentioned service was not started for .... seconds". but let's add and see.
from my side, I'll try running your steps sqllocaldb start MSSQLLocalDB in ADO and see how much time it takes.

@criemen , I created sample workflow
trigger:
- main

pool:
  vmImage: windows-latest

steps:

      - task: PowerShell@2
        inputs:
          targetType: 'inline'
          script: 'sqllocaldb start MSSQLLocalDB'

and ran it 50 times
14s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=279
13s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=280
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=281
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=282
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=283
14s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=284
60s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=285
13s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=286
13s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=287
34s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=288
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=289
20s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=290
17s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=291
13s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=292
13s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=293
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=294
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=295
39s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=296
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=297
13s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=298
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=299
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=300
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=301
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=302
50s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=303
13s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=304
13s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=305
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=306
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=307
13s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=308
35s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=309
40s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=310
11s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=311
12s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=312
20s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=313
21s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=314
44s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=315
33s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=316
23s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=317
31s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=318
34s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=319
21s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=320
18s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=321
36s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=322
30s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=323
30s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=324
23s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=325
14s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=326
23s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=327
23s https://dev.azure.com/v-ishipitsin/uno/_build/results?buildId=328

all 50 times LocalDB started. I was not able to reproduce your case when service did not start.
can it be a matter of system utilization ? do you start LocalDB in the very beginning ?

My actual pipeline calls the LocalDB start script after a .NET build step. But even in my test pipeline with that single LocalDB start step the step alone sometimes took over an minute.
I didn't catch extremely long (multiple minute) durations with the simple test pipeline, but that might just have been bad (good? 😁 ) luck. As I wrote in my initial report, the time is very inconsistent. Sometimes it's fast, sometimes it's slow.
The error has only happend twice for me as far as I know, so that is very rare. And I suspect that the error is just some timeout, because when it happend the step duration was around 5 minutes. So fixing the performance might also fix the error.
Btw, I'm in the Azure DevOps region "West Europe" in case the region affects performance.

But if the same project (same build step) still results in LocalDB startup times that vary between 20s and 5m, then the build can't be the factor that slows the LocalDB startup time down, right?
Also, I've seen the 5 minute LocalDB startup time for very simple Web API projects (not much more than a single controller and a bit of EF Core infrastructure code).
But I'll try a few things and will get back to you.

I do not observer 5m. I suspect that you have some other component which slows things down. On clear build I observer startup times between 12s and 60s.

anyway, please provide detailed repro step how to observe 5min startup time, so we can investigate.
with repro steps provided, I see 12s-60s.

well, I cannot reproduce your numbers... thus I cannot make measurement on my side.
I'd suggest adding WPT code around "sqllocaldb create MSSQLLocalDB"
something like
trigger:
- main

pool:
  vmImage: windows-latest

steps:
- task: CmdLine@2
  inputs:
    script: |
      choco install windows-performance-toolkit
      "C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -start -on LOADER+PROC_THREAD+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PERF_COUNTER+FILE_IO_INIT+REGISTRY

- task: CmdLine@2
  inputs:
    script: |
      sqllocaldb create MSSQLLocalDB

- task: CmdLine@2
  inputs:
    script: |
      Start SQL Server LocalDB

- task: CmdLine@2
  inputs:
    script: |
      "c:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -d tmp.etl

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)\tmp.etl'
    ArtifactName: 'etl'
    publishLocation: 'Container'

this should collect WPT telemetry in tmp.etl and publish it as artifact.

I'll provide the WPT telemetry file once I manage to reproduce the slow startup in my test pipeline again. Right now the LocalDB startup always takes less than 1 minute. It's really annoying that this is so inconsistent (maybe dependend on outside factors?).

sqllocaldb should be completely independent of any source files in the repo. See also https://learn.microsoft.com/en-us/sql/tools/sqllocaldb-utility

ok, I'll try to run 50 builds with createdb + telemetry

I got a 3m 7s start time. Here is the WPT telemetry file:
tmp.zip

interesting. defender is relatively short.
what can be RuntimeBroker ? is it part of SQL ?
I see that SQL itself takes all the time (and no other process)

well, in theory we can invoke sqllocaldb create MSSQLLocalDB during image preparation. what is MSSQLLocalDB, is it database name ? we cannot "warmup" just any database, but we should name certain database ?

well, seems the winner is svchost

no idea what is it doing, but most probably "docker" is not related to LocalDB activity (and we can something with that after we figure out what it is)

what is MSSQLLocalDB, is it database name ? we cannot "warmup" just any database, but we should name certain database ?

MSSQLLocalDB is the default DB name for the automatic instance. See
https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-ver16#automatic-and-named-instances
and
https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-ver16#connect-to-the-automatic-instance

@cremor , I made some tests, unfortunately "sqllocaldb create MSSQLLocalDB" will take a bit more effort from our side.
good news - it can be run many times, if I add it to image generation, you still can run it from your pipeline, no error will be emitted.
bad news - it stores database in user profile. user used for image generation is deleted after image generation. we need to move generated database to "C:\Users\Default" (which is used as template for new users)
also, few thoughts

"sqllocaldb create MSSQLLocalDB" creates database in user profile, which is stored on "C:" drive. drive "C:" is relatively slow, only 300 IOPS for everything. we have faster "D:" drive (it is exposed via env variables as Agent Temp directory)
in collected WPT I see "windows cortana" activity. I suspect it utilized huge amount of 500 IOPS on "C:" drive. cortana is enabled in purpose, for real life e2e tests it is invaluable to run in very similar to real life environment. Unfortunately, we do not have good solution for customers who do not need those extra services. Of course, customer can disable it from pipeline, but it takes many efforts to find out what to disable.

"sqllocaldb create MSSQLLocalDB" creates database in user profile, which is stored on "C:" drive. drive "C:" is relatively slow, only 500 IOPS for everything. we have faster "D:" drive

Is this also true for other databases that are preinstalled on the images? Or do the data files of that other databases use the D: drive?

2. in collected WPT I see "windows cortana" activity. I suspect it utilized huge amount of 500 IOPS on "C:" drive.

If this (or some other background process) is indeed the problem, than maybe the correct solution would be to fix that resource usage instead of doing something special for LocalDB?
But I'm wondering why the effect of those background processes is so inconsistent. Shouldn't they always behave the same since the same image is used to start the agent?

Just wanted to let you know... thank god we are not the only ones with this issue. It has been bugging us on and off for a few months. But recently (as in, last week and the week before that) it has gotten significantly worse. We weren't using the work around @cremor implemented so our unit tests keep failing now and then. So at least that is something we can implement on our end to make the builds stay green.

Yeah, Microsoft-hosted agent performance is all over the place recently. I have seen steps (not LocalDB, something completely different) that usually take less than 5 seconds and now sometimes take nearly 2 minutes 😞

@cremor , sorry for long delay.
while I'm still looking how to properly "warmup" things, it seems that I've found the reason of accidental high disk IO.
we haven't disabled the following scheduled task

we'll disable it, it's easy part.
just curious, does your observation of slowness corellate with that schedule ?

I don't think so. Even though I don't know which time zone this would be, I've seen slow LocalDB startup all (work) day.
But maybe the trigger is executed as soon as the agent starts because it's last scheduled time was missed? If that is the case, then it could indeed be the cause for all the performance problems of the agent.

@cremor , I've figured out that deleting defender tasks does not help, it recreates them silently.
we are going to add Set-MpPreference -ScanScheduleDay  8 to images, it tells defender to delete scanning task.
new image rollout will take a week.
if you have spare time, can you verify that adding Set-MpPreference -ScanScheduleDay  8 to your pipeline increase stability (or not ?)

I've now ran a few more tests:

10 runs without the command:

Longest LocalDB start time: 1m 52s
WPT telemetry file: Without command.zip
All other start times were around 40s or less

10 runs with the command:

Longest LocalDB start time: 3m 55s
WPT telemetry file: With command longest.zip
2nd longest LocalDB start time: 1m 59s
WPT telemetry file: With command 2nd longest.zip
3nd longest LocalDB start time: 1m 40s
WPT telemetry file: With command 3rd longest.zip
Most other start times were around 40s (sometimes more, sometimes less)

So I'd say I can't see an improvement with that command 😉
I've ran the command as early as possible (even before checkout). Here is my full test pipeline:
pool:
  vmImage: 'windows-latest'

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: 'Set-MpPreference -ScanScheduleDay 8'

- checkout: self

- task: CmdLine@2
  inputs:
    script: |
      choco install windows-performance-toolkit
      "C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -start -on LOADER+PROC_THREAD+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PERF_COUNTER+FILE_IO_INIT+REGISTRY

- script: 'sqllocaldb start MSSQLLocalDB'
  displayName: 'Start SQL Server LocalDB'

- task: CmdLine@2
  inputs:
    script: |
      "c:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -d $(Build.ArtifactStagingDirectory)\tmp.etl

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)\tmp.etl'
    ArtifactName: 'etl'
    publishLocation: 'Container'

I'm back with some good news and some bad news.
bad news: LocalDB wants database to be placed in %USERPROFILE%, neither https://github.com/actions/runner-images/pull/8435, nor https://github.com/ilia-shipitsin/runner-images/commit/25d45e460761e799a9d1fca833660cd727a348f4 did not convince LocalDB to use moved database. it is created from scratch and placed to %USERPROFILE%
good news: during investigation we improved several things

https://github.com/actions/runner-images/pull/8285
https://github.com/actions/runner-images/pull/8374
https://github.com/actions/runner-images/pull/8388
https://github.com/actions/runner-images/pull/8495

taking into account that we cannot warmup LocalDB due to its nature (to use %USERPOFILE%), we hope that other improvements will help to reduce disk IO (especially disabling StorSvc)

Thanks for the information.
How can I find out which image version contains those fixes? I'd like to test again when the new image version is available on hosted agents.

my measurements show that StorSvc was the most significant Disk IO consumer.
it is deployed already (PR: https://github.com/actions/runner-images/pull/8388 )
the last change (related to powershell first run warmup) is not merged yet.  but it is rather cosmetic. it warms up the first invocation. if you add dummy first step with "something in powershell", that step will warmup for you


436 Fix sponsor logo files zip download

This was overlooked when moving the web logo benefit
from its own Benefit record to a field on the Sponsor
model.
Fixes #436

The code changes look fine, but when I try to download sponsor logos I get an empty file. There are active sponsors in my local copy of the database.

Do their logos show up when you go to /2016/sponsors/ ?

That was it, thanks.
:goat:


Leveraging the global for rkeWindowsPrefixPath.

This PR includes leveraging the global.cattle.rkeWindowsPrefixPath global value to create the paths for the chart and powershell scripts.  This fixes the bug here.

@phillipsj can you introduce the os annotation here as well, re: https://github.com/rancher/charts/blob/2620871639f461c0a8dc4786a9ee286b36a71b9d/packages/rancher-wins-upgrader/generated-changes/patch/values.yaml.patch#L10


Blank Dashboard in Teams

We followed the deployment guide and performed all the steps, We are facing the issue when we add launch the app in Teams we are getting blank dashboard except Welcome message.
We also tried adding the app via channel and directly app also. in both the scenarios we are getting the blank screen.
Please find the attached Logfile, Blank app screenshot, Azure App Permissions
TeamsEOC_Log (2).log

We also tired removing the app and re adding again but we are getting the same issue.
It would be great we can have update on the issue as we have tried all the possible options.

@vjanaga-exelixis any luck?  I have a customer who is looking to implement this solution.

Hi,
We are not able to see the REACT_APP_SHAREPOINT_SITE_NAME configuration in app service. We are getting the below configuration settings

Please find the attached mainfest file
TEOC.json
Please let us know if you need any other information

Hi @vjanaga-exelixis,
It seems like you don't have enough permissions to view the Application settings. Can you please reach out to the Azure Administrator or the respective internal team to get the value updated for REACT_APP_SHAREPOINT_SITE_NAME app settings  to TeamsEOCSite instead of the full URL ?
Once that is updated, then perform this step, to get the code updated with the new site name value in your app service. Once that is done, open the app in teams and verify if that works as expected.

Hi,
As per your instructions we have updated the REACT_APP_SHAREPOINT_SITE_NAME app settings to TeamsEOCSite and restarted the app service.
After that when we click on the link step, its redirecting to the step3 Sync latest version. and while performing sync step we stuck here. we are able to see the previous action step. please find the screenshot

Could you please provide the instructions for resolving this issue. Please let me know if you need any other information.

@vjanaga-exelixis , Can you try clearing the browser cache and launch the TEOC app to see whether that works? If you still see any issues, can you check the following - In Azure portal, navigate to TEOC resource group, open app service and click on Advanced Tools, click on Go and then click on App Settings.

Check for the REACT_APP_SHAREPOINT_SITE_NAME variable and see if that has correct site name without any special characters.


Add support for YAML format for validate action

Everyone knows YAML > JSON when it comes to readability, so writing json schemas in YAML is just a nicer experience.

... test is also failing, try yaml.safe_load instead

Thanks Theo :)


Make oref0-version more useful if you're not running on openaps/oref0 directly

A few changes to make the message at the end of the loop more useful if you're not running on the main openaps/oref0 repo.

Check OREF0_SRC env for source code location.
Check for being behind upstream (if it exists).
Only warn if repo is ahead of local (not local ahead of remote)

What does the duplicated code do?  Can we just add that check to the code above and un-duplicate it?

When you're not running on the openaps/oref0 repository directly (say, a personal fork), the easiest (possibly only?) way to have access to the personal repository and the base openaps/oref0 I've found is to have it set up like this:
$ git remote -v
origin  https://github.com/cjo20/oref0 (fetch)
origin  https://github.com/cjo20/oref0 (push)
upstream        http://github.com/openaps/oref0.git (fetch)
upstream        http://github.com/openaps/oref0.git (push)

The first instance of the code checks how far behind the origin head you are, the second instance checks how far behind the upstream head you are.

Your instance of oref0 [0.6.1-dev, dev] is up-to-date.
Your instance of oref0 [0.6.1-dev, dev] is up-to-date with upstream.


Fetching before navigation with async setup()

What problem does this feature solve?
I have a route component that fetches data in the async setup() method. How can I navigate to this route so that the data fetching happens before the <RouterView> is updated?
What does the proposed API look like?
async beforeRouteEnter(to, from, next) {
  await next() //fires setup() method
}

At the moment you can't. This is something that still needs refinement and I'm still working on an RFC for it.


Bump Monaco to 0.18.1

Closes #176
Updated Monaco to 0.18.1.

@akosyakov I've added the changes for the two TODOs as well.

@akosyakov I'll be on vacation for a week. Could you take a look at this in the meantime? When I'm back it would be cool if we can test the new dev release or fix any potential issues that remain. Cheers!

@PHameete Could you make sure that you have this check on: https://help.github.com/en/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork#enabling-repository-maintainer-permissions-on-existing-pull-requests? It will allow us to fix any issues with additional commits to this PR and then merge it. Thank you!

@akosyakov it's done. Cheers!

Do we need to update examples/brower/package.json?
https://github.com/TypeFox/monaco-languageclient/blob/bab5efae562129188375227d202e544a87177e9c/examples/browser/package.json#L4-L6

After the language client version is incremented , yes.

@rcjsuen it happens automatically during release: https://github.com/TypeFox/monaco-languageclient/blob/bab5efae562129188375227d202e544a87177e9c/package.json#L23

I won't be able to have a look in October. If someone can review and merge, go ahead. After merging on master it will be available under next tag. I also published it under dev tag for downstream testing.

I've tested the dev release for our DSL editor. For us all existing behavior are still working correctly, and quickfix is now working as well.
We are not using the SignatureHelpContext or retrigger characters so I was not able to test those two additions.

+1
@PHameete Oh wow thank you for doing this!
I just spent the last 2 hours diving into all the code trying to figure out why the runtime was blowing up and this PR is 100% the fix to all of the problems I'm having. I would love to get this bumped and reviewed ASAP as well, otherwise I'm going to have to cherry-pick your build into my app.

@mhintzke13 this version is already published on npm as version 0.10.3-dev.3
Its just not reviewed/battle tested but you can try it out. I'm using this version myself and have had no issues so far. I don't use the full feature set of monaco though.

@PHameete oh ok awesome, that will make this much easier to use then.  Our application is still in its infancy, so I presume everything will work just fine once these runtime exceptions are fixed. I will give it a shot and let you know how things turn out. Thanks again!

@PHameete Everything seems to be working out pretty well so far except for this one issue.  I needed to hook into the MonacoLanguageClient middleware so I could handle Diagnostics in our application. However, when I tried to do so, the typings from vscode aren't available to the application.
This is the signature that is inside this file:
https://github.com/microsoft/vscode-languageserver-node/blob/153fa6316ab8991dfae25836780b66217f92efe2/client/src/client.ts#L448
And this is how I am trying to use it:

As you can see, I don't have access to the Diagnostic and Uri types from 'vscode'.  Have you worked around that at all yet? I'm not sure what the consequences would be if I tried to install 'vscode'.  I don't think this is directly related to this PR, so I can move this comment to Issues if it makes more sense.

@akosyakov can you review this if you have some time for it?

We use it in production for several week and everything works fine so far!


Binder has died

Any idea what this is or how does this happen?
Error: sp-react-native-in-app-updates checkNeedsUpdate error: Error: android.os.RemoteException: AppUpdateService : Binder has died.
  at anonymous(index.android.bundle:4:27)
  at anonymous(index.android.bundle:1:1)
  at res(node_modules/promise/setimmediate/es6-extensions.js:76:16)
  at Promise(node_modules/promise/setimmediate/core.js:56:11)
  at apply(native)
  at <global>(node_modules/react-native/Libraries/Core/Timers/JSTimers.js:212:80)
  at <global>(node_modules/react-native/Libraries/Core/Timers/JSTimers.js:489:3)
  at _callTimer(node_modules/react-native/Libraries/Core/Timers/JSTimers.js:86:3)
  at clearReactNativeMicrotask(node_modules/react-native/Libraries/Core/Timers/JSTimers.js:335:19)
  at MessageQueue(node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:241:3)
  at constructor(node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:60:19)
  at processCallbacks(node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:224:17)
  at flushedQueue(index.android.bundle:423:3)
  at invokeCallbackAndReturnFlushedQueue(index.android.bundle:390:3)

Hey @tsachit
I'm also seeing this error, were you able to find out a fix?

Hey @tsachit I'm also seeing this error, were you able to find out a fix?

Not yet, my guess is the process died while calling checkNeedsUpdate method. Not sure how do I fix that.

Hey @tsachit ,
Did you got anything which can fix this ?

Any way to fix it? I have the same error

any solution here?


Bug in Demo

Apparently there is a bug on http://www.developerdan.com/table-to-json/.
When I click convert,

This seems strange because the first row's points are 50, but the JSON is "disqualified".
Also, the 3rd header is Points, but JSON is "Score".

Look at the HTML. This example is showing options to modify results, it is not a bug.

In that case, you may want to explain that on the page. It seems to suggest that options are not being used:
  var table = $('#example-table').tableToJSON(); // Convert the table into a javascript object
  console.log(table);
  alert(JSON.stringify(table));

Yes, I completely agree. Pull requests welcome!

I wanted to update the docs, but I don't see how to do so. The issue is not on the readme in the repo. The issue is on http://www.developerdan.com/table-to-json/.

Try the gh-pages branch.

@Mottie - Thanks.