Get-CWCSession (500) Internal Server Error

First of all, thank you @christaylorcodes  for that amazing PS module!!
I have trouble with Get-CWCSession command, getting (500) Internal Server Error.
Here is the command:
Get-CWCSession -Type 'Access' -Limit 2
Other commands are working fine for me. so it's not a permission issue.
Here is the full error:
PS C:\WINDOWS\system32> Get-CWCSession -Type 'Access' -Limit 2
Invoke-CWCWebRequest : An exception has been thrown.
--> The remote server returned an error: (500) Internal Server Error.
An error has been thrown.
-->
--> {"errorType":"ArgumentException","message":"Web method does not exist","detail":null}
at Invoke-CWCWebRequest, C:\Program Files\WindowsPowerShell\Modules\ConnectWiseControlAPI\<IP_ADDRESS>\Private\Invoke-CWCWebRequest.ps1: line 25
at Get-CWCSession, C:\Program Files\WindowsPowerShell\Modules\ConnectWiseControlAPI\<IP_ADDRESS>\Public\PageService\Get-CWCSession.ps1: line 30
at <ScriptBlock>, <No file>: line 1
At C:\Program Files\WindowsPowerShell\Modules\ConnectWiseControlAPI\<IP_ADDRESS>\Public\PageService\Get-CWCSession.ps1:30 char:14
+     $Data =  Invoke-CWCWebRequest -Arguments $WebRequestArguments
+              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Invoke-CWCWebRequest

I followed the documentation from ConnectWise, downloaded all available endpoints from: https://{server-url:port}/OpenAPIDocument.axd, and I see that the endpoint for get session info is different from the endpoint in this module.
in this module it is:
'/Services/PageService.ashx/GetHostSessionInfo' and it is POST method
but in our server it is:
/App_Extensions/1b088c99-69bd-43e6-8176-14a3a9af0552/Service.ashx/host-session-info

My issue was resolved with the following solution


Get project references from a solution

I am following helix architecture and habitat solution.
I have added some of the tenant projects, foundation projects and feature projects from different location to a new solution.
My intention is to publish only the projects that are added to the solution using gulp task. There are more projects residing in the respective location. These projects need not be published

This tracker is for bug reports only.
For support requests, please use Stack Overflow (stackoverflow.com) or Gitter (see the README).
Besides, your question is not clear: there's no concept of "solution" with Gulp. Gulp is simply a task runner, use plain Javascript or plugins to achieve your goal.


Add preprocess_prediction_dataset function for just do prediction

If people only want to make predictions, the 'output' column in the data should be empty. However, in the original code, when we run the prediction command from the readme, if the 'output' column in the data is empty, it will generate an error because the 'format' function in data preprocessing only loads data where both the 'prompt' and 'response' columns are non-empty. In this commit, we added a 'predict_format' function and a 'preprocess_prediction_dataset' function for data preprocessing when making predictions only.

We think this function is not necessary because the user can add a placeholder like [empty] to the output column in their datasets to make predictions. We want to avoid involving some unnecessary code to keep a clear code structure.

Thank you for your response. I fully respect your opinion and will close this pull request. However, I'd like to suggest an additional idea. You could add comments or textual explanations before the command for predicting in the readme, indicating that the prediction dataset requires filling in the output to avoid confusing users. (Because I have spent quite some time trying to catch this bug.)

Thanks, we will carefully take it into consideration.


GroupN -> UserN refactoring

We are using groupN-dev and groupN-prod convention to name AMQ destination (topic name) in kamelet bindings.
This is inconsistent with gitea and openshift account names which are using userN conventions.
Let's consolidate this and use userN-dev and userN-prod as a AMQ destination wherever we use it

lab3+5 (including solution)
README
instructor binding in argo app

https://github.com/agiertli/rhte-camelk-lab-instructions/pull/3


NO-ISSUE: Add downstream verify makefile target

/hold until we get the sync PR in.

/unhold

/retest-required

/approved
/lgtm

/approve


ProtoUpdateListener not called for changes in nested protobuf descriptor

DescriptorCache's logic to check if the protobuf descriptor has changed doesn't work for changes in nested types.
The current check to compare old and updated protobuf descriptor only compares the root level fields and doesn't check nested types.
For example:
Old descriptor:
message TestNestedType {
    string sample_string = 1;
    TestType test_type = 2;
}

message TestType {
    string nested_string = 1;
    int nested_int = 2;
}

And new descriptor:
message TestNestedType {
    string sample_string = 1;
    TestType test_type = 2;
}

message TestType {
    string nested_string = 1;
    int nested_int = 2;
    float nested_float = 3;
}

Equality check between these descriptor returns false even when the nested field has changed.

Currently, we are using descriptorproto's equality check to compare between old and new descriptor.
The equality check only compares the root level fields.
There can be two solutions to resolve this:

We implement our own comparator which compares two descriptors on nested types as well. This would make sure that onProtoUpdate is called if any of the nested types change.

We call onProtoUpdate when the cache is invalidated and remove the proto check. As part of this, we will leave it upto the class that implements ProtoUpdateListener to check if it has to take some action or not.

Fixed by #6


Ilias/update blob audit api version

Related command
az sql server audit-policy show
``
Description
We have updated blob auditing api to new 2021-08-11, we have added an extra parameter isManagedIdentityInUse.
Testing Guide
running az sql server audit-policy show you should see an extra parameter isManagedIdentityInUse
History Notes
[Component Name 2] az sql server audit-policy show: Add some customer-facing feature. Customer will get a new parameter isManagedIdentityInUse

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

After bumping version, please re-record all related tests

After bumping version, please re-record all related tests

For my current PR, I just updated new version of SDK and don't have much changes..
Still for test_sql_db_replica_mgmt showing Internal server error..all other tests are passing..
Is this error known?
E           azure.core.exceptions.HttpResponseError: (InternalServerError) An unexpected error occured while processing the request. Tracking ID: 'cc0b5b09-2f90-4ffc-88af-db16b0b800c2'
E           Code: InternalServerError
E           Message: An unexpected error occured while processing the request. Tracking ID: 'cc0b5b09-2f90-4ffc-88af-db16b0b800c2'

D:\env\lib\site-packages\azure\core\polling\base_polling.py:523: HttpResponseError
FAILED src\azure-cli\azure\cli\command_modules\sql\tests\latest\test_sql_commands.py::SqlServerDbReplicaMgmtScenarioTest::test_sql_db_replica_mgmt - azure.core.exception.

Sorry this seems to be server error should reach out to service team

Please make sure all CI pass

Why SqlServerDbReplicaMgmtScenarioTest has been fully commented out?

This test record is not running as Replication Links API has some bug. Old version of this api also not working. That's why old record is not passing as well. Geo-Dr team is working on this PR.


Is it possible to test SOAP based webservices with this library?

I wonder if it is possible to test SOAP based webservices with this lib.
I am going to dig into that but maybe somebody has already done it?
So far I've found this:
http://stackoverflow.com/questions/18175489/python-soap-using-requests#
https://gist.github.com/toast38coza/17e2ad6c2cfa2e96b0b1

@Tset-Noitamotua It would be possible if SOAP requests are in Json format. If it is XML then some of requests procedures are needs to rewrite to handle XML responses.

@Tset-Noitamotua I am closing this issue, please feel free to reopen if you have further updates


WeightModifierType.DISCRETIZE does not work on CUDA

Description
I wrote a test checking the discretisation behaviour of the discretisation weight modifier and it fails if everything is placed on CUDA.
Note: The C++ version also does not work. One can add
T res_ = res > (T)1.0 ? 2 / res : 2 * res;
after this line.
How to reproduce
MWE:
from typing import Union
import torch
from torch import allclose, randn
from aihwkit.nn import AnalogLinear
from aihwkit.simulator.configs import (
    TorchInferenceRPUConfig,
    InferenceRPUConfig,
    WeightModifierType,
    NoiseManagementType,
    BoundManagementType,
)

def test_weight_modifier(
    modifier_res: float, wm_type: WeightModifierType = WeightModifierType.DISCRETIZE
):
    """
    Test correctness of discretization.
    """
    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    # device = torch.device("cpu")

    def populate_rpu(
        rpu_config: Union[TorchInferenceRPUConfig, InferenceRPUConfig],
        modifier_res: float,
        wm_type: WeightModifierType,
    ):
        rpu_config.forward.bound_management = BoundManagementType.NONE
        rpu_config.forward.noise_management = NoiseManagementType.NONE
        rpu_config.noise_model = None
        rpu_config.modifier.type = wm_type
        rpu_config.modifier.res = modifier_res
        rpu_config.modifier.sto_round = False
        rpu_config.forward.inp_res = -1
        rpu_config.forward.out_res = -1
        rpu_config.forward.inp_bound = -1
        rpu_config.forward.out_bound = -1
        rpu_config.forward.out_noise = 0.0
        rpu_config.forward.is_perfect = True
        return rpu_config

    torch.manual_seed(0)
    tile_weights = torch.randn(256, 256).to(device)
    inp = randn((1, 256)).to(device)

    rpu_config_torch = populate_rpu(TorchInferenceRPUConfig(), modifier_res, wm_type)
    rpu_config = populate_rpu(InferenceRPUConfig(), modifier_res, wm_type)

    linear = AnalogLinear(in_features=256, out_features=256, bias=False, rpu_config=rpu_config)
    linear_torch = AnalogLinear(
        in_features=256, out_features=256, bias=False, rpu_config=rpu_config_torch
    )
    linear_torch.set_weights(tile_weights)

    # move to device
    linear = linear.to(device)
    linear_torch = linear_torch.to(device)

    # load the state dict
    linear.load_state_dict(linear_torch.state_dict(), load_rpu_config=False)

    # post update step generates the weight modification, needed for rpu tile
    linear.analog_module.post_update_step()

    assumed_wmax = rpu_config_torch.modifier.assumed_wmax
    if rpu_config_torch.modifier.rel_to_actual_wmax:
        assumed_wmax = tile_weights.abs().max()

    n_states = rpu_config_torch.modifier.res
    n_states = n_states if n_states > 1.0 else 1 / n_states
    res = 2 * (1 / n_states) * assumed_wmax
    quantized_weights = (tile_weights / res).round() * res
    cpp_quantized_weights = tile_weights / res
    cpp_quantized_weights = (
        torch.trunc(cpp_quantized_weights + 0.5 * torch.sign(cpp_quantized_weights)) * res
    )

    # test if quantization is as expected
    assert allclose(linear_torch(inp), torch.matmul(inp, quantized_weights.T), atol=1e-4)

    # test if C++ tile is the same
    cpp_out = linear(inp)
    quantized_groundtruth = torch.matmul(inp, cpp_quantized_weights.T)
    assert allclose(cpp_out, quantized_groundtruth)

