🐛[BUG]: SequentialSolver breaking when executed in parallel

Version
1.2.0
On which installation method(s) does this occur?
Pip
Describe the issue
While executing the taylor_green.py example using the SLURM directive srun, the solver breaks. I'm running the taylor_green.py example in parallel using 4 NVIDIA V100 16 GB graphics cards.
Minimum reproducible example
srun --ntasks-per-node 4 python3 taylor_green.py

Relevant log output
rm: cannot remove './outputs': No such file or directory

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

[W socket.cpp:663] [c10d] The client socket cannot be initialized to connect to [jwc09n000i.juwels]:7010 (errno: 97 - Address family not supported by protocol).
[W socket.cpp:436] [c10d] The server socket cannot be initialized on [::]:7010 (errno: 97 - Address family not supported by protocol).
[W socket.cpp:663] [c10d] The client socket cannot be initialized to connect to [jwc09n000i.juwels]:7010 (errno: 97 - Address family not supported by protocol).
[W socket.cpp:663] [c10d] The client socket cannot be initialized to connect to [jwc09n000i.juwels]:7010 (errno: 97 - Address family not supported by protocol).
[W socket.cpp:663] [c10d] The client socket cannot be initialized to connect to [jwc09n000i.juwels]:7010 (errno: 97 - Address family not supported by protocol).
/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/hydra.py:119: UserWarning: Future Hydra versions will no longer change working directory at job runtime by default.
See https://hydra.cc/docs/1.2/upgrades/1.1_to_1.2/changes_to_job_working_dir/ for more information.
  ret = run_job(
/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/hydra.py:119: UserWarning: Future Hydra versions will no longer change working directory at job runtime by default.
See https://hydra.cc/docs/1.2/upgrades/1.1_to_1.2/changes_to_job_working_dir/ for more information.
  ret = run_job(
/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/hydra.py:119: UserWarning: Future Hydra versions will no longer change working directory at job runtime by default.
See https://hydra.cc/docs/1.2/upgrades/1.1_to_1.2/changes_to_job_working_dir/ for more information.
  ret = run_job(
/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/hydra.py:119: UserWarning: Future Hydra versions will no longer change working directory at job runtime by default.
See https://hydra.cc/docs/1.2/upgrades/1.1_to_1.2/changes_to_job_working_dir/ for more information.
  ret = run_job(
Error executing job with overrides: []
Traceback (most recent call last):
  File "/p/project/rugshas/villalobos1/PINN/modulus-sym/examples/taylor_green/taylor_green.py", line 166, in <module>
    run()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/hydra/utils.py", line 104, in func_decorated
    _run_hydra(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 394, in _run_hydra
    _run_app(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 457, in _run_app
    run_and_report(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 223, in run_and_report
    raise ex
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 220, in run_and_report
Error executing job with overrides: []
    return func()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 458, in <lambda>
    lambda: hydra.run(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/hydra.py", line 132, in run
Traceback (most recent call last):
  File "/p/project/rugshas/villalobos1/PINN/modulus-sym/examples/taylor_green/taylor_green.py", line 166, in <module>
    _ = ret.return_value
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/core/utils.py", line 260, in return_value
    raise self._return_value
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/core/utils.py", line 186, in run_job
    ret.return_value = task_function(task_cfg)
  File "/p/project/rugshas/villalobos1/PINN/modulus-sym/examples/taylor_green/taylor_green.py", line 162, in run
    run()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/hydra/utils.py", line 104, in func_decorated
    slv.solve()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/solver/sequential.py", line 138, in solve
    _run_hydra(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 394, in _run_hydra
    self._train_loop(sigterm_handler)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 535, in _train_loop
    _run_app(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 457, in _run_app
    loss, losses = self._cuda_graph_training_step(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 716, in _cuda_graph_training_step
    run_and_report(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 223, in run_and_report
    self.loss_static, self.losses_static = self.compute_gradients(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 68, in adam_compute_gradients
Error executing job with overrides: []
    raise ex
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 220, in run_and_report
    losses_minibatch = self.compute_losses(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/solver/solver.py", line 66, in compute_losses
Traceback (most recent call last):
  File "/p/project/rugshas/villalobos1/PINN/modulus-sym/examples/taylor_green/taylor_green.py", line 166, in <module>
    return func()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 458, in <lambda>
    return self.domain.compute_losses(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/domain/domain.py", line 147, in compute_losses
    lambda: hydra.run(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/hydra.py", line 132, in run
    constraint.forward()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/domain/constraint/continuous.py", line 130, in forward
    _ = ret.return_value
    run()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/core/utils.py", line 260, in return_value
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/hydra/utils.py", line 104, in func_decorated
    self._output_vars = self.model(self._input_vars)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    raise self._return_value
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/core/utils.py", line 186, in run_job
    _run_hydra(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 394, in _run_hydra
Error executing job with overrides: []
    ret.return_value = task_function(task_cfg)
  File "/p/project/rugshas/villalobos1/PINN/modulus-sym/examples/taylor_green/taylor_green.py", line 162, in run
    _run_app(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 457, in _run_app
    return self._call_impl(*args, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
Traceback (most recent call last):
  File "/p/project/rugshas/villalobos1/PINN/modulus-sym/examples/taylor_green/taylor_green.py", line 166, in <module>
    slv.solve()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/solver/sequential.py", line 138, in solve
    run_and_report(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 223, in run_and_report
    self._train_loop(sigterm_handler)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 535, in _train_loop
    raise ex
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 220, in run_and_report
    return forward_call(*args, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/parallel/distributed.py", line 1515, in forward
    run()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/hydra/utils.py", line 104, in func_decorated
    loss, losses = self._cuda_graph_training_step(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 716, in _cuda_graph_training_step
    return func()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 458, in <lambda>
    _run_hydra(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 394, in _run_hydra
    lambda: hydra.run(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/hydra.py", line 132, in run
    self.loss_static, self.losses_static = self.compute_gradients(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 68, in adam_compute_gradients
    _run_app(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 457, in _run_app
    inputs, kwargs = self._pre_forward(*inputs, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/parallel/distributed.py", line 1409, in _pre_forward
    losses_minibatch = self.compute_losses(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/solver/solver.py", line 66, in compute_losses
    _ = ret.return_value
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/core/utils.py", line 260, in return_value
    run_and_report(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 223, in run_and_report
    return self.domain.compute_losses(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/domain/domain.py", line 147, in compute_losses
    raise self._return_value
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/core/utils.py", line 186, in run_job
    raise ex
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 220, in run_and_report
    constraint.forward()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/domain/constraint/continuous.py", line 130, in forward
    if torch.is_grad_enabled() and self.reducer._rebuild_buckets():
RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates that your module has parameters that were not used in producing loss. You can enable unused parameter detection by passing the keyword argument `find_unused_parameters=True` to `torch.nn.parallel.DistributedDataParallel`, and by
making sure all `forward` function outputs participate in calculating loss.
If you already have done the above, then the distributed data parallel module wasn't able to locate the output tensors in the return value of your module's `forward` function. Please include the loss function and the structure of the return value of `forward` of your module when reporting this issue (e.g. list, dict, iterable).
Parameter indices which did not receive grad for rank 0: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 In addition, you can set the environment variable TORCH_DISTRIBUTED_DEBUG to either INFO or DETAIL to print out information about which particular parameters did not receive gradient on this rank as part of this error
    ret.return_value = task_function(task_cfg)
  File "/p/project/rugshas/villalobos1/PINN/modulus-sym/examples/taylor_green/taylor_green.py", line 162, in run
    return func()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/utils.py", line 458, in <lambda>
    self._output_vars = self.model(self._input_vars)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    slv.solve()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/solver/sequential.py", line 138, in solve
    lambda: hydra.run(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/_internal/hydra.py", line 132, in run
    self._train_loop(sigterm_handler)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 535, in _train_loop
    _ = ret.return_value
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/core/utils.py", line 260, in return_value
    return self._call_impl(*args, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    raise self._return_value
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/hydra/core/utils.py", line 186, in run_job
    loss, losses = self._cuda_graph_training_step(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 716, in _cuda_graph_training_step
    ret.return_value = task_function(task_cfg)
  File "/p/project/rugshas/villalobos1/PINN/modulus-sym/examples/taylor_green/taylor_green.py", line 162, in run
    slv.solve()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/solver/sequential.py", line 138, in solve
    return forward_call(*args, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/parallel/distributed.py", line 1515, in forward
    self._train_loop(sigterm_handler)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 535, in _train_loop
    self.loss_static, self.losses_static = self.compute_gradients(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 68, in adam_compute_gradients
    loss, losses = self._cuda_graph_training_step(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 716, in _cuda_graph_training_step
    losses_minibatch = self.compute_losses(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/solver/solver.py", line 66, in compute_losses
    inputs, kwargs = self._pre_forward(*inputs, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/parallel/distributed.py", line 1409, in _pre_forward
    return self.domain.compute_losses(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/domain/domain.py", line 147, in compute_losses
    self.loss_static, self.losses_static = self.compute_gradients(
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/trainer.py", line 68, in adam_compute_gradients
    constraint.forward()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/domain/constraint/continuous.py", line 130, in forward
    losses_minibatch = self.compute_losses(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/solver/solver.py", line 66, in compute_losses
    if torch.is_grad_enabled() and self.reducer._rebuild_buckets():
RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates that your module has parameters that were not used in producing loss. You can enable unused parameter detection by passing the keyword argument `find_unused_parameters=True` to `torch.nn.parallel.DistributedDataParallel`, and by
making sure all `forward` function outputs participate in calculating loss.
If you already have done the above, then the distributed data parallel module wasn't able to locate the output tensors in the return value of your module's `forward` function. Please include the loss function and the structure of the return value of `forward` of your module when reporting this issue (e.g. list, dict, iterable).
Parameter indices which did not receive grad for rank 3: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 In addition, you can set the environment variable TORCH_DISTRIBUTED_DEBUG to either INFO or DETAIL to print out information about which particular parameters did not receive gradient on this rank as part of this error
    return self.domain.compute_losses(step)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/domain/domain.py", line 147, in compute_losses
    self._output_vars = self.model(self._input_vars)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    constraint.forward()
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/modulus/sym/domain/constraint/continuous.py", line 130, in forward
    self._output_vars = self.model(self._input_vars)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return self._call_impl(*args, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/parallel/distributed.py", line 1515, in forward
    return forward_call(*args, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/parallel/distributed.py", line 1515, in forward
    inputs, kwargs = self._pre_forward(*inputs, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/parallel/distributed.py", line 1409, in _pre_forward
    inputs, kwargs = self._pre_forward(*inputs, **kwargs)
  File "/p/project/rugshas/villalobos1/miniconda3/envs/modulus/lib/python3.10/site-packages/torch/nn/parallel/distributed.py", line 1409, in _pre_forward
    if torch.is_grad_enabled() and self.reducer._rebuild_buckets():
RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates that your module has parameters that were not used in producing loss. You can enable unused parameter detection by passing the keyword argument `find_unused_parameters=True` to `torch.nn.parallel.DistributedDataParallel`, and by
making sure all `forward` function outputs participate in calculating loss.
If you already have done the above, then the distributed data parallel module wasn't able to locate the output tensors in the return value of your module's `forward` function. Please include the loss function and the structure of the return value of `forward` of your module when reporting this issue (e.g. list, dict, iterable).
Parameter indices which did not receive grad for rank 2: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 In addition, you can set the environment variable TORCH_DISTRIBUTED_DEBUG to either INFO or DETAIL to print out information about which particular parameters did not receive gradient on this rank as part of this error
    if torch.is_grad_enabled() and self.reducer._rebuild_buckets():
RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates that your module has parameters that were not used in producing loss. You can enable unused parameter detection by passing the keyword argument `find_unused_parameters=True` to `torch.nn.parallel.DistributedDataParallel`, and by
making sure all `forward` function outputs participate in calculating loss.
If you already have done the above, then the distributed data parallel module wasn't able to locate the output tensors in the return value of your module's `forward` function. Please include the loss function and the structure of the return value of `forward` of your module when reporting this issue (e.g. list, dict, iterable).
Parameter indices which did not receive grad for rank 1: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 In addition, you can set the environment variable TORCH_DISTRIBUTED_DEBUG to either INFO or DETAIL to print out information about which particular parameters did not receive gradient on this rank as part of this error
srun: error: jwc09n000: tasks 0-3: Exited with exit code 1

Environment details
I'm using the JUWELS supercomputer at FZJ, using the 1.2.0 Modulus pip installation.

Other/Misc.
No response

@jkhansell I'm not sure if the issue is stemming from the conda issues at the start of the log or something else. Can you try running a very simple script with the same distributed config as your job above to see if this minimal example works?
from modulus.sym.distributed import DistributedManager

DistributedManager.initialize()
manager = DistributedManager()
print(f"rank: {manager.rank} of {manager.world_size}, "
      f"initialization method: {manager._initialization_method}")

I am also facing the same issue, when using the sequential solver.

@leolalson Thanks. Can you run the small script above and share the log here as well to help debug this issue?

[W socket.cpp:663] [c10d] The client socket cannot be initialized to connect to [gpu07]:12355 (errno: 97 - Address family not supported by protocol).
[W socket.cpp:436] [c10d] The server socket cannot be initialized on [::]:12355 (errno: 97 - Address family not supported by protocol).
[W socket.cpp:663] [c10d] The client socket cannot be initialized to connect to [gpu07]:12355 (errno: 97 - Address family not supported by protocol).
/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/hydra/_internal/hydra.py:119: UserWarning: Future Hydra versions will no longer change working directory at job runtime by default.
See https://hydra.cc/docs/1.2/upgrades/1.1_to_1.2/changes_to_job_working_dir/ for more information.
ret = run_job(
/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/hydra/_internal/hydra.py:119: UserWarning: Future Hydra versions will no longer change working directory at job runtime by default.
See https://hydra.cc/docs/1.2/upgrades/1.1_to_1.2/changes_to_job_working_dir/ for more information.
ret = run_job(
Error executing job with overrides: []
Error executing job with overrides: []
Traceback (most recent call last):
File "/glb/data/ptxd_dash/inlvi6/ffd_modulus/multigpu/taylor_green3/taylor_green.py", line 162, in run
slv.solve()
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/solver/sequential.py", line 138, in solve
self._train_loop(sigterm_handler)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/trainer.py", line 543, in _train_loop
loss, losses = self._cuda_graph_training_step(step)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/trainer.py", line 724, in _cuda_graph_training_step
self.loss_static, self.losses_static = self.compute_gradients(
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/trainer.py", line 76, in adam_compute_gradients
losses_minibatch = self.compute_losses(step)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/solver/solver.py", line 66, in compute_losses
return self.domain.compute_losses(step)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/domain/domain.py", line 147, in compute_losses
constraint.forward()
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/domain/constraint/continuous.py", line 130, in forward
self._output_vars = self.model(self._input_vars)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
return forward_call(*args, **kwargs)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/torch/nn/parallel/distributed.py", line 1515, in forward
inputs, kwargs = self._pre_forward(*inputs, **kwargs)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/torch/nn/parallel/distributed.py", line 1409, in _pre_forward
if torch.is_grad_enabled() and self.reducer._rebuild_buckets():
RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates that your module has parameters that were not used in producing loss. You can enable unused parameter detection by passing the keyword argument find_unused_parameters=True to torch.nn.parallel.DistributedDataParallel, and by
making sure all forward function outputs participate in calculating loss.
If you already have done the above, then the distributed data parallel module wasn't able to locate the output tensors in the return value of your module's forward function. Please include the loss function and the structure of the return value of forward of your module when reporting this issue (e.g. list, dict, iterable).
Parameter indices which did not receive grad for rank 1: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
In addition, you can set the environment variable TORCH_DISTRIBUTED_DEBUG to either INFO or DETAIL to print out information about which particular parameters did not receive gradient on this rank as part of this error
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
Traceback (most recent call last):
File "/glb/data/ptxd_dash/inlvi6/ffd_modulus/multigpu/taylor_green3/taylor_green.py", line 162, in run
slv.solve()
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/solver/sequential.py", line 138, in solve
self._train_loop(sigterm_handler)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/trainer.py", line 543, in _train_loop
loss, losses = self._cuda_graph_training_step(step)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/trainer.py", line 724, in _cuda_graph_training_step
self.loss_static, self.losses_static = self.compute_gradients(
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/trainer.py", line 76, in adam_compute_gradients
losses_minibatch = self.compute_losses(step)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/solver/solver.py", line 66, in compute_losses
return self.domain.compute_losses(step)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/domain/domain.py", line 147, in compute_losses
constraint.forward()
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/modulus/sym/domain/constraint/continuous.py", line 130, in forward
self._output_vars = self.model(self._input_vars)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
return forward_call(*args, **kwargs)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/torch/nn/parallel/distributed.py", line 1515, in forward
inputs, kwargs = self._pre_forward(*inputs, **kwargs)
File "/glb/data/ptxd_dash/inlvi6/apps/anaconda3/envs/py39/lib/python3.9/site-packages/torch/nn/parallel/distributed.py", line 1409, in _pre_forward
if torch.is_grad_enabled() and self.reducer._rebuild_buckets():
RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates that your module has parameters that were not used in producing loss. You can enable unused parameter detection by passing the keyword argument find_unused_parameters=True to torch.nn.parallel.DistributedDataParallel, and by
making sure all forward function outputs participate in calculating loss.
If you already have done the above, then the distributed data parallel module wasn't able to locate the output tensors in the return value of your module's forward function. Please include the loss function and the structure of the return value of forward of your module when reporting this issue (e.g. list, dict, iterable).
Parameter indices which did not receive grad for rank 0: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
In addition, you can set the environment variable TORCH_DISTRIBUTED_DEBUG to either INFO or DETAIL to print out information about which particular parameters did not receive gradient on this rank as part of this error
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
srun: error: gpu07: tasks 0-1: Exited with exit code 1

@akshaysubr Any update on this issue?

@leolalson Looks like the issue is because certain parameters of the model are not involved in the loss function computation. For example, the surface_pde example uses the Poisson equation and because of that some linear parts of the model don't actually impact the loss function. You can try avoiding this issue by setting find_unused_parameters: True in the config like in the surface_pde example: https://github.com/NVIDIA/modulus-sym/blob/f59eba4d852a65cc80f703da754a87e51ba44d9d/examples/surface_pde/sphere/conf/config.yaml#L27


Programming trajectories

Thanks for making your work open source! I want to ask which files in the programming trajectories folder (programming/root/) contain solutions for the pass@1 numbers for HumanEval and MBPP reported in the paper?
Thanks!

Hi,
The results for GPT-4 are in test_mcts_hard_acc_full_4tst_temp_gpt4 and the results for GPT-3.5 are in test_mcts_hard_acc_full_4tst_temp_2
Hope this helps!

Thanks for your response! Is it correct that the the MBPP result in the paper was produced with only GPT-3.5?

Yes, we only have results for GPT-3.5 on MBPP

Thanks! For the GPT-4 results on HumanEval, I am having trouble getting the same pass@1 number as reported in the paper. I want to make sure I am doing things correctly: specifically, I am extracting solutions from test_mcts_hard_acc_full_4tst_temp_gpt4/humaneval-py._mcts_8_gpt-4_pass_at_k_1_py.jsonl by collecting the "solution" key for each entry. Then I used the evalplus package (https://github.com/evalplus/evalplus) to evaluate extracted solutions. Evalplus reports both the base accuracy (using the original test cases in the dataset) and their enhanced version. Your code suggests you obtained results with the original test cases.
When I did so, I expected the pass@1 to be around 92.1% (since you used 160 problems out of 164, so 94.4 * 160 / 164), but instead I got only 73.8%. Is there anything I am missing in my evaluation pipeline? I attached my extracted programs. To run eval you need to change the extension from .json to .jsonl, as github doesn't support jsonl file upload. Thanks for your time.
LATS_openai_humaneval_programs.json


Restyled nav bar.

i approved but just wondering before i merge, you commented out your functions at the bottom of the page. Just wondering if you meant to do that because your page wont run if you do so


Fix #211 - Update grunt test command

Seems like @sedge has unassigned himself from this so thought I would give it a shot

None of this code is still being used, going to close this.  Good to see you two in a PR again, brings back good memories.


[Task]: Very high level estimate for IAM role based auth in AWS S3

Is there an existing issue for this?

[X] I have searched the existing issues

SubTasks
ref

Document available here.


/metadata endpoint should expose all the available keys

The IDP- and SP-metadata endpoints should add KeyDescriptor-elements for all (or all non-expired) available keys to accommodate for a key-rollover.
This has been discussed multiple times, but every time I have to do key rollover I run into this issue, esp. because we sign our AuthnRequests towards IDPs.
See this old thread; https://groups.google.com/g/openconext/c/1oexBnx5KHA/m/Z9V9vYWIBwAJ

The status quo is that engineblock metadata generation does not support this classic SAML keyrollover. Engineblock will accept them, so if you generate xml that includes both keys you can perform this key rollover - you can just not use the Engineblock built in generated metadata currently.
Engineblock does support a gradual key rollover for SP's (IdP endpoint) via generated metadata that lists a key and an SSO location with that key ID in the same metadata. This means that any SP consuming that metadata has a working combination. This has the advantage that the rollover is gradual (SPs that consume the new metadata will be using the new key immediately) and more importantly that one can monitor progress of phase out of the old key and which SPs still use it.
Adding all configured keys to the generated metadata endpoints should be possible. We just need to ensure not to break the gradual rollover scenario. Endpoints with a specific keyID should therefore only contain the respective key.


Add graphviz build dependency

Adds libgraphviz-dev to the linux install instructions. Without it installation fails with pygraphviz/graphviz_wrap.c:2711:10: fatal error: graphviz/cgraph.h: No such file or directory.

Thank you for your contribution! Please don't hesitate if there is anything else you want to contribute!


Accessibility support for treebeard

We are using treebeard component for our UI, and it works great! Our UI needs to meet WCAG 2, but current version of treebeard doesn't provide any support for accessibility, such as aria attributes, role, etc.
Currently treebeard only supports some customization but not the sub-components that we need to add the aria attributes to. According to W3C document, these attributes, such as aria-expanded and role, need to be on the tree node, which contains the sub-nodes. However, the customization via decorator could only apply to the header row (toggle, header, or their container) of the subtree. So I can only add aria attributes on the header, but not the tree nodes.

Do you have any plan to add accessibility support? Thanks!

Hi @lisaeatsworld we don't have any plan to add accessibility support for now, anyway if you have any idea we expect your contribution.
Thanks!


minor update to the doc to make this work

The getting started is in a single file on purpose (to keep thing simple) so I am not ok for the change in 3.md. Can you make a simpler PR (or adjust this one) for the first change? Thanks!

My bad on 3.md, from the code snippet I assumed that it was in a new file, so had some confusion! :sweat_smile:

@ankitsinghaniyaz do you think the tutorial will be more clear if it was split in several files? I was thinking having a single file will make it even easier to follow but I may be wrong :)

@MoOx I think the idea of keeping it in the same file is good for getting started. If we were to move it to a new file then we may have to answer questions like where do we want to keep the files, so in the start, we can keep the choices minimum!
Also if we can just add a line about adding the content to the same file, so that someone skimming through the docs don't get confused. It may just be me doing too much react. :sweat_smile:


[BUG] ClientSecretCredential.getToken().block() will hang when parallelism is high

Describe the bug
When ClientSecretCredential.getToken().block() gets called on ForkJoinPool.commonPool with parallelism greater than the pool's configured parallelism(by default its the cpuCoreCount(-1)), it'll get stuck forever.
This issue is reported by SAP. See IcM: https://portal.microsofticm.com/imp/v3/incidents/incident/492551519/summary
Reason they need to do auth in parallel is because they have 600+ subs, and they need one TokenCredential for each of the subs.
Exception or Stack Trace
Thread dump
"ForkJoinPool.commonPool-worker-1" #63 daemon prio=5 os_prio=0 cpu=400.78ms elapsed=3042.78s allocated=33882K defined_classes=188 tid=0x00007f158c2c4790 nid=0x73 waiting on condition  [0x00007f157a5f6000]
   java.lang.Thread.State: WAITING (parking)
	at<EMAIL_ADDRESS>Method)
	- parking to wait for  <0x000000067aa2f2d8> (a java.util.concurrent.CountDownLatch$Sync)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.10/LockSupport.java:211)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@17.0.10/AbstractQueuedSynchronizer.java:715)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(java.base@17.0.10/AbstractQueuedSynchronizer.java:1047)
	at java.util.concurrent.CountDownLatch.await(java.base@17.0.10/CountDownLatch.java:230)
	at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:87)
	at reactor.core.publisher.Flux.blockLast(Flux.java:2761)
	at com.azure.core.util.paging.ContinuablePagedByIteratorBase.requestPage(ContinuablePagedByIteratorBase.java:102)
	- locked <0x000000067aa2f370> (a com.azure.core.util.paging.ContinuablePagedByItemIterable$ContinuablePagedByItemIterator)
	at com.azure.core.util.paging.ContinuablePagedByItemIterable$ContinuablePagedByItemIterator.(ContinuablePagedByItemIterable.java:75)
	at com.azure.core.util.paging.ContinuablePagedByItemIterable.iterator(ContinuablePagedByItemIterable.java:55)
	at com.azure.core.util.paging.ContinuablePagedIterable.iterator(ContinuablePagedIterable.java:141)
	at com.azure.resourcemanager.resources.fluentcore.utils.PagedConverter$PagedIterableImpl.iterator(PagedConverter.java:225)
	at com.hybris.cloud.automation.azureintegration.AzureSDKService.getAzureSubscriptions(AzureSDKService.java:547)
	at com.hybris.cloud.automation.azureintegration.AzureSDKService.check(AzureSDKService.java:110)
	at com.hybris.cloud.automation.azureintegration.spn.AzureSubscriptionAndSpnsDefaultSpnConnectionCheck.status(AzureSubscriptionAndSpnsDefaultSpnConnectionCheck.java:71)
	at com.hybris.cloud.automation.azureintegration.spn.AzureSubscriptionAndSpnsDefaultSpnConnectionCheck.status(AzureSubscriptionAndSpnsDefaultSpnConnectionCheck.java:30)
	at com.hybris.cloud.automation.cmdbintegration.connectioncheck.ConnectionCheckService.check(ConnectionCheckService.java:127)
	at com.hybris.cloud.automation.cmdbintegration.connectioncheck.ConnectionCheckService.lambda$connectionCheck$4(ConnectionCheckService.java:104)
	at com.hybris.cloud.automation.cmdbintegration.connectioncheck.ConnectionCheckService$$Lambda$2902/0x0000000801d60518.apply(Unknown Source)
	at java.util.stream.Collectors.lambda$toMap$68(java.base@17.0.10/Collectors.java:1674)
	at<EMAIL_ADDRESS>Source)
	at java.util.stream.ReduceOps$3ReducingSink.accept(java.base@17.0.10/ReduceOps.java:169)
	at java.util.stream.ReferencePipeline$2$1.accept(java.base@17.0.10/ReferencePipeline.java:179)
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(java.base@17.0.10/Spliterators.java:992)
	at java.util.stream.AbstractPipeline.copyInto(java.base@17.0.10/AbstractPipeline.java:509)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(java.base@17.0.10/AbstractPipeline.java:499)
	at java.util.stream.ReduceOps$ReduceTask.doLeaf(java.base@17.0.10/ReduceOps.java:960)
	at java.util.stream.ReduceOps$ReduceTask.doLeaf(java.base@17.0.10/ReduceOps.java:934)
	at java.util.stream.AbstractTask.compute(java.base@17.0.10/AbstractTask.java:327)
	at java.util.concurrent.CountedCompleter.exec(java.base@17.0.10/CountedCompleter.java:754)
	at java.util.concurrent.ForkJoinTask.doExec(java.base@17.0.10/ForkJoinTask.java:373)
	at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(java.base@17.0.10/ForkJoinPool.java:1182)
	at java.util.concurrent.ForkJoinPool.scan(java.base@17.0.10/ForkJoinPool.java:1655)
	at java.util.concurrent.ForkJoinPool.runWorker(java.base@17.0.10/ForkJoinPool.java:1622)
	at java.util.concurrent.ForkJoinWorkerThread.run(java.base@17.0.10/ForkJoinWorkerThread.java:165)
To Reproduce
See this test: https://github.com/XiaofeiCao/azure-identity-test/blob/main/src/test/java/com/xiaofei/AzureIdentityBlockTest.java
One can clone and repo and run the test.
Code Snippet
IntStream.range(1, parallelism).parallel().forEach(iii -> {
  credential.getToken(new TokenRequestContext().addScopes("https://management.core.windows.net//.default")).block();
  // use getTokenSync will also resolve the hang
  //            credential.getTokenSync(new TokenRequestContext().addScopes("https://management.core.windows.net//.default"));

  System.out.println("fetched for " + iii);
});

Expected behavior
We suspect that it's due to caller threads and ClientSecretCredential's execution threads are shared from the same ForkJoinPool.commonPool, as making the ClientSecretCredential run on custom thread pool will resolve the hang. Though currently we are not 100% sure it's the exact case that customer experienced.
May need your guidance.
Screenshots
If applicable, add screenshots to help explain your problem.
Setup (please complete the following information):

OS: win or mac
IDE: N/A
Library/Libraries: com.azure:azure-identity:1.12.0
Java version: 11 or 17
App Server/Environment: Tomcat(SAP) or local JVM
Frameworks: Spring(SAP) or none

If you suspect a dependency version mismatch (e.g. you see NoClassDefFoundError, NoSuchMethodError or similar), please check out Troubleshoot dependency version conflict article first. If it doesn't provide solution for the problem, please provide:

verbose dependency tree (mvn dependency:tree -Dverbose)
exception message, full stack trace, and any available logs

Additional context
Add any other context about the problem here.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[x] Repro Steps Added
[x] Setup information Added

/cc @weidongxu-microsoft @dennis-menge

From the thread dump, there is only 3 ForkJoinPool.commonPool thread.
All of them is under blocking call of AzureSDKService.getAzureSubscriptions (that could take 1 seconds as it send HTTP request)
Still checking whether customer put the call to ForkJoinPool.commonPool thread and causes the bottleneck there.
But the azure-identity default using ForkJoinPool.commonPool could be a problem as well.

    private void repro() {
        IntStream.range(1, 15).parallel().forEach(iii -> {
            Mono.empty()
                    .switchIfEmpty(Mono.defer(() -> Mono.fromFuture(() -> CompletableFuture.supplyAsync(() -> {
                        try {
                            Thread.sleep(1000);
                        } catch (InterruptedException e) {
                            throw new RuntimeException(e);
                        }
                        System.out.println("I am alive " + iii + " " + Thread.currentThread().getName() + iii);
                        return null;
                    })))
            ).block();
        });
    }

While we work with Msal to add a more resilient threading model.
Alternatively user can specify the executor service directly on the credential.
ExecutorService executorService = Executors.newCachedThreadPool(); // Get a non-default thread pool.
try {
final ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder()
.clientId("")
.clientSecret("")
.tenantId("")
.executorService(executorService) // ExecutorService explicitly given to CredentialBuilder.
.build();
// Build a client(s) that uses the Credential object created above.
final SecretClient secretClient = new SecretClientBuilder()
    .vaultUrl("<your-kay-vault-URI>")
    .credential(clientSecretCredential)
    .buildClient();

// Execute all desired operations.
final KeyVaultSecret secret = secretClient.getSecret("<secret-name>");

System.out.printf("Retrieved secret with name \"%s\" and value \"%s\"\n", secret.getName(),
    secret.getValue());

} finally {
// This block will be reached after the above code is executed or if an uncaught exception is raised.
// It is important to shut down the ExecutorService after it is no longer required (i.e. once the client(s)
// using the Credential object with the ExecutorService will not be used any longer).

// Use the following if it is possible there are still operations that require authentication running
// asynchronously. Otherwise, it is safe to use the alternative "executorService.shutdownNow();"
executorService.shutdown();

}


Create PR Commenter

Thank you for contributing! Please check the following things before submiting your PR:
Required:

[x] I have read and followed the contributing guidelines

If necessary:

[ ] I have updated the README and documentation.
[ ] I have updated the ChangeLog with the changes I have made.

Adds a Action that comments on Pull requests which have been labeled with specific labels.
The goal here is to have an easy way to mark a PR as mergable by adding a special Label and the Action would then send a Message saying that the PR is now ready for merging.
It could also get expanded to allow canned responses to specific labels for issues and/or PRs.

Closes #

Note: we will close your PR without comment if you do not check the required boxes above and provide ALL requested information.

I think you created for:
....Thanks for merging this without even asking if it is ready. Jesus man, show patience and ASK first, because as it was mentioned in the comment will I need to update the Release date first.

More or less.
It's just another step to make sure that a PR is actually ready, because it could happen that you click "Ready for review" but then notice that something needs a change, but it would then be too late.
(It's also easier imo than typing a message that your PR is ready.  It can't find the label-commenter-config.yml because it isn't on the main branch yet.

Ok, is it a GitHub app. Did you give access to our org.

Ok, is it a GitHub app. Did you give access to our org.

No. It's a GitHub Action. Not an app.

Yep, I just forgot.

Here is an example of what it can do:
https://github.com/PlaceholderAPI/PlaceholderAPI/pull/628#issuecomment-839170062
But in summary it can do this:

Comment on Pull requests and/or issue with canned responses
Close or reopen a Pull request/Issue
Lock a Pull request/Issue with an optional reason

What it does all depends on what you configured in the label-commenter-config.yml
More info: https://github.com/peaceiris/actions-label-commenter

But I think the current config is not set for that, can you set that.

But I think the current config is not set for that, can you set that.

Not sure what you mean with that.

But I think the current config is not set for that, can you set that.

Not sure what you mean with that.

I meant that the current configuration does not make the bot to comment when we are not following the contribution guidelines.

I meant that the current configuration does not make the bot to comment when we are not following the contribution guidelines. Can you set it

Added comments now for when Issues and PRs are (un)labeled with the "invalid" label.
Should the action also close issues/PRs and re-open them when they are labeled/unlabeled with invalid? Or would that be too aggressive?

It would be better if it's closed when invalid

It would be better if it's closed when invalid

added that. Is it good now?

Now it's cool, @abhijoshi2k plz review

Can we also add
- name: duplicate
    labeled:
      issue:
        body: This issue already exists.
        action: close

Waiting for @abhijoshi2k


[Core] Touch Event compability

In #111 a user reported some strange behaviour. Turns out it was a compability issue with Windows 8.x. I have to rethink how I register events. Right now it is based on detection... and as of now detection is hacky at best since it is basically broken!
Solution Assume every device is a touch-device and write events from there.
Update As of 87fe4c78d26eb0be28daf3bb81670648efc324bf new event handling has been implemented that does not discriminate on devices... instead it binds all events.

[x] Update event handling
[x] W3C touch handling
[ ] MS touch handling (Win 8 etc)
[ ] Multitouch/Gestures

BROWSER TESTING

[x] Chrome
[x] Firefox
[x] IE
[x] Safari

DEVICE TESTING

[x] Android - Phone
[x] Android - Tablet
[x] OSX - Desktop
[x] OSX - iPad
[ ] OSX - iPhone
[x] Windows 7 - Desktop
[x] Windows 8 - Desktop
[x] Windows 8 - Touch
[ ] Windows 8 - Mobile
[ ] Windows 10 - Desktop
[ ] Windows 10 - Touch No drag
[ ] Windows 10 - Mobile
[x] Linux - Desktop
[ ] Linux - Touch
[ ] Linux - Phone

Touch is simply disabled in NT 6.2/6.3 now

http://stackoverflow.com/questions/7018919/how-to-bind-touchstart-and-click-events-but-not-respond-to-both
https://developers.google.com/mobile/articles/fast_buttons?csw=1#ghost

Interesting reads:

http://www.stucox.com/blog/you-cant-detect-a-touchscreen/
http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript
https://github.com/Modernizr/Modernizr/issues/548

@ComputeLinux @staticextasy
I have made some changes to the touch event binding. Could you check if you get the same problems [as in the past] when looking at the demo site ? Would be highly appreciated :smile:

@andersevenrud Alright I was able to test a couple of devices, so here is what I found
Windows 8 Desktop - Worked fine, no problems with single or multi-windows open. (Firefox / Chrome)
Windows 8 Touch - I have a Dell touch screen monitor so I can test this out, no problems with any programs. Maybe a little lag here and there but that's probably because I have a very low spec VM running but we can probably get more optimization with later down the road. (Firefox / Chrome)
Android Tablet - Worked fine, little lag due to the VM and that it was transmitting over a saturated Wifi link but handled itself pretty well despite those conditions. Only thing that I couldn't use was the paint program to draw a happy face. Also note that it scaled well when I would go from portrait mode to landscape mode and I tried landscape to portrait. Although I did have a graphical glitch when I would separate two program windows and go to landscape to portrait. (Chrome)

@junland Awesome. More things I can check off the list :)

Only thing that I couldn't use was the paint program to draw a happy face.

I knew I had forgotten to add [the newest] compability somewhere. Thanks. I'll fix that!

Although I did have a graphical glitch when I would separate two program windows and go to landscape to portrait. (Chrome)

I have noticed this as well. You can actually replicate this using the Emulator in Chrome. It seems that Webkit has some problems with the overflow in some cases. I don't know if this is a bug or a problem I have created with my CSS... but will investegate this further.

I found a JS library to handle touch, I know right now you can do it because touch is just emulating a mouse, but this library handles multi-touch and gestures. http://hammerjs.github.io/

@junland I am familiar with that library (use it a lot at work). The things is, one of the things about OS.js is that it does not depend on any third-party stuff in the client core/default packages, and I think I want to keep it this way.
I however found something that could be used to write something custom. Under 200 lines and seem to work just as I want: https://github.com/rasismeiro/touch. Only downside is, no multi-touch... but I don't see any use of that in the current UI anyway.
This would mean that if a user wants more advanced touch support in their app, they'd have to include the script in the package.
What do you think about that ? :)

@andersevenrud Ahhh yea that's fine. :)

Windows 10 seems to introduce some problems, indeed. I need to create MSPointer event handling or something. Just tried on a Surface, and dragging did not work.

@andersevenrud Where would the 3rd party libraries go? Let's say I wanted to add io.js (Just as a example)? Because I want to add bash support (Even though I can just do it with child process in pure js) I would like to add a js library where I can just call bash commands from the server. I might even just go ahead and just write a API call :).

You have a couple of options:
Add to preloader
Copy file into dist/vendor/. Then create a file named ex src/conf/900-my-config.json (or edit 110-frontend.json, but not recommended)

{
  "settings" : {
    "frontend" : {
      "Core" : {
        "Preloads":         {
          "my-library": {"type": "javascript", "src": "/vendor/my-library.js"}
        }
      }
    }
  }
}

Then run grunt config
Add as an extension
http://os.js.org/doc/tutorials/extend-client-api.html

FYI If you are planning on making something future-proff, I'd suggest using gui-ng branch to avoid any rewrites

I am also changing the configuration stuff (simplified) in this branch, so a heads up there too.

You have a couple of options:

Awesome, and just specify require(my-library.js:global) in the main js files of the packages that require that specific package?

FYI If you are planning on making something future-proff, I'd suggest using gui-ng branch to avoid any
rewrites

Noted!

I am also changing the configuration stuff (simplified) in this branch, so a heads up there too.

Cool!

Awesome, and just specify require(my-library.js:global) in the main js files of the packages that require that specific package?

You don't have to "load" anything. If it is set in the preloader or you are using an extension, everything is loaded by the time the desktop is initialized.
But if you are using requirejs, then just do the require() stuff in the Application code before you create any windows etc.
Ex: https://github.com/andersevenrud/OS.js-v2/blob/gui-ng/src/packages/default/About/main.js#L72

@andersevenrud Got it!

I am closing this issue in favour of #329.
This is something that will receive closer attention in the coming months (and I even have someone to help me this time), so look in #329 if you're interested in following the progress :)


Prometheus documentation needs to be updated related to OpenShift and Kubernetes

Documentation here

kubectl apply -f prometheus/role-openshift.yaml does no longer exist
kubectl apply -f prometheus/role-all.yaml does no longer exist

I made the documentation clearer.  See these commits:
https://github.com/IBM/operator-sample-go/commit/4a0a034506c19389c6f1d475783f3e58a37067ff
https://github.com/IBM/operator-sample-go/commit/a1fea886863a8f6918da9f209899d67957106d14


feat: op_1add impl

[x] issue https://github.com/keep-starknet-strange/shinigami/issues/20
[x] follows contribution guide
[x] code change includes tests

Thank you @okhaimie-dev , great work!


feat(react-props): add exercise 01

migrated from https://codesandbox.io/s/react-props-exercise-box-start-ekp84d

I have renamed the exercise and moved it into a separate folder for react props exercises.


variables not showing up

Running remote to a gdbserver (v9.1) on arm but my variables does not show up. If I use gdb cli I can print the variable names. Noticed the following error message;
The variable itself has the following text next to it: "Invalid variable attributes".
A notification popping up says the following;
A syntax error in expression, near `'. (from data-evaluate-expression --thread 1 --frame 0 static_cast)

Kitty, can you please recheck with valuesFormatting configuration option adjusted?
If the different options don't work out, can you please share your launch configuration and a trace of the communication (using "printCalls": true, "showDevDebugOutput": true)?

I guess a plain p yourvar in the debug console works, too, doesn't it? Otherwise there would be a bigger problem.

Thanks, if I disable it then it works  "valuesFormatting": "disabled".

You may want to also try prettyPrinters.
I any case: could you please add a log run with the default "valuesFormatting": "parseText"? This could allow someone to have a deeper look and possibly fix that, too.

I guess a plain p yourvar in the debug console works, too, doesn't it? Otherwise there would be a bigger problem.

Yes always.

Not sure what goes wrong, but "disabled" and prettyPrinters works. Here is the output when running with parseText.
163-stack-list-variables --thread 6 --frame 0 --simple-values
GDB -> App: {"token":163,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["variables",[[["name","this"],["arg","1"],["type","io::Event * const"],["value","0xf6d1d5c0"]],[["name","this@entry"],["arg","1"],["type","io::Event * const"],["value","0xf6d1d5c0"]],[["name","timeout"],["arg","1"],["type","int"],["value","-1"]],[["name","timeout@entry"],["arg","1"],["type","int"],["value","-1"]],[["name","max"],["type","int"],["value","<optimized out>"]],[["name","events"],["type","epoll_event *"],["value","<optimized out>"]],[["name","rv"],["type","int"],["value","<optimized out>"]]]]]}}
164-data-evaluate-expression "*(this+0)"
GDB -> App: {"token":164,"outOfBandRecord":[],"resultRecords":{"resultClass":"done","results":[["value","{epfd = 19, count = 4}"]]}}

Another issue (not related to variables), is that I cannot de-select a breakpoint. I can delete the breakpoint from debug shell, but not untick it in the UI.


feat: add CurSearch highlight group

https://github.com/neovim/neovim/commit/b16afe4d556af7c3e86b311cfffd1c68a5eed71f

LGTM


PROD SUPPORT: Enhancement- power of attorney to family/friends

Is your feature request related to a problem? Please describe.
"The platform currently does not account for power of attorney given by an Individual complainant to someone in their family/friends to be able to represent them (the complainant). This flow needs to be built urgently as lot of people in Kollam are non-residents and give power of attorney to their respective family members or friends.
The flow will be similar to the flow for filing complaints on behalf of incorporated entities, except that instead of company name etc. we will be required to obtain all the details of the incorporated entities.  Also, we will need to build ability for the accused to be also represented through a power of attorney i.e represented by a family member or friend when authorised to do so."

Please elaborate what % of cases will this be in.

Hi @Susmitabe  @mehulseg24  @ansh-egov @devarajd94  This is new feature please plan this in upoming sprints


can u give your opinion on this? spinlock. it's supposingly faster. can use on your lru?

https://github.com/daniel-hutao/spinlock
it seemed 5-10x faster so was wondering if it will faster

I've tried spinlock/seqlock before, It decrease throughputs, let me give a try again...

The spinlock integration is on test-spinlock branch and here is benchmark https://github.com/phuslu/lru/actions/runs/8409295475/job/23026467489
seems that there're no new findings/changes.

xref https://github.com/daniel-hutao/spinlock/issues/1

There are several things you need to understand here, because of which spinlocks are an unsuitable solution in most cases.

Spinlock is much superior to mutex in a single case. Namely, when the amount of work under lock is extremely small and the system creates a high contention for this lock. In this situation, the functionality of waiting for goroutines in the mutex becomes too expensive, and the spinlock feels pretty good. Unfortunately, this situation is extremely rare, but a situation in which an operation under lock takes more than 5-10ns is much more common and in it a spinlock can set your cpu on fire.
Most of the time in the cache benchmark is usually spent on cas operations and waiting for an exclusive lock. Even with such a small amount of work, a spinlock will not be better than a mutex. So it is better to use spinlocks only if you are absolutely sure that you understand what you are doing.

P.S. You can look at what I'm talking about in the benchmarks from this repository. There is only an incredibly cheap operation under lock.

@maypok86 thank you so much for the explanation. i couldnt really understand until you point out to the code section. thx!


refactor: Remove unimplemented public proto definition (Copied Protos from Server)

:crown: copied proto files from server repo: 2b51b29c refactor: Remove unimplemented public proto definition (#1914)
UPDATE THIS AND PR TITLE

Closing as it'll be updated with a different PR


Mention search with last name

Details
This code improves the UX for mentions of a user by improving the parser for mentions in a message. Before, including a space in the name of a user would stop the app from suggesting mentions. With this improvement, users can be searched by first and last name while writing a mention. This is especially useful in large workspaces where there may be multiple users with the same first name.
Fixed Issues
$ https://github.com/Expensify/App/issues/30217
PROPOSAL: $ https://github.com/Expensify/App/issues/30217#issuecomment-1776135664
Tests

Go into a chat and type a mention using only the first name
Repeat for a mention using both the first and last name
Insert a space between the "@" and the first name and verify that it causes the mention suggestion to disappear
Repeat but use the username instead of the first and last
Run unit tests

Offline tests
N/A
QA Steps

Go into a chat and type a mention using only the first name
Repeat for a mention using both the first and last name
Insert a space between the "@" and the first name and verify that it causes the mention suggestion to disappear
Repeat but use the username instead of the first and last
Run unit tests

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
I'm unfortunately unable to get the Android simulator running on my computer

Android: mWeb Chrome
I'm unfortunately unable to get the Android simulator running on my computer

iOS: Native
https://github.com/Expensify/App/assets/10010793/4cbf6f83-a117-4c10-bd19-1304922b1f23

iOS: mWeb Safari
Since switching the dev URL to https://dev.new.expensify.com, the iOS simulator cannot access the website through safari (throws HTTPS error)

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/10010793/4e2af308-4dec-49cd-92bc-20944fbf4dbb

MacOS: Desktop
https://github.com/Expensify/App/assets/10010793/07a80f1e-3628-41e9-ae41-c746e09f8eaf

@allroundexperts This bug was discussed in the original issue thread (https://github.com/Expensify/App/issues/30217#issuecomment-1793466836)
This is not actually a bug with my solution, but rather a consequence of an intentional design decision made for parsing emails. I was given the go-ahead by @twisterdotcom for this solution despite this small bug it reveals. (https://github.com/Expensify/App/issues/30217#issuecomment-1808136702)

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

🚀 Deployed to production by https://github.com/mountiny in version: 1.4.5-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Game of Life #1150 ~ Adding Drag to fill Cells Functionality

@llaske Changes to fill / Unfill based on mousedown / touchstart. I have also tried on the touch device using https://github.com/llaske/sugarizer-apkbuilder and everything seems fine. #1150

Nice but will be better to support both fill/unfill with move and also simple click/touch to fill one cell.
See for example how it works in Gridpaint activity.

@llaske  added both click to fill and drag to fill feature

Just tested on a real tablet, that's very cool, thanks.

Just tested on a real tablet, that's very cool, thanks.

Same, Literally played for half an hour after this change, felt great too 🙃


add the topics art and graphics

I suggest adding the topics art and graphics in the About section.

Good suggestion! Some topics included now.


fix(es/compat): Handle single expression case in static block

Related issue:

Closes #7922

CI failed

CI failed

Test cases updated.


vfs: introduce --atime-mode option to control atime update behavior

Currently juicefs doesn't update atime on access, so introduce --atime-mode option to select how to update atime. And support three modes:

noatime: don't update atime
relatime: update atime relative to motify or change time
strictatime: always update atime

Fixes: #3240
Signed-off-by: Eryu Guan<EMAIL_ADDRESS>

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Codecov Report
Patch coverage has no change and project coverage change: -31.57 :warning:

Comparison is base (74d398b) 56.49% compared to head (3157f9b) 24.92%.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #3521       +/-   ##
===========================================
- Coverage   56.49%   24.92%   -31.57%
===========================================
  Files         148       24      -124
  Lines       36266    14124    -22142
===========================================
- Hits        20488     3521    -16967
+ Misses      13534    10224     -3310
+ Partials     2244      379     -1865

see 147 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Any advise on how tho fix this markdown lint error?

Any advise on how tho fix this markdown lint error?

Add one space around the numbers, and between Chinese word and English word.

We should also check and update the atime in Open and ReadLink.

We should also check and update the atime in Open and ReadLink.

Added touchAtime() in Open() as well.

Thanks all for the reviews!


Fix gitflow and rubocop cheecks

Project requirements

Create a new Rails app called 'hello-rails-react'.
Use the command rails new -j webpack my_new_rails_app as described in the previous lesson's tutorial.
Verify that the jsbundling-rails gem is added to your Gemfile.
Initialize your project with Git.
Install needed node dependencies as described in the previous lesson's tutorial.
Create a babel.config.js in the root folder of your project as described in the previous lesson's tutorial.
Update webpack.config.js to include the babel loader as described in the previous lesson's tutorial.
Make sure that your project has a Postgres database set up.
Create a table for storing your messages and create 5 different greetings.
Create an API endpoint that selects a random greeting from your table (you will need a controller with an action and Rails route).
Create a static view that will be the root of your app.
Create the App component with react-router and render it in your static view.
Create the Greeting component that will display a greeting. Set it up as a route in your App component.
Create a store, an action, and a reducer that will connect to your API endpoint to get the random greeting.
Display the random greeting in your Greeting component.

My ruboco is linters is working in my local environment but on the github is not checking

Hello @zbahati, please note that I approved your project in error on your dashboard, please do not merge your project yet, as your dashboard will be reversed and rectified soon, please note this. I apologise for any inconveniences, 🙏

Hi @zbahati - the activity status has been updated, and you can submit another code review request now.
Thank you, and apologies for the inconvenience.


Petergate doesnt work with MongoID

hello everyone im trying to use petergate with mongo Db but Im getting this exception.

There was an error while trying to load the gem 'petergate'. (Bundler::GemRequireError)
Gem Load Error is: uninitialized constant ActiveRecord

someone can help me? Thank you so much

Petergate works by overloading activerecord base, which is default in Rails. Much of the code would work fine with another ORM, but since it's not very common and the community doesn't even use the same mongodb wrapper within rails, it's not worth supporting by default. It's possible that there's a gem that would allow you to use mongo with activerecord.


Refactored "open from toasts"-implementation

I think I kinda combined suggestions 2&3 from last merge:

Keep two maps (one map<enum class, string>, one map<string, enum class>) in parallel
Make two functions, one for converting an enum class to string with a  simple switch-case, one for converting a string to an enum class with  some if/elseif stuff

Please review and maybe squash commits (?)

Added a new commit. Changing to Int Setting "broke" the ComboBox I used. I implemented my own combobox for now, not really sure about that implementations. Doesn't feel high quality to me, but works for now. Should prolly be changed in later refactor . I assume it needs to get reworked anyways once we will try to get rid of the mix of "new" (e.g. general, external tools) and "old" (e.g. commands, highlights, notifications) setting pages.


[Program]: Write a R program to convert a string to an integer

Description
Write a R program to convert a string to an integer
Input  : "123"
Output : 123

How to contribute

Save the solution in program/program/convert-a-string-to-an-integer/program/convert_a_string_to_an_integer.r file

Hi please review my PR - #4825


Update cloud-controller.md

change title in cloud-controller.md

@hyojun123 do you have any problem with the CLA?

@hyojun123 I'm closing this PR because dev-1.17-ko.1 branch is not used anymore. Please reopen the PR after signing the CLA and rebaseing on the current team milestone branch.
/close


First draft on Hydrogen molecule ion exercises, the contain solutions

Not ready to be merged. I will add more exercises asap.

First eq: s_a \pm s_b
Not clear to me what you mean by "neutral function". I would remove that.
I assume you are going to remove the cells with the solutions once you are done
It would be good to make them plot the different probability densities:
s_a2, s_b2, psi_p2, psi_m2, 1/2(s_a2+s_b2).
The last one is to check the difference between having the electron in one of the psi against it being in a hypotetical orbital with the average density of the two original ones.
In particular, it is instructive to plot psi_p2 - 1/2(s_a + s_b2) and psi_m2 - 1/2(s_a** + s_b**2), which will show where the enhanced electron density for psi_p and psi_m is.

Once they have defined all the functions, step nr.4 is easy.


Create OBS API Endpoints

[x] Start/Stop Streaming
[x] Get Stream State (On/Off)
[x] Get List of Scenes
[ ] Change Scene

Get List of Scenes now includes Current Program Scene Name.


traffic for port reported too low

Hi,  I was playing youtube video to check port traffic output, but I found the traffic is too low for video streaming compare to that iptraf has reported.   I checked source code the buffer is in []byte and which means addTraffic is also in byte.  Is this correct?  does it have anything to do with addTraffic int and trafficStats int64?

I've found overflow int64 when process is run for a long time.  just couple lines to reset the trafficstats counter to 0  when close to overflow.
func (pm *PasswdManager) addTraffic(port string, n int) {
pm.Lock()
if pm.trafficStats[port] > math.MaxInt64 - 9999999 {
pm.trafficStats[port] = 0
}
pm.trafficStats[port] = pm.trafficStats[port] + int64(n)
pm.Unlock()
return
}

I've found overflow int64 when process is run for a long time. just couple lines to reset the trafficstats counter to 0 when close to overflow.
func (pm *PasswdManager) addTraffic(port string, n int) {
pm.Lock()
if pm.trafficStats[port] > math.MaxInt64 - 9999999 {
pm.trafficStats[port] = 0
}
pm.trafficStats[port] = pm.trafficStats[port] + int64(n)
pm.Unlock()
return
}

int64 represent that  number from  9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807 ,
it's already exceed 1 EB for a port
so how can int64 get overflow when process is running for a long time ?


Waku Network MVP: the public Waku network

We have learned a lot from the Status Communities MVP about the basic building blocks for a working Waku network. However, the Status MVP creates a private network. We want to take what we have learned and build a viable public Waku Network MVP. This issue tracks the work to specify and build the public Waku Network, with the minimum features for a viable network that is scalable, reasonably secure, and honest about trade-offs.
Why "Waku Network MVP"?
This is just a working title until we come up with something better. It denotes that this is our attempt to balance desired network features (such as scalability, anonymity, and security) against the practical tradeoffs necessary to make the network "work" within the medium term. In this paradigm, we recognise that the set of specifications that define an "ideal" messaging network with the highest level of guaranteed anonymity, security, etc. falls outside MVP scope.
What are some features WN must have?

Note: this is not a complete list of requirements, just some ideas of the scope that we should specify as part of this effort.

Auto-scaling with autosharding
The relayer network must be able to scale by automatically sharding content topics via some consistent hashing mechanism to deterministic pubsub topic shards. This should build on the static shard paradigm, by specifying the static shard index (or range of shard indices) across which WN auto-shards will be defined (making the shard something akin to a network-id for WN). This will include defining a pubsub topic format and range, but this must be abstracted from applications/platforms who should only be concerned with the content topic chosen for their application.
DoS Protection
WN should provide basic DoS protection, likely based on membership coupled with some form of rate-limiting. A basic version of the RLN would be ideal here, perhaps without slashing or staking. This should not prohibit more sophisticated methods of DoS protection from being implemented over time. The idea of a plugin JSON-RPC interface for validation could be useful here, e.g. RLN-validation-as-a-service, which would also allow innovation from applications to define their own validation rules where it makes sense.
Light protocols
The protocols for resource-restricted devices, including filter, lightpush, and peer-exchange are being hardened for the Status MVP. These will also form an integral part of WN, but with the added paradigm of making these services decentralizable via a form of service and capability discovery (see next point).
Service/capability discovery
WN must define a capability discovery method by which services, including light protocols and store for historical messages, can be provided by anyone in the network and discovered by interested clients.
Service incentivization
WN will not define any incentivization mechanisms in the MVP phase but, by allowing decentralizing and discovering services, should pave the way for incentivization to be implemented in the network.
How shall we go about this?
Currently, I envision that defining and building the WN MVP would be the main focusing effort for Waku Research after the Status MVP. Building a viable public network is not only crucial for the sustainability of the Waku project itself, but if we can demonstrate the value of such a network, many existing platforms (including Status) would choose to transition to the public network for their benefit as well.
Roughly, the steps we take could be:

Define the minimal requirements and properties that WN must have.
Publish an RFC that encompasses a network design with opinionated use of basic Waku protocols to achieve said requirements.
Breakdown and prioritize tasks.
Dogfood and launch.

cc @fryorcraken @alrevuelta @corpetty @kaiserd

Some more features to consider:

decentralized bootstrapping (or at least allowing multiple/extendable DNS bootstrap lists) to remove reliance on waku fleets
bandwidth limiting (per content topic?)
timestamp validation

Thanks for this @jm-clius. Some quick thoughts:

More related to bussines development than technical, but I think we should consider launching partnerships with node operators with offchain incentives. So perhaps would repharse "will not define any incentivization mechanisms" by "will not define any onchain incentivization mechanisms". This could be a way of waku network relaying less on status fleets and being more decentralized (with some nuances ofc).
While DoS protection is important, I think we should also enforce some maximum bandwidth per shard. Ofc assuming that we want anyone to run a "full node" at home. The tokenizing waku bandwidth idea can help here but would be more like a "tokenizing waku shards bandwidth" which makes things more difficult. Its main advantage is that we can assign x bandwidth to the max supply, so having 1% of the supply, gives you the right of publishing to y rate. We can do some zk magic here to unlink holder with message publiser, but wondering if we are being to hard with privacy. Linking a message to an address is ok imho, makes things easy to move forward and if someone wants more privacy, there are services beyond waku that offer that. Perhaps unpopular opinion given other discussions, but given the tradeoffs I would consider it.
Agree that for dos protection, I dont think slashing is required, and the
Will automatic sharding 100% abstract away from the user the concept of pubsub topic? Or will "custom topics" coexist in the waku network with "sharded topics"?

which would also allow innovation from applications to define their own validation rules where it makes sense.

Thanks for this @jm-clius. Some quick thoughts:

More related to bussines development than technical, but I think we should consider launching partnerships with node operators with offchain incentives. So perhaps would repharse "will not define any incentivization mechanisms" by "will not define any onchain incentivization mechanisms". This could be a way of waku network relaying less on status fleets and being more decentralized (with some nuances ofc).
While DoS protection is important, I think we should also enforce some maximum bandwidth per shard. Ofc assuming that we want anyone to run a "full node" at home. The tokenizing waku bandwidth idea can help here but would be more like a "tokenizing waku shards bandwidth" which makes things more difficult. Its main advantage is that we can assign x bandwidth to the max supply, so having 1% of the supply, gives you the right of publishing to y rate. We can do some zk magic here to unlink holder with message publiser, but wondering if we are being to hard with privacy. Linking a message to an address is ok imho, makes things easy to move forward and if someone wants more privacy, there are services beyond waku that offer that. Perhaps unpopular opinion given other discussions, but given the tradeoffs I would consider it.
Agree that for dos protection, I dont think slashing is required, but unsure how RLN can work without staking. The tokenizing waku bandwidth idea does, since just holding is required.
Will automatic sharding 100% abstract away from the user the concept of pubsub topic? Or will "custom topics" coexist in the waku network with "sharded topics"?

which would also allow innovation from applications to define their own validation rules where it makes sense.

Unsure if its a good idea. imho there should be one DoS protection solution to rule them all very well defined and neutral, that protects the network from being DoSed. Ethereum has gas to prevent spamming and we should have ???. I dont imagine Ethereum allowing custom validations that allow people to validate according to: OFAC compliant, unethic MEV, or whatever. This has been done but on top of the protocol, which required to change the software to somoe extent, which is difficult and desincentivices doing so.
Some people say its DoS validation but what it really could be is censorship.

timestamp validation

Without going into the possible attack vectors that it can open up, timestamp validation can be a very efficient mechanism to mitigate spam. Specially since other validation techniques may not be enough if one can do a "replay attack" aka spamming with old messages seen in the network, no longer cached by gossipsub.
As an opinion, if the attack vectors that timestamp introduces are really worring to us, then waku will never scale for the end user and it will stay a niche protocol used by privacy obsesed people. Both options are fine, but we have to choose.
TLDR:

offchain incentives to get external node operators
limit bandwidth per share to allow running waku from home
one single DoS neutral protection to rule them all
reevaluate tradeoffs and past decisions to decide what can be sacrified and what not given our goals.

Adding:

Reconsider max message size

Agree that for dos protection, I dont think slashing is required, but unsure how RLN can work without staking. The tokenizing waku bandwidth idea does, since just holding is required.

What about joining the RLN using interep credentials? Or proving you own a zk notes in RAILGUN contracts?
Do you see major issues to use RLN this way? Or do you consider this as "staking" still?

UPDATE: I've removed all references to "Waku Network 1" or "WN1" in the description above and have opted for "Waku Network" or "Waku Network MVP" instead. The 1 was just confusing.

Once we have a viable strategy to handle membership from different sources, it may be interesting to review sismo to define broader membership groups:

https://docs.sismo.io/sismo-docs/sismo-factory/create-your-group
https://docs.sismo.io/sismo-docs/knowledge-base/resources/sismo-hub/data-providers

Adding a new point.
Improve store protocol decentralization
Problem:

Right now the network relies on a set of few/honest/high-availability nodes to provide store capabilities.
The are no incentives to run store nodes.
Default configuration doesnt really help the network.

Solution:

Further decentralize store by defaulting to a configuration that provides some store capabilities. By "some" I mean in terms of i) bandwidth usage and ii) disk usage, so that it works for a node running in a consumer grade laptop with a residential connection. This could be something like: store max x bytes (like we have) (or given retention time in days) and don't take more than y kb/s upstream.
Instead of relying on a single node for store requests (like we currently kind of do) a store request should try to fetch messages from multiple nodes, and return the union of them. With this we mitigate the risk of a node i) not having some messages or ii) the node being offline.
Even if the default retention time is just one or two days (which shouldn't take much space on the nodes), this would be an improvement as requests for this timespan will be leveraging the decentralization of the network. For more than that, we can always fallback to bootstrap nodes as we currently do.
Response time could increase, since with this we can paralelize the requests, and offload the bootsrap nodes.

Trying to be more specific, these are the short term (low hanging fruit-ish) that we can do to decentralize store without much effort:

[ ] set limits on what store can serve. We already have store (days/bytes) but we are missing max upstream allowed bandwidth.
[ ] change defaults, so that every node (at least using the providing binaries) provide some safe store capabilities.
[ ] paralelize store requests, using multiple peers instead of just one.

Relevant: https://github.com/waku-org/pm/issues/21


shared notes are buggy

go to sharednotes link -> navigate to settings -> backt o sharednotes
perhaps for shared notes, disable the menu button widget.db.isSharedNotes disable the menu button

Removed share notes feature (out of scope)


Problem getting options contracts

I'm making some headway. I'm encouraged. However, I'm running into a problem. I'm making a web request to pull down information relative to options contracts. I have a list of about 20 stocks. I've captured the conID for them (the underlying). The con ID works for some to get the options contracts and doesn't work for others. I am confirming options trade in that particular month and that the strike price is one for which contracts are being written/available.
When it doesn't work, I get a 500 message back. Please see image.
Any thoughts on what I might be doing wrong? Composing the get wrong?  Or what privileges I may not have with IBKR? Is there another forum I should raise questions like this in for IBKR?
PS - The image below is from Insomnia.  I'm composing requests there before including them in my app.

?

Disregard. I got a resolved.


bug: "squiggly" renders (axes + plot)

I am not sure what happened, but recently Makie Plots started to look like this:
scatter(1:10,ones(10),marker="cdefghijlk")

I tried updating to Julia 1.5 and rebuilding Makie but that didn't work.
I only loaded Revise, OhMyREPL and Makie (0.11.1)

What's the abstractplotting and GLMakie version?

[e9467ef8] GLMakie v0.1.8
[537997a7] AbstractPlotting v0.12.6

What OS?
Can you remove the font cache? The path is in AbstractPlotting/sec/texture_atlas.jl
Something like AbstractPlotting.cache_path or so ;)

Windows 10
Fontcache deletion worked partially:

Besides the stretching (#677) the stencil-like glyphs in the plot were not there before.
Potentially related: Zooming/Moving the window makes the Makie-Window crash without outputting any error (secret verbose flag somewhere?)

Try updating to<EMAIL_ADDRESS>

Oh, and the stencil like glyphs are actually, because the scatter defaults have changed... This will give you the old behaviour:
scatter(1:10,ones(10),marker="cdefghijlk", strokewidth=0, color=:black, markerspace=AbstractPlotting.SceneSpace, markersize=0.3)

This will still leave you with stretched glyphs, but if I'm not forgetting a change, this is actually by design... Even, if it's probably not the best design^^
You should use text/annotations for actual text.

Seems to work for now. Thanks!
Why I use scatter: I don't have text on a line, but text around curved paths. And I have ~60.000 characters to plot. My intution was to use scatter, but I can also try text/annotation
PS: I restarted julia repl everytime - is that necessary?

PS: I restarted julia repl everytime - is that necessary?

Every time after what?
For the text cache it kinda is, although, you can also just re-evaluate texture_atlas.jl.

And I have ~60.000 characters to plot

Hm, so text should have similar rendering performance as scatter, although, it does a bit more work during setup (e.g. layouting).
You can also size the glyphs correctly quite easily:
font = to_font("Deja vue")
lotsoftext = randstring(60_000)
positions = rand(Point2f0, 60_000) .* 1000
sizes = widths.(AbstractPlotting.glyph_boundingbox.(collect(lotsoftext), font, 16))
scatter(positions, marker=lotsoftext, markersize=sizes)

Looks pretty cool :D And with pixelspace, the glyphs are always readable:

restart repl after installing a package update was my Question
It is definitely not normal that you can just plot 60.000 characters like that. Other software I tried in the past (i.e. matlab, ggplot) really doe not like it. Great job!

I ran @time with annotation (0.6s) and scatter (0.2s-0.3s), so maybe there is a benefit of scatter.
Ok this ticket extends over and beyond what I initially asked. Thanks a ton for the fast help!
PS: I noticed you cant use color=[1,2,1,2,2,3, ...] in annotations while you can in scatter. Should I open a ticket for it?

Hehe, great :)
Pfew, I dunno, we need to rework the annotation api anyways, and doesn't seem a high priority atm to support color=Vector{Number}...


fail to run the demo

OS is win 10, when I tried to run the demo, I encounter the following error:
No appropriate method, property, or field addParameter for class inputParser.
Error in mcmc/setPlotTheme (line 7)
p.addParameter('fontsize',14,@isscalar);
Error in demo (line 10)
mcmc.setPlotTheme('fontsize',16, 'linewidth',2)
I also got the same error when I run the demo 'run_me' of the 'delay-discounting-analysis' package.
So would you pls help me through this? Thanks so much!

Hi. I don't have access to a windows 10 machine for now, but let's see what we can do.
What version of Matlab are you running?


PhpComposer: Ignore special "composer-plugin-api" dependency

The "composer-plugin-api" is a special package, which does not actually
exist. It's used by composer plugins internally and should be ignored
during dependency resolution.

This change is

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks a lot @ddelbondio for your first (and great!) contribution. We're hoping to see more from you!


Hang when using breakpoints

Not sure if this is related to #41 or #67 (or #70). This issue seems to happen in a much more trivial case.
Delve version: git master (d9d3118)
Go version: reproduced on 1.5beta3, 1.5rc1, and 1.4.2
I can run this program normally but as soon as I add a breakpoint (through Delve or runtime.Breakpoint) it never gets anywhere, just hangs, necessitating a kill.
moshee@jungle(~/projects/go/src/test) ⚡ go version
go version go1.5beta3 linux/amd64
moshee@jungle(~/projects/go/src/test) ⚡ uname -smor
Linux 2.6.32-5-amd64 x86_64 GNU/Linux
moshee@jungle(~/projects/go/src/test) ⚡ cat test.go
package main

import "fmt"

func main() {
        fmt.Println("asdfasdf")
}
moshee@jungle(~/projects/go/src/test) ⚡ dlv run
Type 'help' for list of commands.
(dlv) c
asdfasdf
Process 17852 has exited with status 0
(dlv) r
Process restarted with PID 17861
(dlv) b main.main
Breakpoint 1 set at 0x400c1a for main.main ./test.go:6
(dlv) c
[program hangs using no cpu]

If I send ABORT, I get this stack trace.

I can't reproduce, however I may have a few ideas. I almost wonder if it has anything to do with the kernel version. I ran into similar issues when I first tried Travis-ci, if you don't run on their "container" Linux workers, then you get an older 2.6.x kernel - and I was experiencing issues then. That very well could be coincidence, but let me try and run in a VM with that kernel and see if I can reproduce.

Hmm, that should have occurred to me. I tried it in another VPS running Linux 3.2 and it works.

Thanks for trying it out on another kernel. I'm not sure what the issue is with the 2.6 kernel, however I'm going to close this issue and open a new one specifically to address 2.6 kernels.