ilab model train --pipeline simple  (v0.21.0)

ilab model train --pipeline simple  is looking for the legacy datafiles and not the latest.
ilab model train --pipeline simple --device cuda --data-path ~/.local/share/instructlab/datasets/ --optimize-memory  --model-path ~/.cache/instructlab/models/instructlab/granite-7b-lab --4-bit-quant
INFO 2024-11-16 22:15:29,760 numexpr.utils:161: NumExpr defaulting to 4 threads.
INFO 2024-11-16 22:16:06,758 datasets:59: PyTorch version 2.4.0+cu121 available.
LINUX_TRAIN.PY: NUM EPOCHS IS:  10
LINUX_TRAIN.PY: TRAIN FILE IS:  /home/andrew/.local/share/instructlab/datasets/train_gen.jsonl
LINUX_TRAIN.PY: TEST FILE IS:  /home/andrew/.local/share/instructlab/datasets/test_gen.jsonl
LINUX_TRAIN.PY: Using device 'cuda:0'
  NVidia CUDA version: 12.1
  AMD ROCm HIP version: n/a
  cuda:0 is 'Tesla P4' (7.8 GiB of 7.9 GiB free, capability: 6.1)
  WARNING: You have less than<PHONE_NUMBER>4 GiB of free GPU memory on '{index}'. Training may fail, use slow shared host memory, or move some layers to CPU.
  Training does not use the local InstructLab serve. Consider stopping the server to free up about 5 GiB of GPU memory.
LINUX_TRAIN.PY: LOADING DATASETS
Unable to find '/home/andrew/.local/share/instructlab/datasets/train_gen.jsonl'

Hey @apcameron the simple pipeline should be considered legacy functionality as well, which is why it only works with the legacy dataset. If you want to use cuda, please try the accelerated pipeline or feel free to open an issue to track adding cuda support to the full pipeline!

@cdoern My GPU only has 8GB of VRAM and as far as I know the simple pipeline is the only one with the --4-bit-quant option.
If I simple rename the test_mistral-7b-instruct-v0.2.Q4_K_M_2024-11-17T21_10_22.jsonl and the train_mistral-7b-instruct-v0.2.Q4_K_M_2024-11-17T21_10_22.jsonl to test_gen.jsonl and train_gen.jsonl the it works.
The accelerated pipeline gives me an out of memory as it does not support small GPU's or Unified Memory for CUDA or offloading the extra layers to cpu as far as I know.

@apcameron the accelerated pipeline supports LoRA and quantization i believe. If you check out the training section of your config you can set lora_rank to anything but 0 (usually 2), the lora_quanrize_dtype, and enable deepspeed cpu offloading.