if __name__ == "__main__":
    test_weight_modifier(modifier_res=2**8-2, wm_type=WeightModifierType.DISCRETIZE)

Expected behavior
The test should pass.

@jubueche did you set the model into training mode? Otherwise the weight modifier is not called.

@maljoras should be in training mode by default. Also, the C++ version works, so I don't think that's it. Or there is a difference that I am not seeing.

@jubueche are you saying the C++ is working or not (above you say both in different places)?
Have you checked / plotted the weghts ? It could be that the rounding method is  just different (C++ uses rint instead of round).

We fixed the C++ version by adding this one line T res_ = res > (T)1.0 ? 2 / res : 2 * res;. So now it works. It is the CUDA version that is not working.

The problem might be rather that the parameter structure is not initialized. Or could be that only specifying the res (and nor 1/res) Was expected

@maljoras  Yes that was my first idea since it was the solution to the C++ case and I tried it, but it didn't seem to work. If I remember correctly, it was as if the weight modifier did not get called in CUDA, in other words my code changes in the weight modifier in CUDA didn't have any effect. Maybe you could take a quick look?

What so you mean by C++ and what is Cuda? Are referring to the C++/CUDA implementation?

@maljoras Yes, when we use InferenceRPUConfig() either in CPU or GPU mode (so the tile programmed in either C++ or CUDA).

What so you mean by C++ and what is Cuda? Are referring to the C++/CUDA implementation?

Yes, but the weight modifier for example is done in CUDA, right?

Just your wording is confusing. C++ is both used for the CPU version of the AnalogTile in the RPUCUDA library as well as for the CUDA version of the AnalogTile of the RPUCUDA library.
I just checked again the code and it is actually not a bug. For the discretized weight modifier you need to specify the resolution (with of the bin) in the res parameter (as the naming suggests), not the number of bins. So you have to set if to res=2/ 256 if you want 256 bins in -1 1.  It does not support the inverse input (which is supported only by the DAC/ADC)

@maljoras We fixed the C++ version by adding this one line T res_ = res > (T)1.0 ? 2 / res : 2 * res;. So now it works. It is the CUDA version that is not working.

Where did you "fix" this ? It is likely "fixed" at the wrong place...

See the description of the issue. Yes, most likely wrong place (we haven't merged this into anything yet).
Since you removed the bug label, I assume the test will pass when I pass 2/254 to the above example (only setting it for the RPUCUDA tile), right? I will test this later.
Regarding design, I think it would be better if we consistently allow to pass the res as either 1 / num_bins in -1,1 or num_bins in -1,1. I see that the name res suggests the resolution, but then so does inp_res, right? And for that, passing resolution or number of bins in -1,1 has a different effect (passing 2**8-2 does not result in the same as passing 2/(2**8-2)).

I did not actually test it now, but I tested it long time ago and the code never changed, and I also looked at the code. So I don't see why it should not work if res is specified in the expected way.  But best if you would test it just to be sure (I don't have a compiled setup right now).  If you want to make it similar to the ADC/DAC setting, then make sure you compute res = 2 * wmax / number_of_bins. Even for DAC/ADC setting this is how it is computed, the number of bins are always specified in the full range which is from -wmax to wmax in this case.

Ok I ran the above example again on CPU and GPU and indeed the test passes when I change it to
rpu_config.modifier.res = 2 / (2**8-2)

But for "ease-of-use", I would like to make it consistent with the DAC/ADC res field. What is the best place to do this?

I guess this can be closed. Please re-open if not.


pull request for e2e test at 02/01/2017 07:26:13

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


DeepSpeed Triton backend failure on GPT-J inference

Hi, I succesfully built triton 2.1.0 on commit 5df904233c11a65bd131ead7268f84cca7804275 with xpu-backend at 0bcc485f82b34d49494bd0264bacc24a20aafb7a and added some modifications to be compatible with ipex-2.0. And I can successfully pass xpu pytest in triton with pytest -xvs test/backend/third_party_backends/test_xpu_backend.py --backend xpu.
However, when I run DeepSpeed inference on GPT-J, there are some errors like Translate to SPIRV IR failedLLVM ERROR: Failed to translate TritonGPU to SPIRV IR. Is the support still limited to specific operations or it's a bug? Also, I cannot successfully compile lastest main branch of intel-xpu-backend-for-triton with error:
/home/xxx/Project/triton/third_party/intel_xpu_backend/lib/Conversion/TritonGPUToSPIRV/Utility.h:11:62: error: template argument 1 is invalid
   11 | #define ptrtoint(...) rewriter.create<spirv::ConvertPtrToUOp>(loc, __VA_ARGS__)
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/home/xxx/Project/triton/third_party/intel_xpu_backend/lib/Conversion/TritonGPUToSPIRV/ConvertLayoutOpToSPIRV.cpp:220:25: note: in expansion of macro ‘ptrtoint’
  220 |               currVal = ptrtoint(llvmElemTy, currVal);
      |                         ^~~~~~~~
/home/xxx/Project/triton/third_party/intel_xpu_backend/lib/Conversion/TritonGPUToSPIRV/Utility.h:10:46: error: ‘ConvertUToPtrOp’ is not a member of ‘mlir::spirv’; did you mean ‘ConvertUToFOp’?
   10 | #define inttoptr(...) rewriter.create<spirv::ConvertUToPtrOp>(loc, __VA_ARGS__)
      |                                              ^~~~~~~~~~~~~~~
/home/xxx/Project/triton/third_party/intel_xpu_backend/lib/Conversion/TritonGPUToSPIRV/Utility.h:10:46: note: in definition of macro ‘inttoptr’
   10 | #define inttoptr(...) rewriter.create<spirv::ConvertUToPtrOp>(loc, __VA_ARGS__)
      |                                              ^~~~~~~~~~~~~~~
/home/xxx/Project/triton/third_party/intel_xpu_backend/lib/Conversion/TritonGPUToSPIRV/Utility.h:10:62: error: no matching function for call to ‘mlir::ConversionPatternRewriter::create<<expression error> >(mlir::Location&, mlir::Type&, mlir::Value&)’
   10 | #define inttoptr(...) rewriter.create<spirv::ConvertUToPtrOp>(loc, __VA_ARGS__)
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~

Complete log:
[0] [2023-08-03 01:28:35,085] [INFO] [logging.py:96:log_dist] [Rank 0] DeepSpeed info: version=0.10.1+7de73909, git-hash=7de73909, git-branch=master
[0] [2023-08-03 01:28:35,085] [WARNING] [config_utils.py:69:_process_deprecated_field] Config parameter mp_size is deprecated use tensor_parallel.tp_size instead
[0] [2023-08-03 01:28:35,085] [INFO] [logging.py:96:log_dist] [Rank 0] quantize_bits = 8 mlp_extra_grouping = False, quantize_groups = 1
[0] [2023-08-03 01:28:35,130] [INFO] [logging.py:96:log_dist] [Rank 0] DeepSpeed-Inference config: {'layer_id': 0, 'hidden_size': 4096, 'intermediate_size': 16384, 'heads': 16, 'num_hidden_layers': -1, 'dtype': torch.float16, 'pre_layer_norm': True, 'norm_type': <NormType.LayerNorm: 1>, 'local_rank': -1, 'stochastic_mode': False, 'epsilon': 1e-05, 'mp_size': 1, 'scale_attention': True, 'triangular_masking': True, 'local_attention': False, 'window_size': 1, 'rotary_dim': 64, 'rotate_half': False, 'rotate_every_two': True, 'return_tuple': True, 'mlp_after_attn': False, 'mlp_act_func_type': <ActivationFuncType.GELU: 1>, 'specialized_mode': False, 'training_mp_size': 1, 'bigscience_bloom': False, 'max_out_tokens': 1024, 'min_out_tokens': 1, 'scale_attn_by_inverse_layer_idx': False, 'enable_qkv_quantization': False, 'use_mup': False, 'return_single_tuple': False, 'set_empty_params': False, 'transposed_mode': False, 'use_triton': True, 'triton_autotune': False}
[0] [2023-08-03 01:28:35,130] [INFO] [logging.py:96:log_dist] [Rank 0] Injecting Triton kernels ...
Loading 1 checkpoint shards:   0%|          | 0/1 [00:00<?, ?it/s][0] checkpoint loading time at rank 0: 48.9048216342926 sec
Loading 1 checkpoint shards: 100%|██████████| 1/1 [00:48<00:00, 48.90s/it]
[0] [2023-08-03 01:29:24,846] [INFO] [utils.py:798:see_memory_usage] post-ds-inference-init
[0] [2023-08-03 01:29:24,846] [INFO] [utils.py:799:see_memory_usage] MA 11.27 GB         Max_MA 11.27 GB         CA 11.27 GB         Max_CA 11 GB
[0] [2023-08-03 01:29:24,846] [INFO] [utils.py:806:see_memory_usage] CPU Virtual Memory:  used = 11.66 GB, percent = 1.2%
[0] *** Starting to generate 32 tokens with bs=1
[0] Generate args {'max_new_tokens': 32, 'do_sample': False, 'num_beams': 1, 'token_latency': True}
[0] *** Prompt size:  32
[0] [2023-08-03 01:29:24,933] [INFO] [utils.py:798:see_memory_usage] end-of-run
[0] [2023-08-03 01:29:24,934] [INFO] [utils.py:799:see_memory_usage] MA 11.27 GB         Max_MA 11.27 GB         CA 11.27 GB         Max_CA 11 GB
[0] [2023-08-03 01:29:24,934] [INFO] [utils.py:806:see_memory_usage] CPU Virtual Memory:  used = 11.66 GB, percent = 1.2%
[0] *** Running benchmark[0]
[0] Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation.
[0] >>> inner function (32,)
[0] <function get_backend at 0x7f6b81fe3910>
[0] <triton.third_party.xpu.XPUBackend object at 0x7f6acea6d960>
[0] /home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/xpu/cpp_extension.py:1373: UserWarning: This extension has static linked onednn library. Please attaction to                 that, this path of onednn version maybe not match with the built-in version.
[0]   warnings.warn(
[0] 2023-08-03 01:29:25,509 - root - INFO - running build_ext
[0] 2023-08-03 01:29:25,514 - root - INFO - building 'layer_norm_kernel' extension
[0] 2023-08-03 01:29:25,514 - root - INFO - creating /tmp/tmp2a44hft2/tmp
[0] 2023-08-03 01:29:25,514 - root - INFO - creating /tmp/tmp2a44hft2/tmp/tmp2a44hft2
[0] 2023-08-03 01:29:25,515 - root - INFO - /opt/intel/oneapi/compiler/2023.1.0/linux/bin/icx -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include/torch/csrc/api/include -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include/TH -I/opt/intel/oneapi/compiler/2023.1.0/linux/include -I/opt/intel/oneapi/compiler/2023.1.0/linux/include/sycl -I/opt/intel/oneapi/mkl/2023.1.0/include -I/home/xxx/onednn/include -I/home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/include -I/home/xxx/miniconda3/envs/llm/include/python3.10 -c /tmp/tmp2a44hft2/main.c -o /tmp/tmp2a44hft2/tmp/tmp2a44hft2/main.o -fPIC -fPIC -w -fsycl -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1016\" -DTORCH_EXTENSION_NAME=layer_norm_kernel -D_GLIBCXX_USE_CXX11_ABI=1 -std=c++17
[0] 2023-08-03 01:29:34,504 - root - INFO - /opt/intel/oneapi/compiler/2023.1.0/linux/bin/icpx -shared -fsycl /tmp/tmp2a44hft2/tmp/tmp2a44hft2/main.o -lze_loader -o /tmp/tmp2a44hft2/layer_norm_kernel.cpython-310-x86_64-linux-gnu.so -lc10 -ltorch_cpu -ltorch -ltorch_python -L/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/lib -L/home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/lib -L/home/xxx/onednn/lib -Wl,--start-group /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_sycl.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_intel_ilp64.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_sequential.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_core.a -Wl,--end-group -lsycl -lOpenCL -lpthread -lm -ldl -ldnnl -lintel-ext-pt-gpu
[0] >>> inner function <function Fp16Matmul.forward.<locals>.<lambda> at 0x7f6ace1720e0>
[0] <function get_backend at 0x7f6b81fe3910>
[0] <triton.third_party.xpu.XPUBackend object at 0x7f6acea6d960>[0]
[0] /home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/xpu/cpp_extension.py:1373: UserWarning: This extension has static linked onednn library. Please attaction to                 that, this path of onednn version maybe not match with the built-in version.
[0]   warnings.warn(
[0] 2023-08-03 01:29:50,809 - root - INFO - running build_ext
[0] 2023-08-03 01:29:50,812 - root - INFO - building '_fp_matmul' extension
[0] 2023-08-03 01:29:50,812 - root - INFO - creating /tmp/tmp7aguxrst/tmp
[0] 2023-08-03 01:29:50,812 - root - INFO - creating /tmp/tmp7aguxrst/tmp/tmp7aguxrst
[0] 2023-08-03 01:29:50,812 - root - INFO - /opt/intel/oneapi/compiler/2023.1.0/linux/bin/icx -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include/torch/csrc/api/include -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include/TH -I/opt/intel/oneapi/compiler/2023.1.0/linux/include -I/opt/intel/oneapi/compiler/2023.1.0/linux/include/sycl -I/opt/intel/oneapi/mkl/2023.1.0/include -I/home/xxx/onednn/include -I/home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/include -I/home/xxx/miniconda3/envs/llm/include/python3.10 -c /tmp/tmp7aguxrst/main.c -o /tmp/tmp7aguxrst/tmp/tmp7aguxrst/main.o -fPIC -fPIC -w -fsycl -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1016\" -DTORCH_EXTENSION_NAME=_fp_matmul -D_GLIBCXX_USE_CXX11_ABI=1 -std=c++17
[0] 2023-08-03 01:29:59,847 - root - INFO - /opt/intel/oneapi/compiler/2023.1.0/linux/bin/icpx -shared -fsycl /tmp/tmp7aguxrst/tmp/tmp7aguxrst/main.o -lze_loader -o /tmp/tmp7aguxrst/_fp_matmul.cpython-310-x86_64-linux-gnu.so -lc10 -ltorch_cpu -ltorch -ltorch_python -L/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/lib -L/home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/lib -L/home/xxx/onednn/lib -Wl,--start-group /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_sycl.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_intel_ilp64.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_sequential.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_core.a -Wl,--end-group -lsycl -lOpenCL -lpthread -lm -ldl -ldnnl -lintel-ext-pt-gpu
[0] >>> inner function <function Fp16Matmul._score_4d_matmul.<locals>.<lambda> at 0x7f6ace1720e0>
[0] <function get_backend at 0x7f6b81fe3910>
[0] <triton.third_party.xpu.XPUBackend object at 0x7f6acea6d960>
[0] /home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/xpu/cpp_extension.py:1373: UserWarning: This extension has static linked onednn library. Please attaction to                 that, this path of onednn version maybe not match with the built-in version.
[0]   warnings.warn(
[0] 2023-08-03 01:30:23,065 - root - INFO - running build_ext
[0] 2023-08-03 01:30:23,068 - root - INFO - building 'matmul_4d_kernel' extension
[0] 2023-08-03 01:30:23,069 - root - INFO - creating /tmp/tmpsihcyg_g/tmp
[0] 2023-08-03 01:30:23,069 - root - INFO - creating /tmp/tmpsihcyg_g/tmp/tmpsihcyg_g
[0] 2023-08-03 01:30:23,069 - root - INFO - /opt/intel/oneapi/compiler/2023.1.0/linux/bin/icx -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include/torch/csrc/api/include -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include/TH -I/opt/intel/oneapi/compiler/2023.1.0/linux/include -I/opt/intel/oneapi/compiler/2023.1.0/linux/include/sycl -I/opt/intel/oneapi/mkl/2023.1.0/include -I/home/xxx/onednn/include -I/home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/include -I/home/xxx/miniconda3/envs/llm/include/python3.10 -c /tmp/tmpsihcyg_g/main.c -o /tmp/tmpsihcyg_g/tmp/tmpsihcyg_g/main.o -fPIC -fPIC -w -fsycl -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1016\" -DTORCH_EXTENSION_NAME=matmul_4d_kernel -D_GLIBCXX_USE_CXX11_ABI=1 -std=c++17
[0] 2023-08-03 01:30:32,197 - root - INFO - /opt/intel/oneapi/compiler/2023.1.0/linux/bin/icpx -shared -fsycl /tmp/tmpsihcyg_g/tmp/tmpsihcyg_g/main.o -lze_loader -o /tmp/tmpsihcyg_g/matmul_4d_kernel.cpython-310-x86_64-linux-gnu.so -lc10 -ltorch_cpu -ltorch -ltorch_python -L/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/lib -L/home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/lib -L/home/xxx/onednn/lib -Wl,--start-group /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_sycl.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_intel_ilp64.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_sequential.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_core.a -Wl,--end-group -lsycl -lOpenCL -lpthread -lm -ldl -ldnnl -lintel-ext-pt-gpu
[0] >>> inner function (512,)
[0] <function get_backend at 0x7f6b81fe3910>
[0] <triton.third_party.xpu.XPUBackend object at 0x7f6acea6d960>
[0] /home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/xpu/cpp_extension.py:1373: UserWarning: This extension has static linked onednn library. Please attaction to                 that, this path of onednn version maybe not match with the built-in version.
[0]   warnings.warn(
[0] 2023-08-03 01:30:49,560 - root - INFO - running build_ext
[0] 2023-08-03 01:30:49,563 - root - INFO - building 'softmax_kernel' extension
[0] 2023-08-03 01:30:49,563 - root - INFO - creating /tmp/tmpxm55vb5j/tmp
[0] 2023-08-03 01:30:49,563 - root - INFO - creating /tmp/tmpxm55vb5j/tmp/tmpxm55vb5j
[0] 2023-08-03 01:30:49,563 - root - INFO - /opt/intel/oneapi/compiler/2023.1.0/linux/bin/icx -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include/torch/csrc/api/include -I/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/include/TH -I/opt/intel/oneapi/compiler/2023.1.0/linux/include -I/opt/intel/oneapi/compiler/2023.1.0/linux/include/sycl -I/opt/intel/oneapi/mkl/2023.1.0/include -I/home/xxx/onednn/include -I/home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/include -I/home/xxx/miniconda3/envs/llm/include/python3.10 -c /tmp/tmpxm55vb5j/main.c -o /tmp/tmpxm55vb5j/tmp/tmpxm55vb5j/main.o -fPIC -fPIC -w -fsycl -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_gcc\" -DPYBIND11_STDLIB=\"_libstdcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1016\" -DTORCH_EXTENSION_NAME=softmax_kernel -D_GLIBCXX_USE_CXX11_ABI=1 -std=c++17
[0] 2023-08-03 01:30:58,436 - root - INFO - /opt/intel/oneapi/compiler/2023.1.0/linux/bin/icpx -shared -fsycl /tmp/tmpxm55vb5j/tmp/tmpxm55vb5j/main.o -lze_loader -o /tmp/tmpxm55vb5j/softmax_kernel.cpython-310-x86_64-linux-gnu.so -lc10 -ltorch_cpu -ltorch -ltorch_python -L/home/xxx/miniconda3/envs/llm/lib/python3.10/site-packages/torch/lib -L/home/xxx/Project/frameworks.ai.pytorch.ipex-gpu.rls/intel_extension_for_pytorch/lib -L/home/xxx/onednn/lib -Wl,--start-group /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_sycl.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_intel_ilp64.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_sequential.a /opt/intel/oneapi/mkl/2023.1.0/lib/intel64/libmkl_core.a -Wl,--end-group -lsycl -lOpenCL -lpthread -lm -ldl -ldnnl -lintel-ext-pt-gpu
[0] loc("-":17:13): error: external function is unhandled
[0] Translate to SPIRV IR failedLLVM ERROR: Failed to translate TritonGPU to SPIRV IR.

===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   RANK 0 PID 1046382 RUNNING AT
=   KILLED BY SIGNAL: 6 (Aborted)
===================================================================================

Hi @dc3671 , Thanks for offering the early feedback.
From your log, seems that your LLVM version does not have this Op. Could you try building LLVM following this wiki?  Also, since your xpu-backend commit is quite old, could you also try with the main branch?
We are upgrading the llvm before the release, so there are expected to be more changes. Thanks for the patience and please keep track of future changes.

Hi @Stonepia , thanks for you explanation. I can understand the build error is related to LLVM, and I'm using triton downloaded version of llvm-17.0.0-c5dede880d17 currently.
Can I ask the missing spirv::ConvertPtrToUOp is fixed by newer version of llvm or intel llvm? Do we have to use intel llvm to compile this repo or it's supposed to be compatible with public llvm?

Hello @dc3671
Yes, the op is in the newer version of public llvm, and we are on the way of upgrading to the public llvm.  This process will be completed shortly.

ran into this issue, seems a bit odd since the version of triton used is c5dede880d175f... for the particular version of triton.
Does that mean there will be two separate versions of LLVM used, one for Triton itself and one for the extension?

@dc3671 Have you tried this with the latest version? Is this still actual?

This Issue was reported against the spirv-target branch which is no longer supported.


SignUp Email confirmation for Student

SIGN UP: EMAIL VERIFICATION
As a User I want to receive email confirmation to my email address so that I can confirm it.
Precondition: A User wants to sign up as Student.
Acceptance criteria:
When a User enters the email address and all other valid credentials to Sing up, there must be notification “Your email address needs to be verified”.
Confirmation letter appears in the email inbox and a User needs to click on the “Confirm your email” button to finish signing up

The acceptance criteria for this user story have been merged with [Change request to #28] A Guest provides credentials to Sign up as a Student #891


Created and updated docs for 1.18-11

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

/ok-to-test


[bug] Icons not rendering on prod

Icons are currently not rendering on prod for the site logo, healthcare professionals, and languages.

We'll tackle this on Wednesday in a group coding session.

I was wondering @ermish and @theyokohamalife if you have looked at this and think it is a good add to the project, vue-svg-loader?
Pros

Imports SVG as components so looks clean in the code.
Has very few dependencies. Only 2

Cons

Has dependencies so it does add more to the project

I was wondering @ermish and @theyokohamalife if you have looked at this and think it is a good add to the project, vue-svg-loader?
Pros

Imports SVG as components so looks clean in the code.
Has very few dependencies. Only 2

Cons

Has dependencies so it does add more to the project

a best practice is to have all images (including svg's) to be cacheable which means they should not be inlined. Unfortunately vue-svg-loader inlines them, so it's not a valid option

But as mentioned yesterday it seems like the way we did it on the  about us page fits the requirements for svgs and makes it cacheable so we should proceed that way?

But as mentioned yesterday it seems like the way we did it on the about us page fits the requirements for svgs and makes it cacheable so we should proceed that way?

yeah, that should be fine. Just documenting the thoughts for anyone else reading this. 👍

I'll have a PR ready for this soon 🔥


auth: Allow getting session and access token with custom scope

Changes are pulled from @JasonYeMSFT's original PR https://github.com/microsoft/vscode-azuretools/pull/1643. Jason needs this change to support a feature in the Databases extension.
Creating as a draft because this code change still breaks some things.
Known breakages:

~Breaks zip deploy.~ Fixed in the appservice shared package by https://github.com/microsoft/vscode-azuretools/commit/751ee12d693a4cd62944a53794bbf4ca1d09ec6e
~Zip deploying to a function/app service app in a sovereign cloud. (along with all other kudu operations like viewing deployments and logs)~ Fixed in the azure shared package by https://github.com/microsoft/vscode-azuretools/pull/1670

@bwateratmsft I'm investigating this, but would appreciate some help figuring out why this would break zip deploy for sovereign clouds.

I found that the access token audiences are different between the working and broken access tokens.
Broken access token audience: “https://management.chinacloudapi.cn\” (resource manager endpoint)
Working access token audience: “https://management.core.chinacloudapi.cn\” (management endpoint)

Looks like I already investigated and found out about the endpoint difference in December https://github.com/microsoft/vscode-azuretools/pull/1637
However, that was changing the default if no scopes were passed. This change makes it so scopes will be respected, but now the wrong scopes are being passed in 🙃

Once https://github.com/microsoft/vscode-azuretools/pull/1670 is merged and released, we'll be good to merge this too.

Ok so #1670 broke a bunch of other stuff so https://github.com/microsoft/vscode-azuretools/pull/1677 is the actual fix that doesn't break everything! 😄


feat: add onProgress callback

addresses https://github.com/dkaoster/scrolly-video/issues/100
not sure about this particular implementation
let me think about it more

Closing it for now.
https://github.com/dkaoster/scrolly-video/pull/110 makes more sense for end user.


Re-enable disabled INTERPRETER tests

Re-enables some unit tests for INTERPRETER.
I can't find any reason that these were disabled, and they seem to work fine:
argmin_4D_axis_3_i64
computation_reuse

I presume these tests were disabled for INTERPRETER because they compare against INTERPRETER as their baseline. They are still valid tests, however:
topk_3d_large_input_max
topk_3d_large_input_min

This one was getting tripped up because INTERPRETER was unaware of its unusual choice of output element types (fixed that):
topk_int64

May be we can add something like
std::string backend_name = "${BACKEND_NAME}";
if (backend_name == "INTERPRETER")
{
return;
}
to
topk_3d_large_input_min```

May be we can add something like
std::string backend_name = "${BACKEND_NAME}";
if (backend_name == "INTERPRETER")
{
return;
}

to topk_3d_large_input_max and topk_3d_large_input_min tests

@AyanmoI We could do that, but the observable effect should be the same and it's not like we're wasting any real time in the test.

Looking a bit more closely at computation_reuse, I am guessing it was disabled because it is meant to test the set_stale flag which is only "really" implemented on CPU. However, I think it is still valid and useful to test that set_stale on INTERPRETER has no ill effect, i.e., it doesn't change the output.

Regarding argmin_4D_axis_3_i64, the test was originally disabled in #1862, and it appears that the likely underlying interpreter bug was fixed in #1922.


WIP: feat(ios): Use RSA as dylib

Fix standalone device problem.
Needs to be cleaned up to be nicer, but works on its own now.
Don't merge with .dylib assets. These should be copied over appropriately etc.

Out of date with recent work


Black screen on one of my two phones

Hello nisrulz,
I have two smartphone:
1 - Note 4 with Android 6.01 and all is OK;
2 - Chinese phone with Android 6.0 and screen is black; when I press START/STOP the button text is always STOP.

Thanks in advance. Rocco

I found the problem. It was Android 6 camera rights problem.
Thanks.


LEARNER-7432

Description
LEARNER-7432
Add a description of your changes here.
Notes
This PR creates ChromeCast functionality  to edx ios app.
In design, we do have two scenarios.

Chrome Cast Connected:

In this case, Chrom Cast Button will be available on these screens, Enrolled Courses Screen, Course Dashboard Screen, and Course Content screen.

Chrome Cast No Connected:

In this case, the Chrom Cast button will only be available on the video unit screen.
Features:
We shall add the introductory overlay which is provided in the chrome cast SDK.
If the device is cast, then the video should be automatically cast.
If the device is not cast, then on device casting video should also be cast and mini-player will also appear on the video screen.
Course image should be used as a video thumbnail image for the cast video because no thumbnail is available for a video on the edX platform.
Transcripts should also be cast with the video.
Mini controller which is provided with the chrome cast SDK will be available on the video player screen at the bottom of the screen.

How to test this PR

closing pull request


Modern Taxonomy Picker confusing label: allowMultipleSelection to false but label says you can select one or more tags

Category
[ ] Enhancement
[X] Bug
[ ] Question
Version
Please specify what version of the library you are using: [ 3.12.0  ]
Expected / Desired Behavior / Question
In Modern Taxonomy Picker or Taxonomy Picker component, when I select "allowMultipleSelections" param to false, in order to allow only one term selection, panel label says "Select one or more tags". I think this label should say "Select one tag" for single term selection and "Select one or more tags" for multiple selection. In fact, looking in the location files in other languages -in example, spanish location es-es -, we can see same label ("ModernTaxonomyPickerTreeTitle" key in location files) is translated as "Select one tag", refering only to single selection term. It's a bit confusing for basic users.
Observed Behavior
In Modern Taxonomy Picker or Taxonomy Picker, if you choose allowMultipleSelections param as false, at open panel to select a term, the panel label says "Select one or more tags" despite of you only can pick a single term.
Steps to Reproduce
In Modern Taxonomy Picker,  set allowMultipleSelections param to false, and open panel to select a term. You can see label Im refering there.
Thanks!

@mfdezvil a fix was merged some months ago but we forgot to update this issue. Are you able to confirm is this is resolved?


Added default weight initializations to FMoELinear and NoisyGate

Some of the weight initializations were missing. torch.Tensor will simply store a random tensor with no guarantee of the range of values. The used distribution is the same used in nn.Linear which is the equivalent of a uniform

PyTorch has an individual naming convention for Modules but there is no default method for initialization and we are required to implement our own.


Fix link_name mistake in documentation

Closes #205

Coverage remained the same at 95.965% when pulling 868ad97fa712d670648520ec1e7b8ead70fca2fa on rhoggSugarcrm:link-docs-error into 7d25d1d7630844a3c7a5047b97d00a3393fb082d on sugarcrm:master.


Application of external matrices in real X-ray

Hi！I am currently doing the registration of real X-ray，and two camera external matrices are provided in the data. The coordinate system of the camera can be transformed by using the external matrices to register the two views. However, after the application of external matrices , the position of the camera changed, but the CT was still in the original position. How can I modify the code in diffdrr and apply the external matrices to CT. I hope I can get your help, thank you!

Hi @shenao1994, DiffDRR only applies transformations to the cameras, not the CT. I assume the CT is placed at the isocenter of world coordinates. Do you also want the CT to be transformed by the same matrices?
Also, for the PyVista plot, there's an option called pyvista.Plotter.show_grid, which will add axis labels to the 3D grid. Could you add this so I can see where the various objects are located? Thanks.

Hi @shenao1994, DiffDRR only applies transformations to the cameras, not the CT. I assume the CT is placed at the isocenter of world coordinates. Do you also want the CT to be transformed by the same matrices?
Also, for the PyVista plot, there's an option called pyvista.Plotter.show_grid, which will add axis labels to the 3D grid. Could you add this so I can see where the various objects are located? Thanks.

Yes, I want the CT to be transformed by the same matrices. Should I perform some transformation operations on volume?
OK. This is a plot after adding axis labels.

OK I see. DiffDRR doesn't apply transformations to the CTs, only the camera. In theory, if you wanted to apply transform T to the CT, you could achieve the same effect by applying T^-1 to the cameras.
PyVista has another feature called pyvista.DataSetFilters.transform. I think the api is something like mesh.transform(T), where T is the 4x4 affine transformation matrix. If that moves the CT to the right position relative to your cameras in the 3D rendering, then applying T^-1 to the camera matrices should work.

OK I see. DiffDRR doesn't apply transformations to the CTs, only the camera. In theory, if you wanted to apply transform T to the CT, you could achieve the same effect by applying T^-1 to the cameras.
PyVista has another feature called pyvista.DataSetFilters.transform. I think the api is something like mesh.transform(T), where T is the 4x4 affine transformation matrix. If that moves the CT to the right position relative to your cameras in the 3D rendering, then applying T^-1 to the camera matrices should work.

Thank you very much for your help. I will give it a try!

Hi @shenao1994 , closing this for now, feel free to reopen if you're still having issues!


[FEATURE] Improve Developers Guide

The following two links can be helpful to ramp up with Git.
https://learngitbranching.js.org/
https://gist.github.com/ashwin-pc/84ee8bd937caecd6a193e2a6a4c4fe34
We have a section about installing git.
We can include these two links in that section as reference.

@dhrubo-os I would like to do this as a first issue

Sure, I assigned the issue to you.


Add support for requestPermissions option

Required to specify scope for multi-tenants app

Looks good. I'll try to merge and push a new version in the next couple of days.

In our case, it will be more useful to store only an access token for the unified API exposed by the Microsoft Graph resource.
The https://graph.microsoft.com/v1.0/me endpoint is the equivalent of https://graph.windows.net/myorganization/me?api-version=2013-11-08 (return nearly the same data and doesn't require any special scope or permission from the user).
I know it's an important change, np if you want to skip it.

Hey Simon, looks like someone has been busy! It's been a long time I've looked at this project (or done any meteor work at all) so reviewing and releasing may take a while. Thanks for fixing
#5 as well!

Simon,
I don't have any idea what the new graph.microsoft.com endpoint offers over the graph.windows.net endpoint, are there any benefits to using it?
This might introduce a breaking change for users who authenticated against graph.windows.net- the access and refresh tokens stored in the database will probably not work against graph.microsoft.com. Have you been able to test that?
Cheers,
James

From Azure AD Graph API (graph.windows.net) documentation :

Azure AD Graph API functionality is also available through Microsoft Graph, a unified API that also includes APIs from other Microsoft services like Outlook, OneDrive, OneNote, Planner, and Office Graph, all accessed through a single endpoint with a single access token.

Azure AD Graph API and Microsoft Graph are two different resources and they both need their own access token stored on the user. So with this change, a user would no longer be able to access graph.windows.net by using the access token stored in services.azureAd.accessToken.
But the same refresh token can be used to get an access token for both resource.


net: DNS resolves slowly

What version of Go are you using (go version)?
go1.8.1 & go1.9
Does this issue reproduce with the latest release?
not found yet
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/XXX/go"
GORACE=""
GOROOT="/home/XXX/local/go1.9/go"
GOTOOLDIR="/home/XXX/local/go1.9/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build967902580=/tmp/go-build"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
What did you do?
when I used httpclient to send post request to a URL, I found it took more time than use python or java in the same environment. go took 6S, python took less than 1S.
After analysis and exclusion, I found it spend too much time on DNS resolve.  if I replace domain names with the IP, the request take almost as much time as python&java take.
One more thing, all above is only for a specified domain, I'm not sure if there's other special domain name like this cause this problem.

Thank you for raising this issue. Please provide some sample code that reproduces the problem.

On 16 Sep 2017, at 20:19, mupeng<EMAIL_ADDRESS>wrote:
What version of Go are you using (go version)?
go1.8.1 & go1.9
Does this issue reproduce with the latest release?
not found yet
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/XXX/go"
GORACE=""
GOROOT="/home/XXX/local/go1.9/go"
GOTOOLDIR="/home/XXX/local/go1.9/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build967902580=/tmp/go-build"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
What did you do?
when I used httpclient to send post request to a URL, I found it took more time than use python or java in the same environment. go took 6S, python took less than 1S.
After analysis and exclusion, I found it spend too much time on DNS resolve. if I replace domain names with the IP, the request take almost as much time as python&java take.
One more thing, all above is only for a specified domain, I'm not sure if there's other special domain name like this cause this problem.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

 // For security's sake, sorry, I can't provide detailed domain names
       url := ""
   // json content
	payload := strings.NewReader("")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("content-type", "application/json")
	req.Header.Add("cache-control", "no-cache")

	client := &http.Client{
		Timeout:   time.Duration(3000) * time.Millisecond,
	}
	now := time.Now()
	res, err := client.Do(req)
	cost := time.Since(now)
	if err != nil {
		fmt.Println(err)
		return
	}

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(string(body))
	fmt.Println(cost.Seconds() * 1e3)

       now = time.Now()
	ns, err := net.LookupHost("DOMAIN")
	cost = time.Since(now)
	fmt.Println(cost.Seconds() * 1e3)
	if err != nil {
		fmt.Printf("Err: %s", err.Error())
		return
	}

	for _, n := range ns {
		fmt.Printf("%s\n", n)
	}

@mupengX the code you pasted isn't self-contained. Please give an entire program - as small as possible - that reproduces the issue. You can use https://play.golang.org/.

i'm sorry for that.  The go playground does not allow HTTP requests for security.
This is the complete code：
package main

import (
	"fmt"
	"io/ioutil"
	"net"
	"net/http"
	"strings"
	"time"
)

func main() {

	// For security's sake, sorry, I can't provide detailed domain names
	url := ""
	// json content
	payload := strings.NewReader("")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("content-type", "application/json")
	req.Header.Add("cache-control", "no-cache")

	client := &http.Client{
		Timeout: time.Duration(3000) * time.Millisecond,
	}
	now := time.Now()
	res, err := client.Do(req)
	cost := time.Since(now)
	if err != nil {
		fmt.Println(err)
		return
	}

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(string(body))
	fmt.Println(cost.Seconds() * 1e3)

}

Thank you for sharing your code sample. I'm guessing the part you are
timing is

now := time.Now()res, err := client.Do(req)cost := time.Since(now)

How have you determined that the value of cost is dominated by DNS lookup?
On Mon, Sep 18, 2017 at 12:53 PM, mupeng<EMAIL_ADDRESS>wrote:

i'm sorry for that. The go playground does not allow HTTP requests for
security.
This is the complete code：
package main
import (
"fmt"
"io/ioutil"
"net"
"net/http"
"strings"
"time"
)
func main() {
// For security's sake, sorry, I can't provide detailed domain names
url := ""
// json content
payload := strings.NewReader("")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("content-type", "application/json")
req.Header.Add("cache-control", "no-cache")
client := &http.Client{
Timeout: time.Duration(3000) * time.Millisecond,
}
now := time.Now()
res, err := client.Do(req)
cost := time.Since(now)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
fmt.Println(cost.Seconds() * 1e3)
}
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/21906#issuecomment-330117656, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAcAyEowDCwAjbex69Sc0bwKbwyPSnIks5sjds8gaJpZM4PZxvI
.

Also wondering how you came to the conclusion that it's Go's fault that the DNS resolves slowly (if it indeed is the DNS lookup that takes a while).
Have you tried other tools, like host?

Have you tried using net/http/httptrace package to trace the request and confirm that the DNS lookup is your problem?
There is also httpstat tool which basically collects all the timings in a request using the net/http/httptrace package and formats them in a pretty way.
You can also set GODEBUG=netdns=2 to see how the DNS request is made (using Go or CGO) and force Go/CGO by using GODEBUG=netdns=go or GODEBUG=netdns=cgo. See this CL for more information on the GODEBUG=netdns configuration.

First thanks for your suggestion
@davecheney @mvdan
i calculated the cost of DNS resolve  by  net.LookupIP , it costed 5S. And  if I replace domain names with the IP, the http request take almost as much time as python&java take.
i also used nslookup command, it returned quickly.
@nussjustin
i'm sorry i didn't use  net/http/httptrace package to trace this.
i tried this: it costed more time  with GODEBUG=netdns=go than with GODEBUG=netdns=cgo
Maybe it is a special case with this domain name. Thanks!

@nussjustin
i used httptrace to trace the request, the code like this:
package main

import (
	"fmt"
	"io/ioutil"
	"net"
	"net/http"
	"net/http/httptrace"
	"strings"
	"time"
)

func main() {

	dialer := &net.Dialer{Timeout: 7 * time.Second}
	// For security's sake, sorry, I can't provide detailed domain names
        url := ""
       // json content
	payload := strings.NewReader("")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("content-type", "application/json")
	req.Header.Add("cache-control", "no-cache")

	trace := &httptrace.ClientTrace{
		DNSStart: func(dnsInfo httptrace.DNSStartInfo) {
			fmt.Printf("dns start: %v\n", time.Now())
		},
		DNSDone: func(dnsDoneInfo httptrace.DNSDoneInfo) {
			fmt.Printf("dns end: %v\n", time.Now())
		},
	}
	req = req.WithContext(httptrace.WithClientTrace(req.Context(), trace))

	transport := &http.Transport{

		DialContext:         (dialer).DialContext,
		Dial:                (dialer).Dial,
		TLSHandshakeTimeout: 2 * time.Second,
	}

	client := &http.Client{
		Transport: transport,
		Timeout:   time.Duration(10000) * time.Millisecond,
	}

	now := time.Now()

	res, err := client.Do(req)

	cost := time.Since(now)
	if err != nil {
		fmt.Println(err)
		return
	}

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(string(body))
	fmt.Printf("client cost: %v\n", cost.Seconds()*1e3)

}

and get the result :
dns start: 2017-09-26 15:45:28.148847712 +0800 CST
dns end: 2017-09-26 15:45:33.15817369 +0800 CST
client cost: 5114.887975000001

CC @iangudger

@mupengX, would it be possible for you to try again with tip?

@iangudger - Possibly it is still there in 1.10. See #26960

5114ms is fairly suspicious. IIRC, the Go DNS resolvers includes 5s timer for refreshing /etc/resolv.conf, or at least it used to.

@mupengX, sorry if I wasn't clear, I meant please re-test with 1.11.

Experiencing very slow DNS lookups only for internal (intranet) addresses on Linux (RHEL 7.5) with Go 1.11. This is not an issue with Go 1.10.  Would it be possible for you to collect packet captures with tcpdump and post them here?

Aiming for 1.12 since a lot of people lately seem to bump into this.
@mikioh @bradfitz

There is no entry for jira.faa.gov in the /etc/hosts file (although the file is somewhat large with over 2000 entries). I wanted to note that the DNS lookup times are suspiciously similar each time, always taking just 30-50ms over 10 seconds. It's almost like part of the DNS lookup is timing out at 10 seconds before finally resolving using another lookup. I'll capture the packets with tcpdump and post here shortly.

Posting strace below until I can isolate tcpdump capture:
strace -f -e trace=network -s 10000 -r httpstat https://jira.faa.gov
strace: Process 25366 attached
strace: Process 25365 attached
strace: Process 25367 attached
[pid 25364]      0.000000 socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 3
[pid 25366]      0.001671 socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 5
[pid 25366]      0.000275 setsockopt(5, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
[pid 25366]      0.000494 connect(5, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP A>")}, 16) = 0
[pid 25366]      0.000556 getsockname(5, {sa_family=AF_INET, sin_port=htons(49727), sin_addr=inet_addr("<Private IP B>")}, [16]) = 0
[pid 25366]      0.000180 getpeername(5, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP A>")}, [16]) = 0
[pid 25366]      0.000714 setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
[pid 25366]      0.000415 connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP A>")}, 16) = 0
[pid 25366]      0.000500 getsockname(3, {sa_family=AF_INET, sin_port=htons(59083), sin_addr=inet_addr("<Private IP B>")}, [16]) = 0
[pid 25366]      0.000274 getpeername(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP A>")}, [16]) = 0
[pid 25366]      0.001471 socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 3
[pid 25366]      0.000515 setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
[pid 25366]      0.000572 connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP C>")}, 16) = 0
[pid 25366]      0.000468 getsockname(3, {sa_family=AF_INET, sin_port=htons(60955), sin_addr=inet_addr("<Private IP B>")}, [16]) = 0
[pid 25366]      0.000324 getpeername(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP C>")}, [16]) = 0
strace: Process 25368 attached
[pid 25368]      0.002348 socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 3
[pid 25368]      0.000450 setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
[pid 25368]      0.000391 connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP D>")}, 16) = 0
[pid 25368]      0.000463 getsockname(3, {sa_family=AF_INET, sin_port=htons(33115), sin_addr=inet_addr("<Private IP B>")}, [16]) = 0
[pid 25368]      0.000422 getpeername(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP D>")}, [16]) = 0
[pid 25368]      4.999070 socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 3
[pid 25368]      0.000830 setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
[pid 25368]      0.000366 connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP A>")}, 16) = 0
[pid 25368]      0.000610 getsockname(3, {sa_family=AF_INET, sin_port=htons(45386), sin_addr=inet_addr("<Private IP B>")}, [16]) = 0
[pid 25368]      0.000294 getpeername(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP A>")}, [16]) = 0
[pid 25364]      0.001998 socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 3
[pid 25364]      0.000770 setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
[pid 25364]      0.000657 connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP C>")}, 16) = 0
[pid 25364]      0.000819 getsockname(3, {sa_family=AF_INET, sin_port=htons(42528), sin_addr=inet_addr("<Private IP B>")}, [16]) = 0
[pid 25364]      0.000676 getpeername(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP C>")}, [16]) = 0
[pid 25368]      0.002157 socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 3
[pid 25368]      0.000680 setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
[pid 25368]      0.000594 connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP D>")}, 16) = 0
[pid 25368]      0.000794 getsockname(3, {sa_family=AF_INET, sin_port=htons(35194), sin_addr=inet_addr("<Private IP B>")}, [16]) = 0
[pid 25368]      0.000403 getpeername(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("<Private IP D>")}, [16]) = 0
[pid 25368]      4.998392 socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 3
[pid 25368]      0.002491 setsockopt(3, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
[pid 25368]      0.000810 connect(3, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("<Private IP E>")}, 16) = -1 EINPROGRESS (Operation now in progress)
[pid 25364]      0.002335 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
[pid 25364]      0.000560 getpeername(3, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("<Private IP E>")}, [16]) = 0
[pid 25364]      0.000620 getsockname(3, {sa_family=AF_INET, sin_port=htons(44562), sin_addr=inet_addr("<Private IP B>")}, [16]) = 0
[pid 25364]      0.000654 setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0

Connected to <Private IP E>:443
strace: Process 25377 attached

strace: Process 25377 attached

HTTP/1.1 200
<HEADERS OMITTED>

Body discarded

  DNS Lookup   TCP Connection   TLS Handshake   Server Processing   Content Transfer
[  10061ms  |           8ms  |        169ms  |            103ms  |           222ms  ]
            |                |               |                   |                  |
   namelookup:10061ms        |               |                   |                  |
                       connect:10069ms       |                   |                  |
                                   pretransfer:10239ms           |                  |
                                                     starttransfer:10343ms          |
                                                                                total:10565ms
[pid 25377]      0.504838 +++ exited with 0 +++
[pid 25368]      0.000415 +++ exited with 0 +++
[pid 25367]      0.000261 +++ exited with 0 +++
[pid 25366]      0.000348 +++ exited with 0 +++
[pid 25365]      0.000301 +++ exited with 0 +++
     0.000270 +++ exited with 0 +++

Would it be possible for you to re-run the strace also logging sendto, recvfrom, read, write, and the full arguments (packet data)? I can probably debug with that.

Is this the expected behavior for Go 1.11 on Linux (trying to resolve DNS lookups using all the nameservers listed in /etc/resolv.conf)?

I don't think so. I think the behavior in this regard is supposed to be the same as 1.10.

You are correct, the DNS nameservers used are returning empty answers for IPv6 lookups (including for sports.yahoo.com). If this behavior is expected, then my issue is not an actual issue.

Returning an empty answer section is allowed. I will try to put together a fix.

In my service, the net.Resolver stalling 5s+ occurred once every 150 queries. This service is built in go1.11 .
The AAAA reponse alway this:

I have filed https://github.com/golang/go/issues/27525 to track this regression.

@iangudger - Does #27525 supercede this ? Or should I reopen this ?

#27525 only supersedes the new issue here. The original issue timed out waiting for info. I think the current state is correct.

@iangudger
i'm sorry for my late reply and it's hard  to reappear the scene at that time, maybe it's a specific case. if i meet it again i will provide more information.
Thanks.


upload to S3 problem

Hi, after uploading I get an error(console):
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://.....' is therefore not allowed access. The response had HTTP status code 403.
In response, the image url is  https://Bucket.s3-ap-southeast-1.amazonaws.com/sample.jpeg  (image file failed to upload)
And my S3 correct url should be like this:
https://s3-ap-southeast-1.amazonaws.com/Bucket/sample.jpg
I have no idea how can i fix this problem.
thanks!

Sounds like a CORS issue. You need to set your CORS policy on AWS.

Oh! It's CORS setting issue.
much thanks!


fatal: [default]: FAILED! => {"changed": false, "dest": "/tmp/jdk-8u112-linux-x64.tar.gz", "failed": true, "msg": "Request failed", "response": "HTTP Error 404: Not Found", "state": "absent", "status_code": 404, "url": "http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.tar.gz"}

started getting this error today, it  worked last week but now it doesn't
fatal: [default]: FAILED! => {"changed": false, "dest": "/tmp/jdk-8u112-linux-x64.tar.gz", "failed": true, "msg": "Request failed", "response": "HTTP Error 404: Not Found", "state": "absent", "status_code": 404, "url": "http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.tar.gz"}

I am also facing the same error.
fatal: [<IP_ADDRESS>]: FAILED! => {
    "changed": false,
    "dest": "/tmp/jdk-8u91-linux-x64.tar.gz",
    "failed": true,
    "invocation": {
        "module_args": {
            "backup": false,
            "checksum": "",
            "content": null,
            "delimiter": null,
            "dest": "/tmp/jdk-8u91-linux-x64.tar.gz",
            "directory_mode": null,
            "follow": false,
            "force": false,
            "force_basic_auth": false,
            "group": null,
            "headers": "Cookie:oraclelicense=accept-securebackup-cookie",
            "http_agent": "ansible-httpget",
            "mode": null,
            "owner": null,
            "regexp": null,
            "remote_src": null,
            "selevel": null,
            "serole": null,
            "setype": null,
            "seuser": null,
            "sha256sum": "",
            "src": null,
            "timeout": 10,
            "tmp_dest": "",
            "unsafe_writes": null,
            "url": "http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz",
            "url_password": null,
            "url_username": null,
            "use_proxy": true,
            "validate_certs": true
        },
        "module_name": "get_url"
    },
    "msg": "Request failed",
    "response": "HTTP Error 404: Not Found",
    "state": "absent",
    "status_code": 404,
    "url": "http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz"
}

cc: @akshita27

This is probably because the URL structure has changed:
When I download JDK using the UI, I see an additional hash.
http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

I think this PR would solve the issue : https://github.com/William-Yeh/ansible-oracle-java/pull/60
How can we speed up the merge of it ?

I manually changed one of the files, which fixed issue for me, until  the fix will be in:
replace the context of
williamyeh.oracle-java/defaults/main.yml
with::
java_version: 8
java_subversion: 131
java_build_custom: 11
jdk_version_detail_custom: "{{ java_version }}u{{ java_subversion }}-b{{ java_build_custom }}"
jdk_tarball_hash: d54c1d3a095b4ff2b6607d096fa80163
jdk_tarball_url: "http://download.oracle.com/otn-pub/java/jdk/{{ jdk_version_detail_custom }}/{{ jdk_tarball_hash }}/{{ jdk_tarball_file }}"
java_download_path: /tmp
java_download_from_oracle: true
java_remove_download: true
java_install_jce: false
java_set_javahome: false

While that does seem to be unique for JDK 8u131, older versions have different hashes:
http://download.oracle.com/otn/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz

Duplicate of #58, I believe.

The issue is not with hashes (they are not used for older distributions (like 112, in this issue), but the URL is different (second is copied from Oracle's site):
http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.tar.gz
http://download.oracle.com/otn/java/jdk/8u112-b15/jdk-8u112-linux-x64.tar.gz

I've changed that in /etc/ansible/roles/williamyeh.oracle-java/tasks/set-role-variables.yml, and now I get different error:
{"changed": false, "dest": "/tmp/jdk-8u112-linux-x64.rpm", "failed": true, "msg": "Request failed", "response": "HTTP Error 401: Authorization Required", "state": "absent", "status_code": 401, "url": "http://download.oracle.com/otn/java/jdk/8u112-b15/jdk-8u112-linux-x64.rpm"}

Damn, Oracle! Why do you hate us?

Anyone found some work around for this? I change the URL to http://download.oracle.com/otn/java/jdk/8u91-b14/jdk-8u91-linux-i586.rpm but still, it fails with authentication error. If anyone know any other ansible role, then also please let me know. Thanks !

same with mac users. currently not working...

After playing around using wget, I think I have a (hacky, non-ansible) solution that could be made into a role.
First, from @ianhattendorf's comment on #58 , I did the equivalent for 8u144b01 on Mac OS using bash and wget. But I also needed to send a cookie with the current timestamp to Oracle to get around auth errors:
#!/usr/bin/env bash

jdk_platform=macosx-x64
jdk_file_extension=dmg
java_version=8
java_subversion=144
java_build_custom=01
jdk_version_detail_custom="${java_version}u${java_subversion}-b${java_build_custom}"
jdk_tarball_hash="090f390dda5b47b9b721c7dfaa008135"
jdk_tarball_file="jdk-${java_version}u${java_subversion}-${jdk_platform}.${jdk_file_extension}"
jdk_tarball_url="http://download.oracle.com/otn-pub/java/jdk/${jdk_version_detail_custom}/${jdk_tarball_hash}/${jdk_tarball_file}"

# substitute current date into the cookies file
now=`date`
epoch=`date -j -f "%a %b %d %T %Z %Y" "${now}" "+%s"`
inHalfAnHour=`expr ${epoch} \+ 1800`
tomorrow=`expr ${epoch} \+ 86400`
nextmonth=`expr ${epoch} \+ 2592000`
epochmillis="${epoch}000"

cat <<EOF > cookies.txt
www.oracle.com FALSE /technetwork/java/javase/downloads FALSE 0 testSessionCookie Enabled
.oracle.com TRUE / FALSE ${tomorrow} oraclelicense accept-securebackup-cookie
.oracle.com TRUE / FALSE ${inHalfAnHour} s_nr ${epochmillis}
EOF

# replace spaces with tabs
tempfile=`mktemp`
sed -e "s/ /    /g" cookies.txt > "${tempfile}" && mv -f "${tempfile}" cookies.txt

wget --load-cookies cookies.txt "${jdk_tarball_url}"

You'll need to replace the replacement expression in that sed to be a tab character, as github has converted it to whitespace:
sed -e "s/ /TAB_CHAR_HERE/g"  ...


Use shorter imports for Component, TestGroup, etc.

This is more consistent with the API documentation, which uses the shorter names, and also what we want folks to use in new test groups they make.

Checklist

[ ] Testing comment in the PR documents testing used to verify the changes

Testing
I tested this by successfully running several baroclinic channel and cosine bell tests on Chrysalis (comparing with a baseline).

This is something that has been bugging me while I write the tutorial.


Make FE OS contribution not fail on CI/CD

[ ] Allow *.md files pass on CI/C
[ ] allow FE OS contributions to pass CI/CD
[ ] merge existing OS contributions


GEODE-4163 clean up DistributionManager code

Removed all dead code - about 800 lines of code have been removed.
Removed DistributionChannel, which served no useful purpose.
Made many methods private or package-private.
Gathered most statics and instance variables scattered around in the file
and moved them to the top.
I attempted to replace use of InternalDistributedMember with
DistributedMember but the use of the former is too widespread.  If we
want to do that it will change a large set of files.
@upthewaterspout @WireBaron @galen-pivotal @PivotalSarge
Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[x] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[x] Is your initial contribution a single, squashed commit?

[x] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

The PR seems not to have picked up formatting changes that are in 128a6d0d8f8bcbc7a02aee722c42eb2ffa4a169a, causing spotless to lodge a couple of complaints.

The spotless check fails for me with this PR as well, it's not just travis. @bschuchardt maybe you missed pushing some formating changes? Other than that it looks good.

I found and fixed the problem with the format violations


Undocumented properties in JSON

Hi, I encountered some unknown/undocumented entries in the json in this topic here
e.g.
cacheEnabled
objectID
I'm not sure if it's a missing doc, or it should be an internal field. If internal, I don't think the json have it.

ArangoDB Version:        3.7

There are also tempObjectId, isSmartChild, globallyUniqueId etc. which are not documented. They are kind of internal (implementation details), but they cannot be hidden. Other components rely on this information. Adding minimal documentation for every property is a declared goal, but it will take some time.


fix: dependency git url inside authorize-specific-nodes.md

On the Tutorial -> Build a blockchain -> Authorize specific nodes
There is a wrong URL in the example for using a dependency https://docs.substrate.io/tutorials/build-a-blockchain/authorize-specific-nodes/#add-node-authorization-dependencies

looks like this has been fixed in master


[Impeller] Flickering lines when drawing on Canvas with CustomPainter on iOS

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

The mouse was on the screen to draw, and you can see that it does not render the first few points. Then af a second or so, it kicks in, but still gives some flickers in the second line, as you can see in the gif

Second gif is of the standalone example, code below. It only seems to flicker with the first line
Steps to reproduce
Usecase is very simple:
Create a layered painter:
And a line painters:
And wrap all this in a Widget that adds points with a listener:
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: const SketchCanvas(),
    );
  }
}

class SketchCanvas extends StatefulWidget {

  const SketchCanvas({
    Key? key,
  }) : super(key: key);

  @override
  State<SketchCanvas> createState() => _SketchCanvasState();
}

class _SketchCanvasState extends State<SketchCanvas> {

  final List<Offset> _points = [];
  final List<List<Offset>> _otherLines = [];

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        CustomPaint(
          painter: CanvasPainter(layers: ["Layer 1", "Layer 2"], painters: [..._otherLines.map((e) => createPainter(e)), createPainter(_points)]),
        ),
        buildDrawerListener(context)
      ],
    );
  }

  LinePainter createPainter(List<Offset> points) {
    return LinePainter("Layer 1", points: points, color: Colors.black, strokeWidth: 5.0);
  }

  Widget buildDrawerListener(BuildContext context) {
    return Listener(
      onPointerDown: (e) async {
          setState(() {
            _points.clear();
            _points.add(e.localPosition);
          });
      },
      onPointerMove: (e) async {
        setState(() {
          _points.add(e.localPosition);
        });
      },
      onPointerUp: (e) async {
        _otherLines.add(List.from(_points));
      },
      child: Container(
        color: Colors.transparent,
      ),
    );
  }
}

class CanvasPainter extends CustomPainter {

  List<String> layers = [];
  List<LinePainter> painters = [];

  CanvasPainter({required this.layers, required this.painters});

  @override
  void paint(Canvas canvas, Size size) {
    paintLayers(canvas, size, layers);
  }

  void paintLayers(Canvas canvas, Size size, List<String> layers) {
    for (var _ in layers) {
      var layers = painters.toList();
      canvas.saveLayer(Rect.largest, Paint());
      for (LinePainter p in layers) {
        p.paint(canvas, size);
      }
      canvas.restore();
    }
  }

  @override
  bool shouldRepaint(CanvasPainter old) => true;
}

class LinePainter extends CustomPainter {
  final String layer;
  final List<Offset> points;
  final Color color;
  final double strokeWidth;

  LinePainter(
      this.layer, {
        required this.points,
        required this.color,
        required this.strokeWidth,
      });

  @override
  void paint(Canvas canvas, Size size) {
    _drawQuadricPoints(canvas);
  }

  Paint createPaint() {
    Paint paint = Paint();
    paint.color = color;
    paint.style = PaintingStyle.stroke;
    paint.strokeCap = StrokeCap.round;
    paint.isAntiAlias = true;
    paint.strokeWidth = strokeWidth;
    paint.strokeJoin = StrokeJoin.round;
    paint.filterQuality = FilterQuality.high;

    return paint;
  }

  void _drawQuadricPoints(Canvas canvas) {
    var points = this.points.toList();
    if (points.isNotEmpty) {
      var path = Path();
      path.moveTo(points[0].dx, points[0].dy);
      for (int i = 1; i < points.length; i++) {
        var p0 = points[i - 1];
        var p1 = points[i];
        path.quadraticBezierTo(p0.dx, p0.dy, (p0.dx + p1.dx) / 2, (p0.dy + p1.dy) / 2);
      }

      canvas.drawPath(path, createPaint());
    }
  }

  @override
  bool shouldRepaint(LinePainter oldPainter) => true;
}

See the newly added lines and the old lines flicker like crazy.
The example is heavily truncated btw, but this gives you the general idea.
Expected results
I expect no flickers, it makes drawing pretty crappy..
Skia does not flicker btw
Actual results
Flicker the night away. Sometimes the lines just do not show up.
Code sample
[✓] Flutter (Channel stable, 3.10.5, on macOS 13.2 22D49 darwin-arm64, locale en-NL)
• Flutter version 3.10.5 on channel stable at /Users/rickfleuren/Tools/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 796c8ef792 (7 days ago), 2023-06-13 15:51:02 -0700
• Engine revision 45f6e00911
• Dart version 3.0.5
• DevTools version 2.23.1
[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
• Android SDK at /Users/rickfleuren/Library/Android/sdk
• Platform android-33, build-tools 32.0.0
• ANDROID_HOME = /Users/rickfleuren/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14A400
• CocoaPods version 1.11.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2022.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
[✓] IntelliJ IDEA Ultimate Edition (version 2023.1)
• IntelliJ at /Applications/IntelliJ IDEA.app
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
[✓] VS Code (version 1.74.3)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension can be installed from:
🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

![flicker](https://github.com/flutter/flutter/assets/2432225/281153ad-8683-45f2-a770-20ad138c1453)
Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[Paste your output here]

Hi @Arcturus5404
Thanks for filing the issue but the sample code is incomplete as I can see. In order to address the issue properly, please provide a completed and minimal reproducible code sample so that we may verify this.
Also, please take a look at https://github.com/flutter/flutter/issues/126212 if you find there something similar to this issue. Thanks!

Updated with a working standalone example

Thank you for the complete sample code. I observe this issue on physical iOS device iPhone 7, iOS 15.7.2 (it seems to work well on iOS emulator). Reproduced this issue on the latest stable and master channels.
When I disable Impeller, the issue doesn't happen. Based on description and current result with Impeller, this seems to be similar to an old issue (https://github.com/flutter/flutter/issues/128532) that has been fixed recently.

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.10.5, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.10.5 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 796c8ef792 (29 hours ago), 2023-06-13 15:51:02 -0700
    • Engine revision 45f6e00911
    • Dart version 3.0.5
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.79.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.66.0

[✓] Connected device (5 available)
    • Pixel 3a (mobile)      • 964AY0WL20                               • android-arm64  • Android 12 (API 32)
    • iPhone (mobile)        • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.7.2 19H218
    • iPhone 14 Pro (mobile) • 98082851-A0C4-4E39-A310-21C48B10A364     • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)        • macos                                    • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)           • chrome                                   • web-javascript • Google Chrome 114.0.5735.133

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.12.0-8.0.pre.16, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.12.0-8.0.pre.16 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ae1e6f70d9 (5 hours ago), 2023-06-21 17:38:36 -0400
    • Engine revision 08aaa88bf6
    • Dart version 3.1.0 (build 3.1.0-236.0.dev)
    • DevTools version 2.24.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.79.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.66.0

[✓] Connected device (3 available)
    • Pixel 3a (mobile) • 964AY0WL20 • android-arm64  • Android 12 (API 32)
    • macOS (desktop)   • macos      • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)      • chrome     • web-javascript • Google Chrome 114.0.5735.133

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

We should fix whatever the bug is here, but a couple comments:

Your example does not need saveLayer at all, and it is negatively impacting performance. If you look at the docs on saveLayer, it will hopefully make it a little clearer that you should not use this method unless necessary - and saving a layer with a huge rect and a default paint will at best be the same as a save with a clip and at worst be really expensive.
If you truly did need saveLayer (because you were blending with the paint or something), you really don't want to provide a huge rect as the clipping area. You should either pass null to use the current clip or pass a more reasonable rect that actually tells Flutter about the bounds of this layer.

I did a capture for this and here's how the clip looks when reproducing the issue:
Stencil buffer on the right, clip on the left.
The position being handed off to the raster stage in the clip pipeline draw looks reasonable/correct:
https://github.com/flutter/flutter/assets/919017/07468ff8-c572-4ae0-a94b-f9940549fadf
So I think some kind of precision issue is occurring during the HW raster computation. If this particular value is readily used in the framework, our best bet in this case might be to just handle this as a sentinel value for RectGeometry and fallback to CoverGeometry behavior. However, that's not technically correct in all cases, because if the user performs a projective transform and rotates the field by 90 degrees in the X axis, for example, the correct behavior would be to create a zero area polygon and rasterize nothing.

Thank you for your reply.. I do need it, because in my app I also have an eraser feature and I provide multiple drawing layers. I made the example so that its a MVP for the bug report

I see that Impeller will soon be the default:
[IMPORTANT:flutter/shell/common/shell.cc(454)] [Action Required] The application opted out of Impeller by either using the --no-enable-impeller flag or FLTEnableImpeller=false plist flag. This option is going to go away in an upcoming Flutter release. Remove the explicit opt-out. If you need to opt-out, report a bug describing the issue.
Any update on this issue?


Base: Correlate Mesh & Particle Groups

Description
This allows to add an optional attribute to particle groups and mesh records to cross-correlate projections and probes.
Implements issue: #238
Affected Components

[x] base

Logic Changes
TODO: (write this)
Writer Changes
None
Reader Changes
TODO: (write this)
What would a reader need to change? Link implementation examples!

[x] openPMD-validator:
[ ] openPMD-viewer:
[ ] VisualPIC: https://github.com/AngelFP/VisualPIC
[x] yt: none
[x] VisIt: none
[x] converter: none
[x] openPMD-api: none

Data Updater
None

That's a good point. I think we can add a note for implementers to clarify.

Looks good, thanks a lot!

It's still really useful to reference a particle group name for meshes like <species>_chargeDensity, even if the particle output is disabled for an openPMD series.

That's also a nice convention. I'll keep it in mind for when I have to implement it in Wake-T.


rename "method guide" to "method reference"

it's a reference (list) of patterns, but offers only little "guidance" - so let the name summarize the content.
A "guide" is something that we definitely need in the future.

more or less done... good enough


Leaking QHttpRequest objects

The request object passed to the QHttpServer::newRequest(QHttpRequest*, QHttpResponse*) signal is never deleted. Neither the code samples, nor the inline documentation suggest that the user is responsible for deleting the request.
I suggest that the request object should be deleted automatically when the response is deleted:
connect(response, SIGNAL(destroyed(), request, SLOT(deleteLater()));

Further, if the user fails to connect and properly handle the newRequest() signal, both request and response (and connection) objects will leak. The response and connection objects are destroyed when the connection is closed by the client, but the request is never destroyed. I suggest passing these objects wrapped in a QSharedPointer rather than naked pointers. That would make the API safe(r) by design.
Nice library thou, thank you for sharing :+1:

The docs do suggest that.

QHttpRequest is never deleted by QHttpServer. Since it is not possible to determine till what point the application may want access to its data, it is up to the application to delete it. A recommended way to handle this is to create a new responder object for every request and to delete the request in that object's destructor. The object itself can be deleted by connecting to QHttpResponse's done() slot as explained below.

But I like your idea.


Externalize context configuration

The Spring context files contain several values, such as class names, which should be moved to properties files.

Done


Plugin execution msgbox shows dark in light mode

in which file has this plugin warning window designed and coded ?

i tried looking for it but i didnt found it

How do we compile this code ? for test ?

I guess there is some issues with 2 files  :-
1.enlighten/assets/stylesheets/dark)/enlighten.css
2.enlighten/assets/stylesheets/light)/enlighten.css
In PluginController.py there is a function named "display_plugin_warning" which is used to generate the PluginWarning message box . This message box is not styled in any of the above two files thus causing an error that you have mentioned.
FIX:
QMessageBox {
background-color: rgb(0,0,0);         # This should be included in the dark/ enlighten.css
}
QMessageBox {
background-color: rgb(255,255,255);    #This should be included in the light/enlighten.css
}

Hi Aman. Thank you for your suggestions. I tried it out, but it's not yet working for me.
I will look more into it when I have a chance. Until then please be welcome to fork the repository and create a pull request 😁

can you plzz guide me on how to compile the code so i can test it locally on my machine ?

its bit confusing for me

Same thing happens with some tooltips (clipboard)


Adds GrpcCurrentTraceContext

See #425

@kuroneko25 so this had nothing to do with the bug, but I can merge if you are interested in using it instead of thread locals for other reasons. Eventually, we'd likely add something like this in order to join traces with instrumentation-java. Anyway, let me know.

closing this as it was unrelated to the problem. If someone wants this we can re-open


Failed to install on Mac with Apple M1

==> Installing pasty-dev/cmdict/cmdict
==> python3.8 -m venv --system-site-packages /opt/homebrew/Cellar/cmdict/0.1.2/libexec
==> /opt/homebrew/Cellar/cmdict/0.1.2/libexec/bin/pip install -v --no-deps --no-binary :all: --use-feature=no-binary-enable-
Last 15 lines from /Users/edxu96/Library/Logs/Homebrew/cmdict/02.pip:
--no-binary
:all:
--use-feature=no-binary-enable-wheel-cache
--ignore-installed
/private/tmp/cmdict--certifi-20230415-41192-cw0wgn/certifi-2021.10.8

Usage:
  pip install [options] <requirement specifier> [package-index-options] ...
  pip install [options] -r <requirements file> [package-index-options] ...
  pip install [options] [-e] <vcs project url> ...
  pip install [options] [-e] <local project path> ...
  pip install [options] <archive url/path> ...

option --use-feature: invalid choice: 'no-binary-enable-wheel-cache' (choose from '2020-resolver', 'fast-deps', 'in-tree-build')

Fixed by #32.


feat(snapshot): mark snapshot ready to csi, reject creation with unready snapshot source

bors try

bors cancel

bors try-

bors try

bors try

bors try-

bors cancel

bors try

bors merge