@cdoern When I try this
ilab model train --pipeline accelerated --device cuda --data-path ~/.local/share/instructlab/datasets/train_mistral-7b-instruct-v0.2.Q4_K_M_2024-11-17T21_10_22.jsonl --optimize-memory  --model-path ~/.cache/instructlab/models/instructlab/granite-7b-lab --4-bit-quant --lora-alpha 32 --lora-dropout 0.1 --lora-rank 2 --lora-quantize-dtype nf4 --deepspeed-cpu-offload-optimizer true
I get the following error
[2024-11-17 23:03:45,906] [INFO] [real_accelerator.py:219:get_accelerator] Setting ds_accelerator to cuda (auto detect)
INFO 2024-11-17 23:03:52,432 numexpr.utils:161: NumExpr defaulting to 4 threads.
INFO 2024-11-17 23:03:52,738 datasets:59: PyTorch version 2.4.0+cu121 available.
--- Logging error ---
Traceback (most recent call last):
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/model/accelerated_train.py", line 198, in accelerated_train
    run_training(train_args=train_args, torch_args=torch_args)
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/training/__init__.py", line 36, in run_training
    return run_training(torch_args=torch_args, train_args=train_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/training/main_ds.py", line 663, in run_training
    check_valid_train_args(train_args)
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/training/utils.py", line 88, in check_valid_train_args
    raise ValueError(
ValueError: `accelerate_full_state_at_epoch` is not currently supported when training LoRA models.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.11/logging/__init__.py", line 1110, in emit
    msg = self.format(record)
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 953, in format
    return fmt.format(record)
           ^^^^^^^^^^^^^^^^^^
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/log.py", line 19, in format
    return super().format(record)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 687, in format
    record.message = record.getMessage()
                     ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 377, in getMessage
    msg = msg % self.args
          ~~~~^~~~~~~~~~~
TypeError: not all arguments converted during string formatting
Call stack:
  File "/data/instructlab/env/bin/ilab", line 8, in <module>
    sys.exit(ilab())
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/data/instructlab/env/lib/python3.11/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/clickext.py", line 323, in wrapper
    return f(*args, **kwargs)
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/cli/model/train.py", line 448, in train
    accelerated_train.accelerated_train(
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/model/accelerated_train.py", line 201, in accelerated_train
    logger.error("Failed during training loop: ", e)
Message: 'Failed during training loop: '
Arguments: (ValueError('`accelerate_full_state_at_epoch` is not currently supported when training LoRA models.'),)
Accelerated Training failed with 1

@apcameron so the error here is actually an incompatibility between our checkpoints system and LoRA. (You will also need --distributed-backend deepspeed as a side note
@RobotSail i thought we fixed this 0.21?
@apcameron can you pip show instructlab-training  it's possible this fix was in 0.6.1 not 0.6.0 of that library

@cdoern
pip show instructlab-training
Name: instructlab-training
Version: 0.6.1
Summary: Training Library
Home-page:
Author:
Author-email: InstructLab<EMAIL_ADDRESS>License: Apache-2.0
Location: /data/instructlab/env/lib/python3.11/site-packages
Requires: aiofiles, datasets, instructlab-dolomite, numba, numpy, packaging, peft, py-cpuinfo, pydantic, pyyaml, rich, torch, transformers, trl, wheel
Required-by: instructlab

@apcameron
can you use --fsdp-cpu-offload-optimizer and --distributed-backend fsdp instead? looking at: https://github.com/instructlab/training/pull/295 looks like this should work

I get the same error
ilab model train --pipeline accelerated --device cuda --data-path ~/.local/share/instructlab/datasets/train_mistral-7b-instruct-v0.2.Q4_K_M_2024-11-17T21_10_22.jsonl --optimize-memory  --model-path ~/.cache/instructlab/models/instructlab/granite-7b-lab --4-bit-quant --lora-alpha 32 --lora-dropout 0.1 --lora-rank 2 --lora-quantize-dtype nf4 --fsdp-cpu-offload-optimizer true --gpus 1 --distributed-backend fsdp
[2024-11-18 14:19:38,902] [INFO] [real_accelerator.py:219:get_accelerator] Setting ds_accelerator to cuda (auto detect)
INFO 2024-11-18 14:20:26,901 numexpr.utils:161: NumExpr defaulting to 4 threads.
INFO 2024-11-18 14:20:29,012 datasets:59: PyTorch version 2.4.0+cu121 available.
--- Logging error ---
Traceback (most recent call last):
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/model/accelerated_train.py", line 198, in accelerated_train
    run_training(train_args=train_args, torch_args=torch_args)
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/training/__init__.py", line 36, in run_training
    return run_training(torch_args=torch_args, train_args=train_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/training/main_ds.py", line 663, in run_training
    check_valid_train_args(train_args)
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/training/utils.py", line 88, in check_valid_train_args
    raise ValueError(
ValueError: `accelerate_full_state_at_epoch` is not currently supported when training LoRA models.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.11/logging/__init__.py", line 1110, in emit
    msg = self.format(record)
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 953, in format
    return fmt.format(record)
           ^^^^^^^^^^^^^^^^^^
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/log.py", line 19, in format
    return super().format(record)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 687, in format
    record.message = record.getMessage()
                     ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 377, in getMessage
    msg = msg % self.args
          ~~~~^~~~~~~~~~~
TypeError: not all arguments converted during string formatting
Call stack:
  File "/data/instructlab/env/bin/ilab", line 8, in <module>
    sys.exit(ilab())
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/data/instructlab/env/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/data/instructlab/env/lib/python3.11/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/clickext.py", line 323, in wrapper
    return f(*args, **kwargs)
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/cli/model/train.py", line 448, in train
    accelerated_train.accelerated_train(
  File "/data/instructlab/env/lib/python3.11/site-packages/instructlab/model/accelerated_train.py", line 201, in accelerated_train
    logger.error("Failed during training loop: ", e)
Message: 'Failed during training loop: '
Arguments: (ValueError('`accelerate_full_state_at_epoch` is not currently supported when training LoRA models.'),)
Accelerated Training failed with 1

I am on 0.21.0 and I get the same Error... Wanted to train a better version of model on full OR accelerated. Full doesnt work on GPU and accelerated on One L40 GPU(48GB VRAM) fails.. with memory Error.,
Epoch: 0, Step: 1, Rank: 0, loss = 1.78125 /home/ibmuser/pyenv/lib/python3.11/site-packages/torch/utils/checkpoint.py:295: FutureWarning: torch.cpu.amp.autocast(args...)is deprecated. Please usetorch.amp.autocast('cpu', args...)` instead.
with torch.enable_grad(), device_autocast_ctx, torch.cpu.amp.autocast(**ctx.cpu_autocast_kwargs):  # type: ignore[attr-defined]
Epoch 0:   1%|          | 1/130 [00:11<23:40, 11.01s/it]{
"epoch": 0,
"step": 1,
"rank": 0,
"overall_throughput": 1.96022160644846,
"lr": 0.0,
"cuda_mem_allocated": 26.81872797012329,
"cuda_malloc_retries": 1,
"num_loss_counted_tokens": 26639,
"batch_size": 22,
"total_loss": 1.7778445136829462,
"samples_seen": 22,
"gradnorm": null,
"total_samples": 2692,
"timestamp": "2024-12-08T14:10:39.778697"
}
total length: 28948 num samples 21 - rank: 0 num_loss_counted_tokens: 27394
[rank0]: Traceback (most recent call last):
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/training/main_ds.py", line 967, in
[rank0]:     main(args)
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/training/main_ds.py", line 642, in main
[rank0]:     train(
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/training/main_ds.py", line 385, in train
[rank0]:     output = model(
[rank0]:              ^^^^^^
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl
[rank0]:     return self._call_impl(*args, **kwargs)
[rank0]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1562, in _call_impl
[rank0]:     return forward_call(*args, **kwargs)
[rank0]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/torch/distributed/fsdp/fully_sharded_data_parallel.py", line 863, in forward
[rank0]:     output = self._fsdp_wrapped_module(*args, **kwargs)
[rank0]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1553, in _wrapped_call_impl
[rank0]:     return self._call_impl(*args, **kwargs)
[rank0]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1562, in _call_impl
[rank0]:     return forward_call(*args, **kwargs)
[rank0]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/training/utils.py", line 381, in reduce_sum_forward
[rank0]:     output = model.original_forward(
[rank0]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/transformers/models/llama/modeling_llama.py", line 1214, in forward
[rank0]:     loss = self.loss_function(logits=logits, labels=labels, vocab_size=self.config.vocab_size, **loss_kwargs)
[rank0]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/transformers/loss/loss_utils.py", line 46, in ForCausalLMLoss
[rank0]:     loss = fixed_cross_entropy(shift_logits, shift_labels, num_items_in_batch, ignore_index, **kwargs)
[rank0]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/transformers/loss/loss_utils.py", line 26, in fixed_cross_entropy
[rank0]:     loss = nn.functional.cross_entropy(source, target, ignore_index=ignore_index, reduction=reduction)
[rank0]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]:   File "/home/ibmuser/pyenv/lib/python3.11/site-packages/torch/nn/functional.py", line 3104, in cross_entropy
[rank0]:     return torch._C._nn.cross_entropy_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index, label_smoothing)
[rank0]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: torch.OutOfMemoryError: CUDA out of memory. Tried to allocate 3.43 GiB. GPU 0 has a total capacity of 44.52 GiB of which 1.47 GiB is free. Including non-PyTorch memory, this process has 43.05 GiB memory in use. Of the allocated memory 39.87 GiB is allocated by PyTorch, and 2.35 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation.  See documentation for Memory Management  (https://pytorch.org/docs/stable/notes/cuda.html#environment-variables)
Epoch 0:   1%|          | 1/130 [00:13<29:51, 13.89s/it]
E1208 14:10:43.465000<PHONE_NUMBER>48256 torch/distributed/elastic/multiprocessing/api.py:833] failed (exitcode: 1) local_rank: 0 (pid: 2134572) of binary: /home/ibmuser/pyenv/bin/python3.11
Traceback (most recent call last):
File "/home/ibmuser/pyenv/bin/torchrun", line 8, in
sys.exit(main())
^^^^^^
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/torch/distributed/elastic/multiprocessing/errors/init.py", line 348, in wrapper
return f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/torch/distributed/run.py", line 901, in main
run(args)
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/torch/distributed/run.py", line 892, in run
elastic_launch(
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/torch/distributed/launcher/api.py", line 133, in call
return launch_agent(self._config, self._entrypoint, list(args))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/torch/distributed/launcher/api.py", line 264, in launch_agent
raise ChildFailedError(
torch.distributed.elastic.multiprocessing.errors.ChildFailedError:
/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/training/main_ds.py FAILED
Failures:
<NO_OTHER_FAILURES>
Root Cause (first observed failure):
[0]:
time      : 2024-12-08_14:10:43
host      : ce-sg-gpu-l40-vpc-24x120-ubuntu22
rank      : 0 (local_rank: 0)
exitcode  : 1 (pid: 2134572)
error_file: <N/A>
traceback : To enable traceback see: https://pytorch.org/docs/stable/elastic/errors.html
Training subprocess has not exited yet. Sending SIGTERM.
Waiting for process to exit, 60s...
--- Logging error ---
Traceback (most recent call last):
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/model/accelerated_train.py", line 198, in accelerated_train
run_training(train_args=train_args, torch_args=torch_args)
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/training/init.py", line 36, in run_training
return run_training(torch_args=torch_args, train_args=train_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/training/main_ds.py", line 831, in run_training
raise RuntimeError(
RuntimeError: Suffered a failure during distributed training. Please see the training logs for more context.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.11/logging/init.py", line 1110, in emit
msg = self.format(record)
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/logging/init.py", line 953, in format
return fmt.format(record)
^^^^^^^^^^^^^^^^^^
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/log.py", line 19, in format
return super().format(record)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/logging/init.py", line 687, in format
record.message = record.getMessage()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/logging/init.py", line 377, in getMessage
msg = msg % self.args
^~~~~~~
TypeError: not all arguments converted during string formatting
Call stack:
File "/home/ibmuser/pyenv/bin/ilab", line 8, in
sys.exit(ilab())
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/click/decorators.py", line 33, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/clickext.py", line 323, in wrapper
return f(*args, **kwargs)
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/cli/model/train.py", line 448, in train
accelerated_train.accelerated_train(
File "/home/ibmuser/pyenv/lib/python3.11/site-packages/instructlab/model/accelerated_train.py", line 201, in accelerated_train
logger.error("Failed during training loop: ", e)
Message: 'Failed during training loop: '
Arguments: (RuntimeError('Suffered a failure during distributed training. Please see the training logs for more context.'),)
Accelerated Training failed with 1`
Whats the recommendation ? @apcameron  @cdoern


Adding Providers to ManageIQ Installation

How to add providers to ManageIQ installation ? I need my installation to already have connection to lets say Ansible tower when ManageIQ boots up

Hi @Sahil-Ajmera
Welcome to ManageIQ community.
Following is a quick screenshot for adding a external AWX/Tower instance as a provider.

Your question is not an  issue/bug and it  should be closed.  Please  redirect the question to http://talk.manageiq.org/

@Sahil-Ajmera can you review the comment above and then close this issue.

@miq-bot close_issue


Specific Content from PO

(tag line)
Enhancing wellbeing through dance for women affected by cancer
KEY WORDS: holistic, peer or group support, wellbeing, positivity, creativity
WHAT
Move Dance Feel is a creative dance project for women affected by cancer, including those caring for someone with cancer, designed to offer holistic support and enhance wellbeing.
We offer regular dance sessions to adult women, with any type of cancer, at any stage in their cancer experience - having just been diagnosed, undergoing treatment or post treatment.
Sessions combine dynamic and creative movement activities with playful opportunities for interaction as well as quiet reflection.
There is a particular focus on the physicality of dance, artistic exploration and collaboration. Sessions involve a person centred approach with a view to connect the participant(s) with their own way of dancing and learning, in order to understand and take ownership of their movement choices.
Move Dance Feel provides an effective and alternative means of group support, where participants find freedom in their bodies and confidence in their abilities.
PARTNERSHIPS / LOCATIONS / ACTIVITY DATES/TIMES?
RATIONALE / WHY
Move Dance Feel was initiated in 2016 to address a recognised need for post treatment support (identified gap in cancer care services).
Despite cancer survivorship rates improving, 70% of people (in UK) report negative side effects between 1 and 10 years after treatment (2015, Macmillan). Reported side effects include tension, weight changes, pain, restricted movement, severe fatigue, stress, anxiety, depression, fear, low self-esteem, disturbances in body image, and many more ill health factors. Prolonged negative side effects are often a catalyst for other chronic health conditions, social isolation, poor mental health and cancer reoccurrence.
Alarmingly, it is predicted that over the next 20 years cancer rates will rise six times faster in women than in men.
Predictions - 4 million people living with cancer by 2030 (UK) 27.5 million new cases of cancer by 2040 (worldwide).
In the context of cancer diagnosis, evidence shows that by undertaking physical activity people respond better to treatment, recover more quickly after treatment, maintain wellbeing and reduce their chances of cancer reoccurrence.
Dance is a holistic form of physical activity that is also a means of communication - its expressive nature helping participants to form supportive relationships, and process thoughts and feelings that are often difficult to articulate.
RESEARCH

See evaluation report for data findings and participant testimonies.

The project specifically enhances wellbeing through;
Positive Emotion
Peer Support
Creativity and Self Expression
Accomplishment
PARTICIPANT COMMENTS
I like the closeness and support we have in the class and I enjoy dancing with other people, it’s a totally different means of communication.
Move Dance Feel has provided a wonderful outlet for self expression and creativity, which I have found to be very healing.
It’s helping me to walk taller. I had my eyes down before, I was always looking at my feet.
It gives me such a feeling of achievement.
It makes me feel the absolute joy of being alive!
This is a mix of connecting with myself, others, mind and body, a sense of some tightness unbinding.
A sense of belonging and quiet solidarity
I come feeling tired and leaving feeling like I have more energy
It's a psychological game-changer to come here
When you have cancer, you lose touch with your body…dancing started to bring me back to my body, and its energy, strength and basic joyfulness.
HEALTH PROFESSIONAL COMMENTS
(to come!)
ARTISTS - TRAINING INFO?
VOLUNTEERING

Maggie's Barts St Bartholomew's Hospital West Smithfield London EC1A 7BE
Join us every Wednesday for Move Dance Feel Sessions at Maggie's Barts. Sessions are free to attend and no prior dance experience is necessary. Contact Janet O'Doherty<EMAIL_ADDRESS>or call 0203 904 3448 for further information and to sign up.
Join us every Thursday for Move Dance Feel Sessions at Paul's Cancer Support Centre. Sessions are free to attend and no prior dance experience is necessary. Contact Angela Murdock<EMAIL_ADDRESS>or call 020 7924 3924 for further information or to sign up.
Bristols to come

So the Bristol details are:
Penny Brohn UK
Chapel Pill Lane, Pill, Bristol., BS20 0HH
Weekend Move Dance Feel courses in January, March, May, July, September, November 2020.
Call 0303 3000 118 (option 2) or email<EMAIL_ADDRESS>They have just launched a new system which enables people to book directly online, but the Move Dance Feel course isn't up yet. It should be by beginning of Nov. Here's an example of what it might look like: https://www.pennybrohn.org.uk/services/getting-started/courses-national-centre/living-well/
Also for ease, here are the London details:
Maggie's Barts
St Bartholomew's Hospital West Smithfield London EC1A 7BE
Weekly sessions on Wednesdays, 5pm - 7pm
Contact Janet O'Doherty;
<EMAIL_ADDRESS>or call 0203 904 3448 for further information and to sign up.
Paul's Cancer Support Centre
20-22 York Rd, Battersea, London SW11 3QA
Weekly sessions on Thursdays, 10.30am - 12.30pm
Contact Angela Murdock
<EMAIL_ADDRESS>or call 020 7924 3924 for further information or to sign up.
Sessions are free to attend and no prior dance experience is necessary.

'I was truly amazed by the effect of Move Dance Feel on my patients. The benefits in terms of improved confidence and well being were remarkable and supported by clinical data.
The programme is a huge success.'
I am happy for you to use my name/title/address etc
Virginia
Dr Virginia Wolstenholme
Consultant Clinical Oncologist
Barts Health NHS Trust
St Bartholomew's Hospital
West Smithfield
London EC1A 7BE


fix: line graph overlaps the labels the bar graph labels

Brief Information
This pull request is in the type of:

[x] bug fixing
[ ] new feature
[ ] others

What does this PR do?
Modify symbolLabel.z2 default value.

Fixed issues

#15679

Details
Before: What was the problem?

After: How is it fixed in this PR?

Misc

[ ] The API has been changed (apache/echarts-doc#xxx).
[ ] This PR depends on ZRender changes (ecomfe/zrender#xxx).

Related test cases or examples to use the new APIs
N.A.
Others
Merging options

[ ] Please squash the commits into a single one when merging.

Other information

Sorry for the wrong code like(perhaps because I'm not using the permlink and the code is updated.
I mean change the z2 value of polyline https://github.com/apache/echarts/blob/fece30ae8f1e7c2e90580af621958d2edfec5209/src/chart/line/LineView.ts#L1018

Hi @pissang
Sorry for the delayed reply, I've updated the commit.
Please kindly review it.


Could not find WAV format chunk?

Trying to use a 2 second audio dialog of Glados from Portal saying "Oh, its you." but keep running into this error. Any help? I've asked  people on GBAtemp, but haven't found anything yet.
This is the source of the audio file I am using
http://i1.theportalwiki.net/img/3/34/GLaDOS_chellgladoswakeup01.wav

Cannot reproduce. What platform are you using?


WFS3 core yaml doc

I've spent some time this week working toward an updated OpenAPI spec for the union of WFS3 core, STAC core, and STAC extensions. Of course, the starting point has to be a usable WFS3 core yaml doc. Such a doc doesn't yet exist, and there are at least three sources of information:

Sample OpenAPI doc (https://github.com/opengeospatial/WFS_FES/blob/master/openapi.yaml)
OpenAPI fragments (https://github.com/opengeospatial/WFS_FES/tree/master/core/openapi)
Latest draft of the core standard (https://rawgit.com/opengeospatial/WFS_FES/master/docs/17-069.html)

Unfortunately, these are not synchronized, resulting in contradictions. The wfs3-core.yaml doc is my attempt to reconcile these sources. In general, I have given deference to the standard doc, as it seems most up-to-date, and probably should be considered definitive.
This yaml doc surely has plenty of errors - even though the Swagger editor doesn't flag any problems, until you try to generate and run some code from it, you won't really know if it is correct. Nevertheless, if this looks like a decent starting point, I propose to use this as a basis for:

Josh's extensions (both STAC and "transactions")
Tim's filter proposal
An OpenAPI 2 backport to use with the tools.

If it looks correct enough, I would also suggest that we give it to the WFS team. It really belongs on their repo.

Hey @hgs-msmith - sorry for the delay on reviewing. But this looks really good. And I definitely agree it belongs in the WFS3 repo. It's definitely a cleaner example than the 'buildings' one.
The one thing is I'm seeing a few little errors when I load it in to http://editor.swagger.io:

I just did 'load url' on https://raw.githubusercontent.com/radiantearth/stac-spec/fdba87b998dd37b1d012933fec61bf0b7539bbc5/api-spec/WFS3-core.yaml
If you resolve that I'm happy to merge here, and once we get it in to WFS3 we can reference it.

Corrected semantic errors:

Cleaned up $ref for collectionId and featureId
Added /components/schema/collectionId definition
Added /components/schema/featureId definition
Added /components/schema/link definition

Chris, it looks like I'm not authorized to merge.

Hrm, it looks like you're a collaborator, not sure if there's something else I'm supposed to do, maybe have to explicitly turn on self merge or something.

Chris, what's the most effective way to promote this doc to the WFS team?

I'd say just make a pull request on https://gitter.im/opengeospatial/WFS_FES
That should spur discussion.


Logger mode with minimal output

Uno tends to be talkative, even in the ERROR logger mode. It needs a silent logger mode with minimal output.
Reported by @odow

It needs a silent logger mode with minimal no output.

Would you prefer something like:
Problem /media/data/AMPL/CUTEst/hs015
2 variables, 2 constraints
Status:					Converged with feasible KKT point

or literally no output?

Literally no output.
 Another is embedding it as a sub-solver in a meta-solver like https://github.com/lanl-ansi/Juniper.jl. You don't want logging from Ipopt polluting Juniper's logs.
I guarantee you that without this, the first post on JuMP's community forum about Uno will be the question "how do I turn off printing for Uno."

We have programatic ways of checking problem size and termination statues etc. You don't need to manually read the log unless something has gone wrong.

I guarantee you that without this, the first post on JuMP's community forum about Uno will be the question "how do I turn off printing for Uno."

Ahahah got it. I'm on it.

Implemented in commit 4b8bcb9.
The logger levels are now: SILENT, DISCRETE, WARNING, INFO, DEBUG, DEBUG2, DEBUG3

SILENT produces no output (the only thing I could not avoid is the line break in ASL's write_sol).
DISCRETE only prints the used options and the result.
the other levels are unchanged.

the only thing I could not avoid is the line break in ASL's write_sol

Not sure I follow? write_sol prints a \n to stdout? That's annoying.

Yes. I think it's this one. Perhaps I can redirect stdout, but this is indeed annoying.

Fixed in cf3ec48.


SW-1537 Compute v2 viability test quantities

Don't bomb out when converting a v1 weight-based accession without subset
weight/count but with a viability test that specifies the withdrawal quantity
as a seed count.

Current dependencies on/for this PR:

main

PR #591

PR #592   👈

This comment was auto-generated by Graphite.


YT getVideoWithIdentifier not working anymore?

I'm using v2.7.1
Videos that I used to be able to access using getVideoWithIdentifier are now returning this error:
Error Domain=XCDYouTubeVideoErrorDomain Code=150 "This video is unavailable." UserInfo={NSURL=https://www.youtube.com/get_video_info?el=embedded&hl=en&ps=default&video_id=co6WMzDOh1o, NSLocalizedDescription=This video is unavailable., AllowedCountries={(.....
The list of Allowed Countries DOES include my country
Here's an example YT id that used to work (but no longer does): co6WMzDOh1o
THere are many more.

+1

is anyone else having issues?

+1

@JonJC @dauletkali
I have used the latest version and the problem has been solved.
I copied the source code into the project, without cocopods.

@fangyuxi , thank you. version 2.7.1 solves the issue


Karaf

Refer to this link for build results (access rights to CI server needed):
https://fabric8-ci.fusesource.com/job/fabric8-quickstarts-master-pullreq/513/
Test PASSed.


Incorrect indent of closure inside struct

See https://pbs.twimg.com/media/C5UtJRrXUAAQBIp.jpg:large

Much smaller example:
struct Foo;
impl Foo {
    fn foo(&self) -> Box<FnMut(i64) -> i64> {
        Box::new(move |aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| {
            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        })
    }
}

@@ -2,7 +2,7 @@
 impl Foo {
     fn foo(&self) -> Box<FnMut(i64) -> i64> {
         Box::new(move |aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| {
-            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-        })
+                     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+                 })
     }
 }

This seems to be happening to me all over the place in my code. It looks like it's now standard to align the body of a closure at one indent deeper than the first | of the closure prologue, rather than one more than the current alignment. This causes a lot of code to end up being very deeply aligned (as above), and looks quite strange. Here is another diff to illustrate:
         let getters: Vec<_> = getters.into_iter()
             .enumerate()
             .map(|(i, g)| {
-                thread::Builder::new()
-                    .name(format!("GET{}", i))
-                    .spawn(move || exercise::launch_reader(g, config))
-                    .unwrap()
-            })
+                     thread::Builder::new()
+                         .name(format!("GET{}", i))
+                         .spawn(move || exercise::launch_reader(g, config))
+                         .unwrap()
+                 })
             .collect();

However, it doesn't seem to happen everywhere:
         Some(self.domain_dependencies
-            .iter()
-            .map(|(d, v)| {
-                let earliest: i64 = v.iter()
-                    .filter_map(|b| self.toplevel.get(b))
-                    .chain(self.last_migration.iter())
-                    .max()
-                    .cloned()
-                    .unwrap_or(0);
-                (*d, earliest)
-            })
-            .collect())
+                 .iter()
+                 .map(|(d, v)| {
+            let earliest: i64 = v.iter()
+                .filter_map(|b| self.toplevel.get(b))
+                .chain(self.last_migration.iter())
+                .max()
+                .cloned()
+                .unwrap_or(0);
+            (*d, earliest)
+        })
+                 .collect())

(yes, I know some of this code isn't pretty to begin with, but that's an orthogonal concern)

It looks like it's now standard to align the body of a closure at one indent deeper than the first | of the closure prologue

This is correct (and intentional). It's a more strict interpretation of visual indent rules. We do have a heuristic (7 lines or something, it is configurable) where we break a closure into block indent rather than visual. When we move to block indenting fn args, then this will always happen.

Closing because I think this is actually intended behaviour.

@nrc Even the second example in the last comment? That doesn't seem to behave that way?
This visual style is significantly more jarring to me than the old one, and causes some pretty serious indentation anywhere you do, say, Box::new(move || {. Is there a way to override this behavior to instead always switch to a block indent?

Even the second example in the last comment?

That example seems to be hitting the threshold where we block indent.

Is there a way to override this behavior to instead always switch to a block indent?

I'm working on it! I expect to land this in the next two weeks.

Where is the recommendation for using visual indent so aggressively? I don't see it in the fmt-rfcs example, nor in the guide?
It also keeps producing really weird results for me, especially when pushing against the line length limit, as @nical pointed out in https://github.com/rust-lang-nursery/fmt-rfcs/issues/8#issuecomment-262916202. For example:
                        m.map_data(|mut rs| {
                            rs.retain(|r| {
                                r.iter().enumerate().all(|(i, v)| {
                                    if let Some(ref rv) = on[i] {
                                        rv == v
                                    } else {
                                        true
                                    }
                                })
                            });
                            rs
                        });

becomes
                        m.map_data(|mut rs| {
                            rs.retain(|r| {
                                          r.iter().enumerate().all(|(i, v)| if let Some(ref rv) =
                                    on[i] {
                                                                       rv == v
                                                                   } else {
                                                                       true
                                                                   })
                                      });
                            rs
                        });

Where is the recommendation for using visual indent so aggressively?

It's a consequence of some internal reorganisation. It's actually in the service of moving to block indent in more places, but is temporarily having the opposite effect.


how to resume vit_1d_tp2_pp2 model

🐛 Describe the bug
I use this code to load_checkpoint to resume vit_1d_tp2_pp2 model,but got this error
Traceback (most recent call last):   File "train_with_trainer.py", line 143, in <module>     load_checkpoint('./checkpoints/checkpoint0002.pth', model, optimizer, lr_scheduler)   File "/home/haida_huanglei/anaconda3/envs/colossalai/lib/python3.8/site-packages/colossalai/utils/checkpointing.py", line 234, in load_checkpoint     train_imagenet()   File "train_with_trainer.py", line 96, in train_imagenet     model_state = partition_pipeline_parallel_state_dict(model, model_state)   File "/home/haida_huanglei/anaconda3/envs/colossalai/lib/python3.8/site-packages/colossalai/utils/checkpointing.py", line 133, in partition_pipeline_parallel_state_dict     _send_state_dict(state_dict, gpc.get_next_global_rank(ParallelMode.PIPELINE), ParallelMode.PIPELINE)   File "/home/haida_huanglei/anaconda3/envs/colossalai/lib/python3.8/site-packages/colossalai/utils/checkpointing.py", line 99, in _send_state_dict     load_checkpoint('./checkpoints/checkpoint0002.pth', model, optimizer, lr_scheduler)   File "/home/haida_huanglei/anaconda3/envs/colossalai/lib/python3.8/site-packages/colossalai/utils/checkpointing.py", line 234, in load_checkpoint     state_tensor, state_size = dist.distributed_c10d._object_to_tensor(state_dict) TypeError: _object_to_tensor() missing 1 required positional argument: 'device'
Environment
No response

@stonewjf , can you please try this way from resuming from checkpoints?


API - New endpoint for coordinate OTUs

When I view an OTU page, then I need a list of all coordinte OTUs, so that I can summarize data from multiple concepts into this concept.
/otus/123/coordinate

Closed, error in commit fix message.


Python module 'ipctk' has no attribute 'Collision'

Describe the bug
Trying to call the Collisions constructor in Python raises an AttributeError module 'ipctk' has no attribute 'Collision'.
To Reproduce
Call the Collisions constructor, ie. collisions = ipctk.Collisions().
Environment (please complete the following information):

OS: Debian Sid
Version: IPCTK 1.2
Python version: Python 3.8.19

Collisions is called CollisionConstraints in v1.2. I think you might be looking at the latest documentation while using version 1.2. Here are the docs to v1.2: https://ipctk.xyz/v1.2.0/tutorial/getting_started.html.

That's correct - thanks for pointing me in the right direction :)


Added unit tests for PrepareResetWorkflowExecutionRequestWithMapsAndE…

What changed?

Added 2 unit tests for PrepareResetWorkflowExecutionRequestWithMapsAndEventBuffer.
2 more cases for PrepareCreateWorkflowExecutionRequestWithMaps

Why?
As a part of the code coverage initiative.

How did you test it?
unit test

Potential risks
NA

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build 018e1517-3057-4df9-859e-a47c60184feb
Details

0 of 0   changed or added relevant lines in 0 files are covered.
57 unchanged lines in 15 files lost coverage.
Overall coverage increased (+0.006%) to 63.456%

Files with Coverage Reduction
New Missed Lines
%

service/matching/matcher.go
1
91.07%

common/task/fifo_task_scheduler.go
2
87.63%

common/task/parallel_task_processor.go
2
93.06%

common/util.go
2
91.69%

service/history/execution/mutable_state_builder.go
2
68.74%

service/matching/db.go
2
73.23%

common/log/tag/tags.go
3
50.18%

tools/cli/admin_db_decode_thrift.go
3
69.23%

common/persistence/nosql/nosqlplugin/cassandra/tasks.go
4
76.09%

service/history/task/fetcher.go
4
85.05%

Totals

Change from base Build 018e1500-6a49-463a-9ea8-9d50743955ec:
0.006%

Covered Lines:
93031

Relevant Lines:
146607

💛  - Coveralls


Add icon to the extension

It would be nice to add an icon to the extension as per https://code.visualstudio.com/api/references/extension-manifest. One of the images under https://www.eclipse.org/epsilon/branding/ could be reused/adapted for this purpose.

Added Epsilon logo as icon for release 1.3.0


count_unanswered_questions: use implementation from dmcontent

This function got moved to dmcontent in the course of https://trello.com/c/g5P0RxQn

Er no didn't see it.


🐛 [Bug] Encountered bug when using Torch-TensorRT

Compiling a Scripted model gives error at torch.nn.functional.interpolate(x, scale_factor=2.0, mode="nearest")
RuntimeError                              Traceback (most recent call last)
Cell In[14], line 8
      2 scripted_model = torch.jit.script(model.to("cuda"), input_image_pytorch.to("cuda"))
      4 # trt_encoder = torch_tensorrt.compile(torch.jit.script(encoder).to("cuda"),
      5 #     inputs= [input_image_pytorch.to("cuda")],
      6 #     enabled_precisions= { torch.float32} # Run with FP16
      7 # )
----> 8 trt_model = torch_tensorrt.compile(scripted_model.to("cuda"),
      9     inputs=  [input_image_pytorch.to("cuda")], # [torch_tensorrt.Input([1,3,480,768])], # [input_image_pytorch.detach().to("cuda")],
     10     enabled_precisions= { torch.float32} # Run with FP16
     11 # trt_decoder = torch_tensorrt.compile(torch.jit.script(depth_decoder).to("cuda"),
     12 #     inputs= [features],
     13     # enabled_precisions= { torch.float32} # Run with FP16
     14 )

File ~/miniconda3/envs/inference/lib/python3.8/site-packages/torch_tensorrt/_compile.py:125, in compile(module, ir, inputs, enabled_precisions, **kwargs)
    120         logging.log(
    121             logging.Level.Info,
    122             "Module was provided as a torch.nn.Module, trying to script the module with torch.jit.script. In the event of a failure please preconvert your module to TorchScript",
    123         )
    124         ts_mod = torch.jit.script(module)
--> 125     return torch_tensorrt.ts.compile(
    126         ts_mod, inputs=inputs, enabled_precisions=enabled_precisions, **kwargs
    127     )
    128 elif target_ir == _IRType.fx:
    129     if (
    130         torch.float16 in enabled_precisions
    131         or torch_tensorrt.dtype.half in enabled_precisions
    132     ):

File ~/miniconda3/envs/inference/lib/python3.8/site-packages/torch_tensorrt/ts/_compiler.py:136, in compile(module, inputs, input_signature, device, disable_tf32, sparse_weights, enabled_precisions, refit, debug, capability, num_avg_timing_iters, workspace_size, dla_sram_size, dla_local_dram_size, dla_global_dram_size, calibrator, truncate_long_and_double, require_full_compilation, min_block_size, torch_executed_ops, torch_executed_modules)
    110     raise ValueError(
    111         f"require_full_compilation is enabled however the list of modules and ops to run in torch is not empty. Found: torch_executed_ops: {torch_executed_ops}, torch_executed_modules: {torch_executed_modules}"
    112     )
    114 spec = {
    115     "inputs": inputs,
    116     "input_signature": input_signature,
   (...)
    133     },
    134 }
--> 136 compiled_cpp_mod = _C.compile_graph(module._c, _parse_compile_spec(spec))
    137 compiled_module = torch.jit._recursive.wrap_cpp_module(compiled_cpp_mod)
    138 return compiled_module

RuntimeError: The following operation failed in the TorchScript interpreter.
Traceback of TorchScript (most recent call last):
  File "/home/user/miniconda3/envs/inference/lib/python3.8/site-packages/torch/autograd/grad_mode.py", line 21, in forward
        x = self.quant(x)
        x = self.encoder(x)
        x = self.decoder(x)
            ~~~~~~~~~~~~ <--- HERE
        x = self.dequant(x[0])
        return x
  File "/home/user/playground/networks/depth_decoder_for_conversion.py", line 116, in forward

            # upsample and horizontal connections
            x = torch.nn.functional.interpolate(x, scale_factor=2.0, mode="nearest")
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE
            if self.use_skips and i > 0:
                x_concat = input_features[i - 1]
  File "/home/user/miniconda3/envs/inference/lib/python3.8/site-packages/torch/nn/functional.py", line 3922, in interpolate
        return torch._C._nn.upsample_nearest1d(input, output_size, scale_factors)
    if input.dim() == 4 and mode == "nearest":
        return torch._C._nn.upsample_nearest2d(input, output_size, scale_factors)
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE
    if input.dim() == 5 and mode == "nearest":
        return torch._C._nn.upsample_nearest3d(input, output_size, scale_factors)
RuntimeError: Expected static_cast<int64_t>(scale_factors->size()) == spatial_dimensions to be true, but got false.  (Could this error message be improved?  If so, please report an enhancement request to PyTorch.)

To Reproduce
Steps to reproduce the behavior:
import torch
import torch_tensorrt
input_image_pytorch = torch.randn((1, 3, 480, 768), requires_grad=False).to("cuda").detach()

scripted_model = torch.jit.script(model.to("cuda"), input_image_pytorch.to("cuda"))
trt_model = torch_tensorrt.compile(scripted_model.to("cuda"),
    inputs=  [input_image_pytorch.to("cuda")],
    enabled_precisions= { torch.float32}
)

Expected behavior
No error.
Environment

Build information about Torch-TensorRT can be found by turning on debug messages

Torch-TensorRT Version (e.g. 1.0.0): 1.3.0
PyTorch Version (e.g. 1.0): 1.13.1
CPU Architecture: x86
OS (e.g., Linux): Ubuntu 18.04 LTS
How you installed PyTorch (conda, pip, libtorch, source): conda
Build command you used (if compiling from source):
Are you using local sources or building from archives:
Python version: 3.8
CUDA version: 11.7
GPU models and configuration:
Any other relevant information:

Additional context
The error occurs at torch.nn.functional.interpolate(x, scale_factor=2.0, mode="nearest") line in the network definition. JIT Scripting works.

@narendasan @bowang007 any update on this? I am observing the same behaviour.
Can it be linked to this older issue? Maybe in solving that older one, it broke the support for specifying a single float as scale_factors (I mean at least at the interpolate level: torch.nn.functional.interpolate(x, scale_factor=2.0, mode="nearest"))? It's hard to understand exactly what happened with this old issue since there is no PR linked to it.

I'd like to see this issue fixed as it is preventing us from using the software for our use case currently.

@narendasan or @bowang007 is anyone working on this? If not, what could be done to help?

Hi @philippewarren, I went through this several weeks ago but I don't think we have seen such issues previously.
Could you please provide a small reproducer? Also, a more detailed log would be helpful as well.
Thanks!

This seems to be caused by a combination of an upscale and multiple return values for the forward function of the network.
Here is a minimal reproducible example:
import torch
import torch.nn as nn
import torch_tensorrt

IMAGE_SIZE = (416, 416)

class MRE(nn.Module):
    def __init__(self):
        super(MRE, self).__init__()

        self._upsample = nn.Upsample(scale_factor=2, mode='nearest')

    def get_image_size(self):
        return IMAGE_SIZE

    def forward(self, x):
        y = self._upsample(x)

        return [x, y]

model = MRE()
x = torch.ones((1, 3, model.get_image_size()[0], model.get_image_size()[1]))

model.eval()

device = torch.device('cuda')
model = model.to(device)

trt_module = torch_tensorrt.compile(
    model,
    inputs=[x.to(device)],
    enabled_precisions={torch.float},
)

torch.jit.save(trt_module, "mre.trt.pth")

The same error happens if the list returned ([x, y]) is replaced by a tuple ((x, y)).
This is the associated output:
WARNING: [Torch-TensorRT] - For input x.1, found user specified input dtype as Float32. The compiler is going to use the user setting Float32
Traceback (most recent call last):
  File "./torch-tensort-mre.py", line 31, in <module>
    trt_module = torch_tensorrt.compile(
  File "/home/philippe/.local/lib/python3.8/site-packages/torch_tensorrt/_compile.py", line 125, in compile
    return torch_tensorrt.ts.compile(
  File "/home/philippe/.local/lib/python3.8/site-packages/torch_tensorrt/ts/_compiler.py", line 136, in compile
    compiled_cpp_mod = _C.compile_graph(module._c, _parse_compile_spec(spec))
RuntimeError: The following operation failed in the TorchScript interpreter.
Traceback of TorchScript (most recent call last):
  File "./torch-tensort-mre.py", line 18, in forward
    def forward(self, x):
        y = self._upsample(x)
            ~~~~~~~~~~~~~~ <--- HERE

        return [x, y]
  File "/home/philippe/.local/lib/python3.8/site-packages/torch/nn/modules/upsampling.py", line 156, in forward
    def forward(self, input: Tensor) -> Tensor:
        return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners,
               ~~~~~~~~~~~~~ <--- HERE
                             recompute_scale_factor=self.recompute_scale_factor)
  File "/home/philippe/.local/lib/python3.8/site-packages/torch/nn/functional.py", line 3922, in interpolate
        return torch._C._nn.upsample_nearest1d(input, output_size, scale_factors)
    if input.dim() == 4 and mode == "nearest":
        return torch._C._nn.upsample_nearest2d(input, output_size, scale_factors)
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <--- HERE
    if input.dim() == 5 and mode == "nearest":
        return torch._C._nn.upsample_nearest3d(input, output_size, scale_factors)
RuntimeError: Expected static_cast<int64_t>(scale_factors->size()) == spatial_dimensions to be true, but got false.  (Could this error message be improved?  If so, please report an enhancement request to PyTorch.)

torch.__version__ is 1.13.1+cu117
torch_tensorrt.__version__ is 1.3.0
CUDA version is 12.1 with driver version 530.30.02 on Ubuntu 20.04.
CUDNN version is <IP_ADDRESS>-1+cuda12.1.

any update?


[BUG] Config precedence isn't respected

Description
When editing ~/.config/neon/neon.yaml and restarting neon-audio the changes work, but don't persist past a reboot.
Steps to Reproduce

Make changes to the ~/.config/neon/neon.yaml file to explicitly disable all default wake words and enable "Hey Ziggy"
Restart neon-audio
Confirm that only "Hey Ziggy" works
Shut down the Mark 2 unit
Start the Mark 2 unit
Try to use "Hey Ziggy"

Relevant Code
No response
Other Notes
I suspect this has something to do with precedence of configuration locations, but I'm not sure how that all works in the code.

The issue here isn't the precedence not being respected. The active key has to be set to false in user config, otherwise the other configs will override user config.


Add an additional index if the lc_collate is not C

JIRA Ticket: n/a
What does this Pull Request do?
Tries to add an additional index for Postgres if your LC_TYPE is not C so that LIKE queries can use this index.
How should this be tested?
Build and run and watch that the hasResourcesStartingWith does not slow incrementally with database size.
Interested parties
@fcrepo/committers (@awoods)

It is unclear if Maria and MySQL need those optimizations. We probably need to run the same test against all 3 and see how they compare.


In man,reading manuals ,when i man /challenge/challenge can't print the hint

hacker@man~reading-manuals:/$ man /challenge/challenge
#!/opt/pwn.college/python

import sys import re import os

FLAG  =  open("/flag").read().strip()  LETTERS = re.sub("[^a‐z]",
"", FLAG[FLAG.index(’{’):]) + "ab" NUMBERS = re.sub("[^0‐9]", "",
FLAG[FLAG.index(’{’):]) + "1" OPT,ARG = LETTERS[:6], NUMBERS[:3]

if  len(sys.argv)  ==  1:          print("Incorrect usage! Please
read the challenge man page!")  elif sys.argv[1] ==  "‐‐fortune":
        os.system("/usr/games/fortune")   elif   sys.argv[1]   ==
"‐‐version":         print("I’m exactly the  version  I  need  to
be!")   elif sys.argv[1:] == ["‐‐"+OPT, ARG]:         print("Cor‐
rect usage! Your flag:", FLAG) else:         print("Incorrect us‐
age! Please read the challenge man page!")

hacker@man~reading-manuals:/$ zcat /usr/share/man/man1/challenge.1.gz

.TH CHALLENGE "1" "May 2024" "pwn.college" "Challenge Commands"
.SH NAME
/challenge/challenge \- print the flag!
.SH SYNOPSIS
.B challenge
\fI\,OPTION\/\fR
.br
.SH DESCRIPTION
.\" Add any additional description here
.PP
Output the flag when called with the right arguments.
.TP
\fB\-\-fortune\fR
read a fortune
.TP
\fB\-\-version\fR
output version information and exit
.TP
\fB\-\-awqwan NUM\fR
print the flag if NUM is 152
.SH AUTHOR
Written by Zardus.
.SH "REPORTING BUGS"
The repository for this dojo: <https://github.com/pwncollege/linux-luminarium/>
.SH "SEE ALSO"
man(1) bash-builtins(7)

I updated the challenge description to try to avoid this sort of misunderstanding. Does the update help?

i mean, when i in dojo man ,i input man /challenge/challenge,only see the following image

I understand. man /challenge/challenge is not the right solution, but I think the description was inadequate for people to avoid doing that. I updated the description to hopefully make it more clear.

ohoh,i understand , thank you very much

I also added a wrapper around the man command to catch this case for future learners :-)


Some creatures from another mods doesn't work

I had tried add several mobs to Hatchery via datapack, but part of them doesn't work, all these mobs have bucket
hatchery.txt
And from these list works only
bettas:betta_fish, upgrade_aquatic:perch, fins:blu_wee, fins:pea_wee, fins:banded_redback_shrimp, fins:teal_arrowfish, fins:swamp_mucker, fins:flatback_sucker, fins:high_finned_blue, fins:phantom_nudibranch, fins:ornate_bugfish, fins:wee_wee, unnamedanimalmod:flashlight_fish, unnamedanimalmod:elephantnose_fish, unnamedanimalmod:black_diamond_stingray, unnamedanimalmod:rocket_killifish, unnamedanimalmod:leafy_seadragon, unnamedanimalmod:spotted_garden_eel, unnamedanimalmod:mudskipper
Also some fishes float on the side in hatchery

I'm going to guess while they have a bucket they don't use the vanilla one but I will take a look in to it.

Just had a look at betteranimalsplus and yeah they use a custom item instead of the fish bucket system already in minecraft. I think the easiest thing will be for me to have you pass in the item as well so any item will work. Wasn't expecting people to not use the fish bucket item for their fish buckets. So didn't want to do that but looks like I'll have to.

For what it's worth, that sounds like it will make the mod way, WAY more extensible for pack devs anyway. Silver linings?


GDScript 2.0: Passing AutoLoad to function with typed parameter error "argument 1 should be Node but is ."

Godot version
v4.0.alpha.custom_build [5fec0d232]
System information
Arch on 5.18.10-arch1-1
Issue description
Parser Error: Invalid argument for "test()" function: argument 1 should be Node but is .

Steps to reproduce
scene.gd:
extends Node

func test(node: Node) -> void:
	print(node)

func _ready() -> void:
	test(Global)

Minimal reproduction project
test13.zip

Similar error in v4.0.beta8.official [45cac42c0]
Debian 11

I cannot give a MVP/code because is difficult to replicate.
If I change position to the first parameter the editor do not show the error but I will have the error at runtime
If I keep as is in pics the editor show the error but the code compile and run.
Thanks

So I just checked and #70331 fixes this issue. One big detail about this issue is that at least on current master the error is not present in-editor but is still present at runtime. That's what the linked PR fixes :)

Similar error in v4.0.beta8.official [45cac42] Debian 11

That feels like a different issue to me. This one here only happens at runtime and it was about not finding the autoload. Yours appears more related to an issue with the type of the function that it did find in the autoload.
Out of curiosity, do you have any other function with the same name? Or are you using binds anywhere?

@anvilfolk
Nope I do not have other functions in the same project with the same name.
Never used bind so far :)

@git2013vb would you be able to open an issue for that if you haven't already? :) Would love to see that fixed :)

@git2013vb would you be able to open an issue for that if you haven't already? :) Would love to see that fixed :)

I cannot. It was a on time error. If it will happen again Ill do it. I would love too see the others my bugs  fixed ;)
Thanks

Hahahah! But if people don't know what bugs there are, they don't know what to fix! We all want to make godot as stable as possible! :) And everyone has different skills in different parts of the codebase, so it's not like everyone is looking at 7k issues, haha :D


Improve usecase diagram

@startuml
:First Actor:
:Another\nactor: as Men2
actor Men3
actor :Last actor: as Men4
@enduml

PR #31


Macros directory washed out

The macros directory is very hard to read with Dorako UI enabled.  The background and text are both very, very light.

The macro listed there can hardly be seen.  It wasn't like this as recently as earlier today, so I think this is due to a recent patch.

Fixed in 1.12.4 out now


Update init.py

Sir what

Nothing Just Gaved a Pull Request 🥲

Lol

Lol

Sar, Can you Unban me in Vanitas Support Chat?

Ask Nk


IDialogService's methods should not have UICommand parameter

Having a UI-related type as a parameter for an interface which gets injected into a viewmodel is bad practice since the VM should know nothing about the view.
Task ShowAsync(string content, string title, params UICommand[] commands);
should therefore be refactored

Sell this to me. Who cares?


Fix typos

Found few misspellings.

I merged. thanks so much @szepeviktor !

Glad to contribute.


Constant expressions not allowed in export var ranges

Neither referencing previously defined consts nor using numeric-only expressions (e.g. 1.0/64) can be used in export var range hints.
export(float, 1.0/64, 64) # SCRIPT ERROR: GDScript::reload: Parse Error: Expected ',' or ')' in numeric range hint.
const a = 4
export(float, a, 5) # SCRIPT ERROR: GDScript::reload: Parse Error: Expected a range in numeric hint

Will change how this works in 3.0

This seems to be true for using any constant in another constant's definition.
const cellSize = 32
const cellDim = Vector2(cellSize, cellSize)

will leave this open to remind me to fix it before 3.0 is out

This is still valid in the current master branch. Not critical for the 3.1 milestone though, moving to 3.2 where various GDScript improvements are expected.

Issue also course with using enum values as const values definition. Really annoying

@vnen If you plan to implement this for 4.0, feel free to reopen a short GIP to keep track of it.

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.
If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!


Implement Classification Filter Option

Right now we are considering all classifications in the resulting output file. Implement a command line option, and also an option in the interactive interface, to filter out specific classification categories from the results (Social Conversation for example makes up a majority of the results, perhaps we might want to filter it out).

Pushed updated directly to main:
Different ways to add the arguments:

Results with the top 2 (Social Conversation and Solution Discussion) categories omitted:


Cannot login as chief or cook

If you login to the system as chief or cook, you get the notification, that authentication was successful, but afterwards, the app is broken and you cannot do anything further until you reload the website.

In MTS user behavior(Access control of particular area) is define for every user role Like -
Manager having rights to access prediction(SAP)
Waiter having rights of Orders (Waiter cockpit)
but other user like Cook ,Barkeeper ,Chief does not have any usecase currently. So when it done using these logins it just behaves as said above.

ok, but that's not true!? if you login as someone else, you will break the UI.
Therefore, I posted this bug. :/

Yes , These user  Cook ,Barkeeper and Chief are defined in database side( i don't know why if not useful) then we can login it successfully but UI side these users are not available then UI will be break after the login.

I think we need a usecase for cook/chief/Barkeeper or we should remove them from backend

if there is no use case, remove them. But I am quite afraid, about the behavior at all.
@sjimenez77 please can you do a review on the code level? There should be nothing at all, which breaks on the UI, if there is an "unknown user" to the UI, which is registered on the backend side.
What about new registrations? For me this completely sounds like an invalid implementation.

Hi @vapadwal, let's get rid of them as there is no use case coming in the following months that makes use of those roles/credentials.
Please ask @suprishi to check the UI behaviour when login with wrong credentials in any case.
Thanks!

I think adding a message is good idea

This issue is fixed and created PR https://github.com/devonfw/my-thai-star/pull/277 is merged ,hence we can close this issue.


fix: add a couple of GC commands

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jstrachan
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jstrachan]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Does the gem work with subdomains?

If I create two identical routes on two subdomains, only the first route is taken into account.
It works as if the subdomain constraint didn't exist.
ex :
  constraints(:subdomain => 'foo') do
    match '/' => 'home#foo', :as => :root
  end

  constraints(:subdomain => 'bar') do
    match '/' => 'home#bar', :as => :bar_home
  end

bar.website.com/ points to home#foo.

I think I found the problem.
The subdomain is not passed to the translated routes by your gem. You deal with the request_method but not the subdomain.
I've never created or updated gems, so I'm unable to present you with a pull request.
Here's what I've done to make it work.
In the translate_route method, after
conditions[:request_method] = parse_request_methods route.verb if route.verb != //
I added
conditions[:subdomain] = route.constraints[:subdomain] if route.constraints
Thanks

Hi,
Thanks, just released a new version of the gem with your patch. I also included you in the contributors list. :)

Thanks ;-)


Deployment on GKE with GitHub Actions

Closes https://github.com/sayakpaul/ml-deployment-k8s-fastapi/issues/5, https://github.com/sayakpaul/ml-deployment-k8s-fastapi/issues/7, and https://github.com/sayakpaul/ml-deployment-k8s-fastapi/issues/6.

Yes. For the next steps, let's discuss the existing issues created latest?


DateTime stohastic index use

Happyness,
This issue, it is in the LiteDB since the 3.x series, and still not fixed in the newest version.
The indexed Min Max values are stohastic. After insert in the same session they are ok, but after reopening the database (program restart) they returning UTC. The filtering looks good, but i am not sure if index is used there.
Here is a test code demonstrating the problem.
using System;
using System.IO;
using System.Linq;
using LiteDB;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace LiteDBDateTimeIndexMinMax
{
    [TestClass]
    public class LiteDBDateTimeIndexMinMaxUnitTest
    {
        [TestMethod]
        public void MinMaxStandardDateTime()
        {
            File.Delete("test.litedb");

            LiteDatabase db1 = new LiteDatabase("test.litedb");
            LiteCollection<DateTimeTest> coll1 = db1.GetCollection<DateTimeTest>();
            coll1.EnsureIndex(x => x.dt);

            coll1.Insert(new DateTimeTest() { DateTimeTestID = 1, dt = new DateTime(2018, 02, 22, 0, 0, 0) });
            coll1.Insert(new DateTimeTest() { DateTimeTestID = 2, dt = new DateTime(2018, 02, 22, 23, 59, 59) });

            MinMaxCommon(coll1);

            db1.Dispose();

            LiteDatabase db2 = new LiteDatabase("test.litedb");
            LiteCollection<DateTimeTest> coll2 = db2.GetCollection<DateTimeTest>();

            MinMaxCommon(coll2);

            coll2.Insert(new DateTimeTest() { DateTimeTestID = 3, dt = new DateTime(2018, 02, 21, 23, 59, 59) });
            coll2.Insert(new DateTimeTest() { DateTimeTestID = 4, dt = new DateTime(2018, 02, 23, 0, 0, 0) });
            coll2.Insert(new DateTimeTest() { DateTimeTestID = 5, dt = new DateTime(2018, 02, 22, 0, 0, 1) });
            coll2.Insert(new DateTimeTest() { DateTimeTestID = 6, dt = new DateTime(2018, 02, 22, 23, 59, 58) });

            MinMaxCommon(coll2);

            db2.Dispose();

            LiteDatabase db3 = new LiteDatabase("test.litedb");
            LiteCollection<DateTimeTest> coll3 = db3.GetCollection<DateTimeTest>();

            MinMaxCommon(coll3);

        }

        private void MinMaxCommon(LiteCollection<DateTimeTest> coll)
        {
            var searchdatetime = new DateTime(2018, 02, 22, 0, 0, 10);

            var min = coll.Min(x => x.dt).AsDateTime;
            var max = coll.Max(x => x.dt).AsDateTime;

            var smaller = coll.Find(x => x.dt < searchdatetime);
            var greater = coll.Find(x => x.dt > searchdatetime);

            var all = coll.FindAll().ToList();

            var linqmin = all.Min(x => x.dt);
            var linqmax = all.Max(x => x.dt);

            Assert.AreEqual(min, linqmin);
            Assert.AreEqual(max, linqmax);
        }

        public class DateTimeTest
        {
            public int DateTimeTestID { get; set; }
            public DateTime? dt { get; set; }
            public string mittomen { get; set; }
        }
    }
}

Joy and Harmony!

you can change date to string
dt = new DateTime(2018, 02, 23, 0, 0, 0).ToShortDateString() +
new DateTime(2018, 02, 23, 0, 0, 0).ToShortTimeString()
i test and fixed

I fixed it too with a conversion to long and bac, but i suppose it should work out of the box without coding it around.

Hi @MiklosPathy, partial fixed. Now, index key are converted in Local date king. But, LiteDB has UTC parameter that are not used in this case. I will review this double serialize/deserialize bson implementation to use an single option.

Yes, it's possible. But, may I ask why are you still using v3? v3 has an bug on concurrency that I only fixed in v4 (I made v4 because this bug).

We need transactions, and they were removed in v4.

I imagined that... that's way transaction are backing for v5.... but in better/fastest/non-locking way... :)
I will create a branch of v3 to fix this...

Thank you.

Done!
https://www.nuget.org/packages/LiteDB/3.1.5

Thank you, everything works.
The chi is flooding.

Hi agan,
I ran the test with 5.10 and found exactly the same problem.


python312Packages.model-bakery: 1.17.0 -> 1.18.0

Diff: https://github.com/model-bakers/model_bakery/compare/refs/tags/1.17.0...1.18.0
Changelog: https://github.com/model-bakers/model_bakery/blob/1.18.0/CHANGELOG.md
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 305942 run on x86_64-linux 1

4 packages built:

python311Packages.model-bakery
python311Packages.model-bakery.dist
python312Packages.model-bakery
python312Packages.model-bakery.dist

@ofborg eval


Updated cmdlet mapping

Learn Build status updates of commit f85078f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoftgraph/docs-conceptual/azuread-msoline-cmdlet-map.md
:white_check_mark:Succeeded
View (graph-powershell-1.0 || graph-powershell-beta)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit d2341ab:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoftgraph/docs-conceptual/azuread-msoline-cmdlet-map.md
:white_check_mark:Succeeded
View (graph-powershell-1.0 || graph-powershell-beta)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@timayabi2020, please help me merge this. Thanks.
Cc: @mwongerapk


Use attestation to get public key if certificate is not populated

This fixes on quirk by introducing another :neutral_face:
Allows for a slot with a private key generated on a Yubikey with firmware >= 4.3 to be used for signing even if a certificate has not been set. Requires that slots be checked for a valid certificate before being used for other purposes.
Could also be implemented as a new function such as SingerSlot, which would make no guarantees around certificates.

This is incredibly funny, clever and a damming state of the PIV applet on the token :laughing:
I'll review this shortly, I'm not against it on principal yet :laughing:

Hell of a change, thanks @bluestealth - I didn't think I was going to take this, but it fails in the same way for old yubikeys and keys that were imported, so I don't see any reason not to try this as a last-ditch :+1:
Thank you!


Getting inconsistent response for some FHIR Resources in the Single Patient API test case

Hello,
We are trying to test the inferno test case no 4 Single Patient API. And somewhere we aren't able to get the required output for below test cases. The response is inconsistent as it working sometime and giving us the desired output.
4.8.03 Server returns valid results for DiagnosticReport search by patient + category + date
4.10.04 Server returns valid results for DocumentReference search by patient + category + date
4.26.02 Server returns valid results for Procedure search by patient + date
These above test-cases are getting passed for the same data at one time and failed at another. We have checked the FHIR Resource data for the same from our side and it is following the US Core Standards.
Can you please suggest us something which might help us ?
Thank you.

Can you provide more details:
Are you running using inferno.healthit.gov or your local installation?
If you use inferno.healthit.gov, do you have a url to your test session? If you don't want to post the url here, you can send to my email<EMAIL_ADDRESS>If you don't have a public available session url, then
What is the failed message?
What are FHIR resource server returned?

I compared the urls from the passed test and failed test. They are the same. The server does not respond to the query consistently.
Could you check why your server did not return any result for this query in some sessions?
[base]/DiagnosticReport?category=LP29684-5&date=2022-10-11T18:35:00Z&patient=781

@sjayswal I will close this issue. If you experience similar issue, you can either reopen this one or create a new issue. Thank you.


Merge upstream

This pulls in the latest from jquery/harmony. This builds on top of #89 (which we should merge separately and I can rebase this).
The conflicts weren't too bad - not much has changed substantially. The biggest thing is actually linting, so I went and fixed lint in our forked bits. I left upstream lint warnings in place for cleaner future merges (there are 3 about unused variables)

@jeffmo accepted, even though he didn't say it here :)


Fix --fw-version parameter not being used

Title basically.
Not sure why this if statement got removed? I assume it was accidental.
Regardless, without this change running something like:
rnodeconf -U --fw-version 1.71 --nocheck -u /dev/port
would fail, with the complaint that the firmware version was not set in the
command line arguments. Obviously this makes no sense and doesn't seem to be
intended.

There was some issues with using custom firmware versions at some point, and I think it got disabled there, or it was never properly finished. Can you confirm that it works correctly with custom versions now, for a repo that hosts older versions?

Sorry, I don't really understand what you mean in the bit you've crossed out.

Ah, wait, was confused there for a second. This was also used for specifying offline install versions, when rnodeconf could not reach any online repositories, and you'd need to specify manually what version to use. It would then use that version from disk, if present.

Yes, this is exactly what I was doing, I was using rnodeconf with a zip file (with a generated hash) manually copied from the RNode_Firmware in order to test flashing my own firmware with the autoinstaller. I had to disable the online repo option to do this. Basically, the change you made would stop it checking the firmware version before throwing the error that it wasn't set (and it couldn't reach the repo online). I hope that makes sense!

rnodeconf is going to be rewritten anyway


UICollectionView not centering transition in iOS 9, worked fine in iOS 8.

The app essentially transitions between two different UICollectionViewFlowLayouts in a UICollectionView. I've not had a single problem with the TLLayoutTransitioning class prior to iOS 9. Thanks so much for taking the time to make and share this, by the way! It's a life saver. :)
For some reason since updating to iOS 9 (app still compiled for 8+) the transition doesn't center the offset, and instead seems to throw the whole transition off now while transitioning from large to small layouts, as seen here:

Any thoughts what might've changed?

I'm also receiving this issue in the output window:
2015-09-21 13:04:54.231 [1504:472068] Logging only once for UICollectionViewFlowLayout cache mismatched frame
2015-09-21 13:04:54.233 [1504:472068] UICollectionViewFlowLayout has cached frame mismatch for index path <NSIndexPath: 0xc000000000000016> {length = 2, path = 0 - 0} - cached value: {{73.099999999999994, 351}, {173.80000000000001, 220}}; expected value: {{81, 361}, {158, 200}}
2015-09-21 13:04:54.234 [1504:472068] This is likely occurring because the flow layout subclass NNPodCollectionViewFlowSmallLayout is modifying attributes returned by UICollectionViewFlowLayout without copying them

This is likely occurring because the flow layout subclass NNPodCollectionViewFlowSmallLayout is modifying attributes returned by UICollectionViewFlowLayout without copying them

Did you check whether NNPodCollectionViewFlowSmallLayout is internally modifying attributes without copying them? I don't think TLLayoutTransitioning modifies your layouts (I'll double check this when I get a chance to look deeper into this).

Yes, I was making a copy. Unless I'm completely missing something, I think that should do it, though the error still claims I'm not copying them. I assumed this was another issue with iOS 9 throwing warnings where it shouldn't, though this could very well be PEBKAC.
Here's the code. Both times the attributes array are established, I've created a copy. Thanks again for getting back to me.
- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity
{
    CGFloat offsetAdjustment = MAXFLOAT;
    CGFloat horizontalCenter = proposedContentOffset.x + (CGRectGetWidth(self.collectionView.bounds) / 2.0);

    CGRect targetRect = CGRectMake(proposedContentOffset.x, 0.0, self.collectionView.bounds.size.width, self.collectionView.bounds.size.height);

    NSArray* array = [[self layoutAttributesForElementsInRect:targetRect] copy];

    for (UICollectionViewLayoutAttributes* layoutAttributes in array) {
        if (layoutAttributes.representedElementCategory != UICollectionElementCategoryCell)
            continue;

        CGFloat itemHorizontalCenter = layoutAttributes.center.x;
        if (ABS(itemHorizontalCenter - horizontalCenter) < ABS(offsetAdjustment)) {
            offsetAdjustment = itemHorizontalCenter - horizontalCenter;

            layoutAttributes.alpha = 0;
        }
    }
    return CGPointMake(proposedContentOffset.x + offsetAdjustment, proposedContentOffset.y);
}

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect
{

    NSArray *allAttributesInArray = [[super layoutAttributesForElementsInRect:rect] copy];

    CGRect visibleRect;
    visibleRect.origin = self.collectionView.contentOffset;
    visibleRect.size = self.collectionView.bounds.size;

    for(UICollectionViewLayoutAttributes* attributes in allAttributesInArray){
        if(CGRectIntersectsRect(attributes.frame, rect)){
            CGFloat distance = CGRectGetMidX(visibleRect) - attributes.center.x;
            CGFloat normalizedDistance = distance / ACTIVE_DISTANCE;
            if (ABS(distance) < ACTIVE_DISTANCE) {
                CGFloat zoom = 1 + ZOOM_FACTOR*(1 - ABS(normalizedDistance));
                attributes.transform3D = CATransform3DMakeScale(zoom, zoom, 1.0);
                attributes.zIndex = round(zoom);
            }
        }
    }

    return allAttributesInArray;
}

I was able to find another repository experiencing a similar UICollectionViewFlowLayout error, and they worked out a solution that I merged into mine, and while this does get rid of the UICollectionViewFlowLayout errors, it doesn't fix the original issue with TLLayoutTransitioning centering the transition.
So we can rule this out as a cause, I think.
- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect
{
    NSMutableArray *allAttributesInArray = [NSMutableArray array];

    CGRect visibleRect;
    visibleRect.origin = self.collectionView.contentOffset;
    visibleRect.size = self.collectionView.bounds.size;

    for(UICollectionViewLayoutAttributes* attributes in [super layoutAttributesForElementsInRect:rect]){

        UICollectionViewLayoutAttributes* attributesCopy = [attributes copy];

        if(CGRectIntersectsRect(attributes.frame, rect)){
            CGFloat distance = CGRectGetMidX(visibleRect) - attributes.center.x;
            CGFloat normalizedDistance = distance / ACTIVE_DISTANCE;
            if (ABS(distance) < ACTIVE_DISTANCE) {
                CGFloat zoom = 1 + ZOOM_FACTOR*(1 - ABS(normalizedDistance));
                attributesCopy.transform3D = CATransform3DMakeScale(zoom, zoom, 1.0);
                attributesCopy.zIndex = round(zoom);
            }
        }

        [allAttributesInArray addObject:attributesCopy];
    }

    return allAttributesInArray;
}

Something doesn't look right in your animated image, but its hard for me to put my finger on it. Can you do the same example on iOS8 with correct behavior for comparison?

It should be doing this. Transitioning the center. Latest build on iOS 8.

Thanks. The first thing I would do, if you haven't already done so, is narrow down the issue by determining which of the following are wrong:

The layout frames
The collection view's contentOffset
The contentOffset calculated by TLLayoutTransitioning

For (1), I suggest adding a logging statement in [TLTransitionLayout prepareLayout]. In the loop where the poses are calculated, select one of them and log the frame. Then during the transition, you can see how that frame transitions between layouts.
For (2), I suggest adding a logging statement in [TLTransitionLayout setTransitionProgress:time:] to log the collection view's current contentOffset (before being set to offset) and the offset variable.
For (3), just log the result of your call to toContentOffsetForLayout.
Hopefully, you'll find that one of the above is wrong and then we can go from there.

Thanks. Will work on this today and hopefully post a solution.

The problem definitely seems to be occurring in 1. Both 2 & 3 appear to be correct values.
Inside [TLTransitionLayout prepareLayout] the frames while animating from large to small cells always starts at frame = (0 0; 0 0); even though they should reasonably all have a size of 320x568 on my device, and progressively larger x positions as they are horizontally stacked inside a collection view. For example, cell 1 should be something like:frame = (0 0; 325 568);, cell 2: frame = (320 0; 325 568);, cell 3: frame = (640 0; 325 568);, etc.
But I see something like this: fromPose = {{0, 0}, {0, 0}} with a toPose = {{921, 361}, {158, 200}} for instance. But the fromPose here should be something akin to {{921, 0}, {320, 568}}.
As the transition progresses, of course, they do find their end frames correctly, but the starting properties are all zero values, hence the odd transitional animation we're seeing in the first gif I embedded above. So from what I can gather, when [UICollectionViewFlowLayout layoutAttributesForItemAtIndexPath] is called, it isn't returning the frame for some reason. I'm not overriding it in my sublass, either. :-/
I slowed down the closing transition considerably so it's easier to see what's happening. I'll keep digging!

Update.
I found the potential culprit. Inside [UICollectionView+TLTransitioning transitionToCollectionViewLayout:(UICollectionViewLayout *)layout duration:(NSTimeInterval)duration easing:(AHEasingFunction)easingFunction completion:(UICollectionViewLayoutInteractiveTransitionCompletion)completion].
Whenever the UICollectionViewTransitionLayout *transitionLayout class variable is instantiated, the frame goes from having a value, i.e. frame = (642 0; 320 568);, to being zeroed out.
I found I could return an empty class instance without instantiating it with a class method and the frame would retain its value, i.e.:
 UICollectionViewTransitionLayout *transitionLayout;
return transitionLayout;

But obviously that defeats the purpose. So bizarre. Only does this in iOS 9. And it only happens when I transition from the larger layout to the small layout, not the other way around. I'll keep digging.

Here's a fix, though I'm not sure if this is the best way. I reloaded the UICollectionView data before setting the UICollectionViewTransitionLayout.
[self reloadData];

UICollectionViewTransitionLayout *transitionLayout = [self startInteractiveTransitionToCollectionViewLayout...

Whenever the UICollectionViewTransitionLayout *transitionLayout class variable is instantiated, the frame goes from having a value, i.e. frame = (642 0; 320 568);, to being zeroed out.

When you save the frame is zeroed out, you're referring to the frame on the layout attributes of the "from" layout? Just want to make sure I'm clear on that.

Yes, the from layout.

Turns out [self reloadData]; in UICollectionView+TransitionLayout.m (mentioned above as a temporary solution) caused other problems, specifically when setting the CGPoint offset from toContentOffsetForLayout:indexPaths:placement. Though the supplied indexPath is correct, the returned offset is incorrect. But only for the first transition. For the second it corrects itself magically.
For instance, supplying the following indexPath <NSIndexPath: 0xc000000006e00016> {length = 2, path = 0 - 55} would return this offset for the first transition {16050, -0} and then the correct one upon the second attempt {17655, -0}. The incorrect offset isn't random, however, it's actually the first cell in a newly concatenated datasource. I'll explain...
I load the collection view's datasource in increments of 25 from my db. As the user scrolls to the end of the first 25 cells, I load the next 25 and concat to the datasource, making it 50 cells in length, reload the data, and repeat as needed. Pretty straight forward. The incorrect offset above {16050, -0} is actually the offset for the very first cell in the newly loaded data, cell 26 for instance (the first cell after the initial 25 cells). Though the indexPath supplied is for cell 32. I hope I'm explaining that clearly enough.
When I do not add [self reloadData]; in UICollectionView+TransitionLayout.m, however, the issue isn't happening, and the offsets are correct for all transitions, but then the original issue with the frames being zeroed out comes back again.
I'm absolutely confounded. I'll continue to dig into this.

Regarding the issue where the frames are zero, could you check whether the fromPose in this line in -[TLTransitionLayout prepareLayout] is getting set to nil?
UICollectionViewLayoutAttributes *fromPose = self.poses
    ? [self.poses objectForKey:key]
    : [self.currentLayout layoutAttributesForItemAtIndexPath:indexPath];

Then I'd start tracing back to narrow down where things go wrong. For example, I'd look in -[TLTransitionLayout initWithCurrentLayout:nextLayout:supplementaryKinds: to see if
a) The currentLayout is the same instance as the one being used by the collection view.
b) Whether the layout attributes are nil or the frames are zero at this point.

fromPose isn't being set to nil, just the frame set to zero.
a) currentLayout matches the instance being used by the collectionView.
b) Not nil ever. Sometimes frame is zero. Because there a two transitions (small --> large && large --> small) I'll show the frames during each:
Small --> Large
currentLayout (small) correct frame ✓
nextLayout (large) incorrect zeroed frame ✖, though this transition is visually correct ✓.
Large --> Small
currentLayout (large) correct frame ✓
nextLayout (small) correct frame ✓, though this transition is visually incorrect ✖.
Though, it's worth repeating, the frame of my large UICollectionViewFlowLayout instance is zeroed out once the TLTransitionLayout transition call is made during the Large --> Small transition as mentioned before. Prior to this, it retains its frame. It seems somewhere within [UICollectionView+TLTransitioning transitionToCollectionViewLayout:duration:easing:completion] my UICollectionViewFlowLayout is losing its frame? I'll keep digging. Thanks.

It seems somewhere within [UICollectionView+TLTransitioning transitionToCollectionViewLayout:duration:easing:completion] my UICollectionViewFlowLayout is losing its frame?

In that case, you should be able debug in that method and narrow down where the frames get lost.

I believe I found the problem. I was calling -(void)invalidateLayout on my collection view, though in my large layout class I was setting shouldInvalidateLayoutForBoundsChange to NO. I stopped invalidating the layout and this fixed the frame zeroing issue. But NOT this issue, though I found a fix to that too...
I was instantiating my large and small layout classes only once and reusing those pointers every time I called [ UICollectionView+TLTransitioning transitionToCollectionViewLayout:layout:duration:easing:completion:], and for some reason because of this the collectionViewContentSize of the large layout class was not properly updating after concatenating to the UICollectionView's datasource. Simple fix was to release and reinit just before:
largeLayout = nil;
largeLayout = [[CustomUICollectionViewFlowLargeLayout alloc] init];

That's it.

Good to know you figured it out! Can this be closed now?

Yes. Thanks for the help.


reloadOnSelect not working

I have a page which generated depend on the storage via page ready method:
ready(options, resolve, reject) {
var history = ATV.Settings.get('history');
...
}
and I set the option reloadOnSelect for this page in menu:
menu: {
items: [{
id: 'home',
name: 'My TV',
page: HomePage,
attributes: { autoHighlight: true,
reloadOnSelect: true
}
},
}
While I update storage in other page and navigate back the home page, the page can not be updated. Looking to the debug console, the ready is not been called. So will reloadOnSelect invoke  ready() to be called every time even the page already in the stack ? Anyway to update the content in the stack ? I have read you suggestion to use pubsub-js, any sample code for that ?
Thanks for help.
hong

Hi @hcheng2002cn
reloadOnSelect was not part of the main branch and was done as a POC. I just merged the PR from @MarhyCZ and released the new version on npm that has this included as part of the main branch. Can you try version 0.2.9 and let me know if you can achieve what you were trying to achieve 🙏


fix for OSD 'unload' before is has time to bootstrap

Hi,
I'm building an app where instances of OSD need to be able to be created/replaced in quick succession.
A simplified example would be if you had two buttons on a page. Whenever Button A is clicked OSD is used to load an image, whenever Button B is clicked a 3D model is loaded in Google model-viewer.
If both of these viewers inhabit the same container div whose contents are being emptied, and you click between Button A and Button B rapidly, you occasionally get an error here where it's trying to append to a null this.element reference.
I've simply introduced a check to see if this.element exists when bootstrapping OSD and returning if it doesn't. This fixed the issue for me.
Thanks for all the great work!

Interestingly, Google model-viewer does not seem to exhibit a similar issue when being replaced while "bootstrapping". (i.e. its container div being emptied and something else being put in its place). I'd like to avoid a special case of calling destroy on OSD if possible.

In the meantime I've disabled the buttons to switch between viewers while OSD is loading a tilesource. This fixes my use case, but does mean the UI is a little less "responsive".

Thank you for filing this… We certainly want to be more robust if we can! I have some questions, though…
It doesn't seem like this fix would address anything to do with loading a tile source… The guard you've added is in the synchronous creation code, but loading a tile source is an asynchronous process. Can you explain more what's causing this issue to happen?
Trying to create a viewer without a proper element certainly is an error… I don't think we should be making that error invisible. We could add a console.error, and then the developer could see it, but it would also be impossible to detect by the code, if it wanted to. I suppose we could add some sort of "I didn't get created properly" flag to the viewer for that purpose. Throwing an exception manages to do all of that, though, so maybe it's already good as is, and if you want to suppress the error, you could wrap the viewer creation in a try/catch?
If the problem isn't in the creation itself but in the tile load sequence, I'm curious to know where it's falling down, and whether calling destroy on the viewer cleans that up. It does seem like calling destroy would be a good idea; why do you not want to do so?

Hi Ian,
I'm on another project now for a couple of weeks, but will be revisting this. I'll try to create a simplified test harness to demonstrate what's happening then. I ran into the same issue elsewhere in my react app as well.
The app is ultimately going to be able to load a variety of content types, and I was hoping to avoid making a special case for OSD. Perhaps OSD isn't automatically calling destroy internally in certain circumstances? e.g. a react wrapper component being unmounted?

@edsilv  I'm not sure we currently need a check like this...the containing element needs to exist at the time a OpenSeadragon.Viewer is created, and this check could easily be done outside the library right before calling new OpenSeadragon.Viewer(...).
Also, I don't believe Viewer.destroy() is called implicitly, so it's important that's explicitly handled where appropriate.
It's important to make sure the element or element ID passed to the Viewer constructor exists. If the real-life case is OpenSeadragon in a React component, when the constructor gets called in the React component tree lifecycle is important. For what it's worth, here's what I typically use. Note I have the containing element in the component so it always exists when the component mounts...
import React, { useEffect } from 'react';
import './OsdViewer.scss';

import OpenSeadragon from 'openseadragon';

import osdNavImages from '../common/OsdNavImages';

const tileSourcesPrefix = '/dzimages/';
const tileSources = [tileSourcesPrefix + 'testpattern.dzi'];

function OsdViewer(props) {
	useEffect(() => {
		let viewer = new OpenSeadragon.Viewer({
			debugMode: false,
			id: 'osdContainer',
			prefixUrl: '',
			navImages: osdNavImages,
			useCanvas: true,
			tileSources: tileSources
		});

		let onOpen = function (event) {};

		let onClose = function (event) {};

		viewer.addHandler('open', onOpen);
		viewer.addHandler('close', onClose);

		// Cleanup (componentWillUnmount)
		return () => {
			// < Cleanup any plugins that may have references to viewer here >
			viewer.removeHandler('open', onOpen);
			viewer.removeHandler('close', onClose);
			viewer.destroy();
			viewer = null;
		};
	}, []);

	return <div id="osdContainer" className="openseadragon" />;
}

export default OsdViewer;

When you come back to this issue I'd really like to make sure we don't have to fix anything in OpenSeadragon for this, and if we do, we get it fixed ;)