[gpu] Unknown OpenCL Error (221)

I used to run LightGBM successfully on my computer.  Just recently, I ran into a weird error,  "Unknown OpenCL Error (221)".
Did anyone have the same issue?
Environment info
Operating System: Ubuntu 16.04
CPU: Intel(R) Core(TM) i7-4710MQ CPU @ 2.50GHz
GPU: Nvidia Quadro K1100M, CUDA with bumblebee installed
C++/Python/R version:
Error Message:
[LightGBM] [Info] Finished loading parameters
[LightGBM] [Info] Loading weights...
[LightGBM] [Info] Loading weights...
[LightGBM] [Info] Finished loading data in 0.054851 seconds
[LightGBM] [Info] Number of positive: 3716, number of negative: 3284
[LightGBM] [Info] This is the GPU trainer!!
[LightGBM] [Info] Total Bins 6143
[LightGBM] [Info] Number of data: 7000, number of used features: 28
Met Exceptions:
Unknown OpenCL Error (221)
Steps to reproduce

cd LightGBM/examples/binary_classification
optirun ./lightgbm config=train.conf device=gpu

ping @huanzhang12

@pduy Can you list the OpenCL devices in your system using the clinfo command?
I guess the OpenCL driver was not properly installed.

@huanzhang12 Here is my output of clinfo
`Number of platforms                               1
Platform Name                                   NVIDIA CUDA
Platform Vendor                                 NVIDIA Corporation
Platform Version                                OpenCL 1.2 CUDA 9.0.368
Platform Profile                                FULL_PROFILE
Platform Extensions                             cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts cl_khr_gl_event cl_nv_create_buffer
Platform Extensions function suffix             NV
Platform Name                                   NVIDIA CUDA
Number of devices                                 1
Device Name                                     Quadro K1100M
Device Vendor                                   NVIDIA Corporation
Device Vendor ID                                0x10de
Device Version                                  OpenCL 1.2 CUDA
Driver Version                                  384.130
Device OpenCL C Version                         OpenCL C 1.2
Device Type                                     GPU
Device Profile                                  FULL_PROFILE
Device Topology (NV)                            PCI-E, 01:00.0
Max compute units                               2
Max clock frequency                             705MHz
Compute Capability (NV)                         3.0
Device Partition                                (core)
Max number of sub-devices                     1
Supported partition types                     None
Max work item dimensions                        3
Max work item sizes                             1024x1024x64
Max work group size                             1024
Preferred work group size multiple              <getWGsizes:494: create context : error 221>
Warp size (NV)                                  32
Preferred / native vector sizes
char                                                 1 / 1
short                                                1 / 1
int                                                  1 / 1
long                                                 1 / 1
half                                                 0 / 0        (n/a)
float                                                1 / 1
double                                               1 / 1        (cl_khr_fp64)
Half-precision Floating-point support           (n/a)
Single-precision Floating-point support         (core)
Denormals                                     Yes
Infinity and NANs                             Yes
Round to nearest                              Yes
Round to zero                                 Yes
Round to infinity                             Yes
IEEE754-2008 fused multiply-add               Yes
Support is emulated in software               No
Correctly-rounded divide and sqrt operations  Yes
Double-precision Floating-point support         (cl_khr_fp64)
Denormals                                     Yes
Infinity and NANs                             Yes
Round to nearest                              Yes
Round to zero                                 Yes
Round to infinity                             Yes
IEEE754-2008 fused multiply-add               Yes
Support is emulated in software               No
Correctly-rounded divide and sqrt operations  No
Address bits                                    64, Little-Endian
Global memory size<PHONE_NUMBER> (1.952GiB)
Error Correction support                        No
Max memory allocation                           524075008 (499.8MiB)
Unified memory for Host and Device              No
Integrated memory (NV)                          No
Minimum alignment for any data type             128 bytes
Alignment of base address                       4096 bits (512 bytes)
Global Memory cache type                        Read/Write
Global Memory cache size                        32768
Global Memory cache line                        128 bytes
Image support                                   Yes
Max number of samplers per kernel             32
Max size for 1D images from buffer            134217728 pixels
Max 1D or 2D image array size                 2048 images
Max 2D image size                             16384x16384 pixels
Max 3D image size                             4096x4096x4096 pixels
Max number of read image args                 256
Max number of write image args                16
Local memory type                               Local
Local memory size                               49152 (48KiB)
Registers per block (NV)                        65536
Max constant buffer size                        65536 (64KiB)
Max number of constant args                     9
Max size of kernel argument                     4352 (4.25KiB)
Queue properties
Out-of-order execution                        Yes
Profiling                                     Yes
Prefer user sync for interop                    No
Profiling timer resolution                      1000ns
Execution capabilities
Run OpenCL kernels                            Yes
Run native kernels                            No
Kernel execution timeout (NV)                 Yes
Concurrent copy and kernel execution (NV)       Yes
Number of async copy engines                  1
printf() buffer size                            1048576 (1024KiB)
Built-in kernels
Device Available                                Yes
Compiler Available                              Yes
Linker Available                                Yes
Device Extensions                               cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts cl_khr_gl_event cl_nv_create_buffer
NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  No platform
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   No platform
clCreateContext(NULL, ...) [default]            No platform
clCreateContext(NULL, ...) [other]              <checkNullCtx:2241: create context with device from non-default platform : error 221>
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  No platform`

@huanzhang12 Please take a look at this.

There are some issues with OpenCL setup on this machine. clinfo also reports error 221.
Could you please try to use the latest nvidia-390 driver in this PPA?
https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa

I have tried installing nvidia-390. Now the example works again. Thanks for the hint.
By the way, the test above performs much better with CPU instead of GPU. It took 6 seconds to finish with GPU but only 0.6 seconds with GPU. Does anybody know why?


Update cartopy course name

It looks to me as if Cartopy in a Nutshell doesn't exist any more.  So the Iris course prerequisite should be A First Look at Cartopy.

@rcomer Nice one, thanks :+1:


Infrastructure to invoke a backtrace cleaner for failed jobs backtraces

Adds a button to allow invoking a backtrace_cleaner on the backtrace of a failed job.

Defaults to the standard Rails backtrace_cleaner
Can be overridden with a user supplied backtrace_cleaner via an initializer

@rosa Could I get this looked at and any feedback necessary to move it forward?
Hal

@hms yes! Sorry for the delay, I didn't have time last week to look at it but I had it in my plans. I'll try to review next week.

@rosa
Hopefully I didn't cross a complexity line with this update.  But I do believe I have addressed your valuable feedback and a little more.
@hms

@rosa Are there still outstanding issues that I haven't addressed?  I would love for this to get pushed so I can get back onto the mainline releases.

@hms sorry for the delay! All great now, sorry for the delay!


Handle execveZ failures in Command.zig

Bit of a rabbit hole came up while trying to package ghostty for nixos. zig build test would just hang when run as part of checkPhase in a nix build. (rather than the nix develop ... command run in CI).
Here's what I understand so far:
/usr/bin/env does not exist in a nix build sandbox. This only works as a test binary when running in nix develop as it shares its environment with the user where this compatibility crutch exists.
When executing Command.zig tests that reference /usr/bin/env the eventual call to fork+execevZ will duplicate the running test process as execevZ returns rather than dissapearing into the new exec'd process. Duplicating a test process via fork does unexepected things. zig build test will hang for <reasons?>. A test binary created via -Demit-test-exe will run two copies of the test suite producing two different failure outputs for the same test. (or ~4 copies of the test framework, one extra for each test that fails this way)
/bin/sh can be used and an alternative test target. It isn't amazing as it's relying on stdenv creating /bin/sh and it just existing on user systems. Other alternatives I can think of would require build flags or some sort of contract with packaging around what binary will exist for the Command.zig tests.
This is ~probably right, either way leave it until after release. I agree to re-license my commits as MIT.

I can't see how this fails in CI.

https://github.com/ghostty-org/ghostty/blob/7fd20cadb0364cdfc75a17ccb6b201f7f817e180/src/Command.zig#L705 sets cwd to /bin/
https://github.com/ghostty-org/ghostty/blob/7fd20cadb0364cdfc75a17ccb6b201f7f817e180/src/Command.zig#L703 prints pwd
https://github.com/ghostty-org/ghostty/blob/7fd20cadb0364cdfc75a17ccb6b201f7f817e180/src/Command.zig#L722 some how sees /usr/bin ?

Ci appears to be using the right commits, no stale grabs of commits. But the fork is now busted post public.

Github fork isn't updating and no longer sees this repo as a target. Reforking, reopening pr


Input5 included in input mask even though it is set as an output.

Title says it all. I have all I/O disabled except for input 0 as a digital input, and DIO5 as a Digital Output(low).   Pullup is set for all I/O pins. However Input5 comes back very often (but not always) in the input mask when I deassert DIO0. Interestingly, it isn't included when I release my button to let input 0 go high.

Ok, I should be able to look at it in the next few days.
—
If you want to build a ship, don't drum up people to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea.
Antoine de Saint-Exupery

From: PaulHeitkemper<EMAIL_ADDRESS>Sent: Friday, March 30, 2018 12:05:25 PM
To: jefffhaynes/XBee
Cc: Subscribed
Subject: [jefffhaynes/XBee] Input5 included in input mask even though it is set as an output. (#48)
Title says it all. I have all I/O disabled except for input 0 as a digital input, and DIO5 as a Digital Output(low). However Input5 comes back often (but not always) in the input mask when deassert DIO0. Pullup is set for all I/O pins.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/jefffhaynes/XBee/issues/48, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AJSKRxtaeL1xdPLHvvgzyhuP1VYxX1lMks5tjlfFgaJpZM4TB2n-.

Can you post your code and let me know what device you're using?  Thanks


[HOLD for payment 2024-11-22] [HOLD FOR #52007] [$250] Search - Total amount does not auto update after changing the expense currency

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.38-0
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause Internal Team
Action Performed:

Go to staging.new.expensify.com
Go to DM.
Submit two expenses.
Go to Search.
Go to Outstanding.
Click View next to the submitted expense.
Click Amount.
Change the currency and save it.
Dismiss the RHP.

Expected Result:
The total amount should auto update after changing the expense currency.
Actual Result:
The total amount does not auto update after changing the expense currency.
Workaround:
Unknown
Platforms:

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

Screenshots/Videos
https://github.com/user-attachments/assets/0c8b63a6-8158-406f-8fd9-43deeb74776c

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021845906959284211554
Upwork Job ID:<PHONE_NUMBER>284211554
Last Price Increase: 2024-10-29
Automatic offers:

situchan | Reviewer | 104685821
huult | Contributor | 104685823

Issue OwnerCurrent Issue Owner: @
Issue OwnerCurrent Issue Owner: @CortneyOfstad

We think that this bug might be related to #wave-control

@CortneyOfstad  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Proposal
Please re-state the problem that we are trying to solve in this issue.
Total amount does not auto update after changing the expense currency
What is the root cause of that problem?
We compute the total here
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/libs/SearchUtils.ts#L80
But this function (getTransactionItemCommonFormattedProperties) is only called if the route/query changes. When we change the currency the route/query doesn't change, and we still read the old total value.
What changes do you think we should make in order to solve the problem?
Instead of reading from the formattedTotal property, we can calculate the total based on the updated transaction list. Replace this line
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/components/SelectionList/Search/TransactionListItemRow.tsx#L159
with
const isExpenseReport = transactionItem.reportType === CONST.REPORT.TYPE.EXPENSE;
const total = TransactionUtils.getAmount(transactionItem, isExpenseReport);
let amount = CurrencyUtils.convertToDisplayString(total, currency);

And remove the formattedTotal from here
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/libs/SearchUtils.ts#L80

Proposal
Please re-state the problem that we are trying to solve in this issue.
Total amount does not auto update after changing the expense currency
What is the root cause of that problem?
We compute the total here
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/libs/SearchUtils.ts#L80
However, this function (getTransactionItemCommonFormattedProperties) is only called if the route/query changes. When we change the currency the route/query doesn't change, and we read the outdated total value.
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/components/Search/index.tsx#L96-L98
What changes do you think we should make in order to solve the problem?
Instead of reading from the formattedTotal property, we can calculate the total based on the updated transaction list.
Replace this line
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/components/SelectionList/Search/TransactionListItemRow.tsx#L159
with the following code
const isExpenseReport = transactionItem.reportType === CONST.REPORT.TYPE.EXPENSE;
const total = TransactionUtils.getAmount(transactionItem, isExpenseReport);
let amount = CurrencyUtils.convertToDisplayString(total, currency);

A similar approach is already for reports.
Additionally, we can remove the formattedTotal property from here
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/libs/SearchUtils.ts#L80

Proposal
Please re-state the problem that we are trying to solve in this issue.
Total amount does not auto update after changing the expense currency
What is the root cause of that problem?
We compute the total here
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/libs/SearchUtils.ts#L80
However, this function (getTransactionItemCommonFormattedProperties) is only called if the route/query changes. When we change the currency the route/query doesn't change, and we read the outdated total value.
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/components/Search/index.tsx#L96-L98
What changes do you think we should make in order to solve the problem?
Instead of reading from the formattedTotal property, we can calculate the total based on the updated transaction list.
Replace this line
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/components/SelectionList/Search/TransactionListItemRow.tsx#L159
with the following code
const isExpenseReport = transactionItem.reportType === CONST.REPORT.TYPE.EXPENSE;
const total = TransactionUtils.getAmount(transactionItem, isExpenseReport);
let amount = CurrencyUtils.convertToDisplayString(total, currency);

A similar approach is already implemented for reports.
Additionally, we can remove the formattedTotal property from here
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/libs/SearchUtils.ts#L80

Proposal
Please re-state the problem that we are trying to solve in this issue.
Total amount does not auto update after changing the expense currency
What is the root cause of that problem?
We compute the total here
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/libs/SearchUtils.ts#L80
However, this function (getTransactionItemCommonFormattedProperties) is only called if the route/query changes. When we change the currency the route/query doesn't change, and we read the outdated total value.
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/components/Search/index.tsx#L96-L98
What changes do you think we should make in order to solve the problem?
Instead of reading from the formattedTotal property, we can calculate the total based on the updated transaction list.
Replace this line
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/components/SelectionList/Search/TransactionListItemRow.tsx#L159
with the following code
const isExpenseReport = transactionItem.reportType === CONST.REPORT.TYPE.EXPENSE;
const total = TransactionUtils.getAmount(transactionItem, isExpenseReport);
let amount = CurrencyUtils.convertToDisplayString(total, currency);

A similar approach is already implemented for reports.
Finally, we can remove the formattedTotal property from here
https://github.com/Expensify/App/blob/25450d96aca5d30b0fef7bdbfc9379fa71e7cd74/src/libs/SearchUtils.ts#L80

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

Still waiting for this to be retested!

Not overdue as waiting for this to be retested!

This issue is still reproducible. To clarify as the title is a bit misleading - the total amount does update, but not to the correct value. It should be around 1500 but it's showing as 1212. Refreshing the page displays the correct amount.

Thanks @CyberAndrii!

However, this function (getTransactionItemCommonFormattedProperties) is only called if the route/query changes. When we change the currency the route/query doesn't change, and we read the outdated total value.

@CyberAndrii thanks for the proposal. Why can't we call this function whenever currency changes?

Waiting more proposals

Proposal
Please re-state the problem that we are trying to solve in this issue.
Total amount does not auto update after changing the expense
What is the root cause of that problem?
The currency of the total amount is taken from the iouReport data for calculation and display. The currency is set when creating the first RequestMoney expense, and this currency will be retrieved from the iouReport whenever it is used.
https://github.com/Expensify/App/blob/a512dd01a2fcc70e4e905097e9c42e8e4e360ffe/src/components/SelectionList/Search/ReportListItem.tsx#L47
When the currency of any expense is changed, the currency in the iouReport does not update and retains the initially set value, causing this issue to occur.
What changes do you think we should make in order to solve the problem?
To resolve this issue, we need to update the currency in the iouReport when UpdateMoneyRequestAmountAndCurrency is called for any expense. Some thing like this:
//.src/libs/actions/IOU.ts#L2635
    onyxMethod: Onyx.METHOD.MERGE,
    key: `${ONYXKEYS.COLLECTION.REPORT}${iouReport?.reportID}`,
-    value: updatedMoneyRequestReport,
+    value: {...updatedMoneyRequestReport, currency: transactionChanges?.currency},

//.src/libs/actions/IOU.ts#L2662
onyxMethod: Onyx.METHOD.MERGE,
        key: `${ONYXKEYS.COLLECTION.REPORT}${transactionThreadReportID}`,
        value: {
            lastActorAccountID: updatedReportAction.actorAccountID,
+           currency: transactionChanges?.currency,
        },

//.src/libs/TransactionUtils/index.ts#L259
+ updatedTransaction.currency = transactionChanges.currency ?? '';

and We also need backend support to modify the UpdateMoneyRequestAmountAndCurrency API to allow it to update the new currency value. Currently, we send the new currency value, but the UpdateMoneyRequestAmountAndCurrency API still does not update it.
We can test it following this change by updating the new currency in successData.
//.src/libs/actions/IOU.ts#L2748
successData.push(
        {
            onyxMethod: Onyx.METHOD.MERGE,
            key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`,
            ...
        },
+        {
+            onyxMethod: Onyx.METHOD.MERGE,
+            key: `${ONYXKEYS.COLLECTION.REPORT}${iouReport?.reportID}`,
+            value: {...updatedMoneyRequestReport, currency: transactionChanges?.currency},
+        },
    );

https://github.com/user-attachments/assets/dc398edf-2476-4d7f-81ef-a92fd901c130

reviewing

@huult I think you got confused. This happens on Search page but your demo video is on Inbox tab.

@situchan , I apologize for sending the video with the wrong case, but they have the same RCA. Here is a video related to this ticket after my update:

https://github.com/user-attachments/assets/cdca9d42-94c6-42cf-b2a2-a6af07b59cb8

@huult this only happens on Search page. No issue on Inbox

@situchan I apologize for misunderstanding this ticket. As a result, my proposal was incorrect. I will update the proposal shortly

@situchan I have identified the root cause and solutions to resolve this issue. I will post my proposal soon.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Total amount does not auto update after changing the expense currency
What is the root cause of that problem?
This issue occurred because the report data in the snapshot was not updated, so the total did not change after the currency was changed.
When we called UpdateMoneyRequestAmountAndCurrency to update the currency, the response from this API did not include the snapshot data, so the snapshot was not updated after completing UpdateMoneyRequestAmountAndCurrency, meaning the report was not updated either.
The total displayed is taken from the report in the snapshot. Since the data was not updated, the total still shows the old value after the currency update, and this issue occurs.
I shared video to describe it:

https://github.com/user-attachments/assets/49e56355-8628-409c-b3ec-834fb6fde519

What changes do you think we should make in order to solve the problem?
To resolve this issue, we need to update the report data in the snapshot after completing the UpdateMoneyRequestAmountAndCurrency call, so the report stays up to date and the total has the new data.
To update the snapshot data, we need to send key: ${ONYXKEYS.COLLECTION.SNAPSHOT}${searchHash}to optimisticDatawhen callingUpdateMoneyRequestAmountAndCurrency`. Something like this:
//.src/pages/iou/request/step/IOURequestStepAmount.tsx#L94
+   const {currentSearchHash} = useSearchContext();

//.src/pages/iou/request/step/IOURequestStepAmount.tsx#L302
-   IOU.updateMoneyRequestAmountAndCurrency({transactionID, transactionThreadReportID: reportID, currency, amount: newAmount, taxAmount, policy, taxCode});
+   IOU.updateMoneyRequestAmountAndCurrency({transactionID, transactionThreadReportID: reportID, currency, amount: newAmount, taxAmount, policy, taxCode, searchHash: currentSearchHash});

//.src/libs/actions/IOU.ts#L5600
    updateMoneyRequestAmountAndCurrencyfunction updateMoneyRequestAmountAndCurrency({
        ...
+        searchHash,
    }: UpdateMoneyRequestAmountAndCurrencyParams)

//.src/libs/actions/IOU.ts#L2489
    function getUpdateMoneyRequestParams(
        ...
+        searchHash?: number,
    ): UpdateMoneyRequestData

//.src/libs/actions/IOU.ts#L2755
+       if (searchHash) {
+        optimisticData.push({
+            onyxMethod: Onyx.METHOD.MERGE,
+            key: `${ONYXKEYS.COLLECTION.SNAPSHOT}${searchHash}`,
+            value: {
+                data: {
+                    [`${ONYXKEYS.COLLECTION.REPORT}${iouReport?.reportID}`]: {
+                        total: updatedMoneyRequestReport?.total,
+                    },
+                },
+            } as Record<string, Record<string, Partial<SearchTransaction>>>,
+        });
+    }

We also need a backend update so that when we call UpdateMoneyRequestAmountAndCurrency, the response includes the SNAPSHOT data that we set in optimisticData above, which will be returned and saved to Onyx. Example JSON for SNAPSHOT return by UpdateMoneyRequestAmountAndCurrency:
    "onyxData": [
        ...
        {
            "key": "snapshot_1625683534",
            "onyxMethod": "merge",
            "value": {
                "data": {
                    "report_2214395191920326": {
                        "accountID": 18546728,
                        "action": "view",
                        "created": "2024-10-23 00:17:54",
                        "currency": "VND",
                        "managerID": 18546728,
                        "policyID": "CB227C46EFE47A5F",
                        "reportID": "2214395191920326",
                        "reportName": "Expense Report #2214395191920326",
                        "total": -800,
                        "type": "expense"
                    },
                },

            }
        }
        ...
    ],

Once the API response includes the SNAPSHOT data, it will be updated in Onyx, and this issue will be resolved.
What alternative solutions did you explore? (Optional)
If we don't want to update the backend, we can still update the SNAPSHOT locally. When we receive the response from UpdateMoneyRequestAmountAndCurrency, we extract the report data from the response and update the report in the SNAPSHOT.

I think this requires backend change. 🎀👀🎀
cc: @luacmartins since this is related to search

That's correct. We need a backend change to update the snapshot data. If they request the searchHash, we need to ensure it is included in the request, as mentioned in my proposal.

Thanks @situchan and @huult for the information!
@marcochavezf — does that all look correct/achievable for the BE?

Yeah, it requires a BE change to update the snapshot, changing to Internal

Not overdue. @luacmartins feel free to take it since you have more context than me about this one 😄

We shouldn't be updating the snapshot directly in this case (both when it comes to optimistic and API return data). Onyx automatically applies updates to the snapshot data if it's present in the local Onyx db. Does the response from UpdateMoneyRequestAmountAndCurrency include an update to the report total?

@luacmartins

Does the response from UpdateMoneyRequestAmountAndCurrency include an update to the report total?
The response from UpdateMoneyRequestAmountAndCurrency includes the report total in the report_ data, but the snapshot_ does not. In this case, we need the backend response to include the snapshot_ data with the updated report total like json example I included in my proposal

That shouldn't be necessary. Onyx should automatically apply any changes with a matching snapshot_ key. See this code in Onyx - https://github.com/Expensify/react-native-onyx/blob/36ff87b26a2751d0818462cceba8edacf9d3f923/lib/Onyx.ts#L541-L584

Proposal updated

Update RCA
Update solutions
Update new POC

@luacmartins Thank you for this information. Thanks to that, I found the RCA and the solution to fix this issue. If this ticket is still open for proposals, could you please take a look at it?

Not overdue, waiting for review or more proposals

@huult I don't think your new solution is correct. I don't get how that change in Onyx fixes the root cause and it will easily cause regressions.

@situchan After calling UpdateMoneyRequestAmountAndCurrency, we have two report_ data entries: item 4, which contains the value from the request response, and item 10, which contains the value we updated with pendingActions: null for the report_ data.

After that, we will loop through the data in react-native-onyx to update report_ in the snapshot_. According to the logic, we loop through each item in the data, and if it meets all the conditions, we update the value in updatedData.
https://github.com/Expensify/react-native-onyx/blob/36ff87b26a2751d0818462cceba8edacf9d3f923/lib/Onyx.ts#L558-L574
In this ticket, the data contains two items (report_), and updatedData will be assigned twice. The first time, report_ will be updated with the new data from the request response and assigned to updatedData. The second time, report_ is assigned an empty object because the value is pendingActions: null, and there is no value to pick under that condition.

So, the final updatedData will have report_ as an empty object {}, and the report_ in the snapshot will not be updated. As a result, the total amount will not be changed.
https://github.com/Expensify/react-native-onyx/blob/36ff87b26a2751d0818462cceba8edacf9d3f923/lib/Onyx.ts#L581
To resolve this issue, I think we have two possible approaches:

We need to remove the update of pendingActions: null from the list data queue that includes the response of the request. This way, the new value in the response can be updated to the snapshot_ after updating pendingActions: null. I think this approach is possible, but it requires significant changes.

We need to update to check if lodashPick(value, Object.keys(snapshotData[key])) returns an empty object and assign it to a key that has existing data. I think we should skip this and not assign an empty object to a key that has existing data because I believe we won't have a case where new data is updated after being set to an empty object. If the key is assigned an empty object, then the data in the snapshot will not be updated.

We need to update the condition to prevent assigning an empty object to a key that has existing new data. If updatedData[key] contains data and newValue is empty, we should skip assigning this value to updatedData
//.lib/Onyx.ts#L273
-      updatedData = {...updatedData, [key]: lodashPick(value, Object.keys(snapshotData[key]))};
+      const newValue = lodashPick(value, Object.keys(snapshotData[key]))
+      if (updatedData[key] && !utils.isEmptyObject(updatedData[key]) && utils.isEmptyObject(newValue)) {
+          return
+      }

+      updatedData = {...updatedData, [key]: newValue};

Code example change in node_modules to test:
//.App/node_modules/react-native-onyx/dist/Onyx.js#L483
    data.forEach(({ key, value }) => {
            // snapshots are normal keys so we want to skip update if they are written to Onyx
            if (OnyxUtils_1.default.isCollectionMemberKey(snapshotCollectionKey, key, snapshotCollectionKeyLength)) {
                return;
            }
            if (typeof snapshotValue !== 'object' || !('data' in snapshotValue)) {
                return;
            }
            const snapshotData = snapshotValue.data;
            if (!snapshotData || !snapshotData[key]) {
                return;
            }

+           if (updatedData[key] && Object.keys(updatedData[key]).length && !Object.keys((0, pick_1.default)(value, Object.keys(snapshotData[key]))).length) {
+                return;
+            }
            updatedData = Object.assign(Object.assign({}, updatedData), { [key]: (0, pick_1.default)(value, Object.keys(snapshotData[key])) });
        });

Proposal updated

Update the main solution: Change the condition to check if updatedData[key] has an existing value and the new value is an empty object, then skip assigning it.

This bug only happens when change currency.
Still interesting why this doesn't happen when change amount in USD. Still happens when change amount in another currency.
So report in snapshot is updated correctly in USD but not in another currency.
@huult I think we should find this root cause.

@situchan

This bug only happens when change currency.

I saw this bug happen when we call UpdateMoneyRequestAmountAndCurrency with both currency and amount.

Still interesting why this doesn't happen when change amount in USD.

This issue still happens in USD. You can see that the total change reflects the previous iouReport?.total, not the updated iouReport?.total from the request response.

Still happens when change amount in another currency.

This issue happens with all currencies. The total does not change when updating the amount in a currency other than USD. This is because when you change the amount, the response update is delayed compared to USD. If you wait for the response before changing, the behavior will be the same as with USD.
https://github.com/Expensify/App/blob/224b633c284fd32e928684010084c587627d5e9a/src/libs/actions/IOU.ts#L2627-L2630

So report in snapshot is updated correctly in USD

This is still updated incorrectly because it is being updated by the previous iouReport?.total. I mention this because, before sending the request, we have a prepareRequest step where we update only optimisticData to Onyx and then to the snapshot, so you can see the total change with the previous iouReport?.total.
https://github.com/Expensify/App/blob/72163109c2fbc82d16f444d52b7e2a25f32bed43/src/libs/API/index.ts#L58-L61

@huult I think we should find this root cause.

Therefore, you can see the total amount change, which comes from the prepareRequest step, with this updated to optimisticData in Onyx. However, the report in the snapshot is still not updated with the data from the request, as I mentioned in the proposal. To update the report in the snapshot correctly, we need to apply the update I suggested.

The video I mentioned describes that
https://github.com/user-attachments/assets/847cf2c1-96da-43db-820c-b495f5496515

@huult thanks. Can we also think of an alternative solution? So instead of fully overwriting, only update picked field values?
const oldValue = updatedData[key] || {}
const newValue = lodashPick(value, Object.keys(snapshotData[key]))

updatedData = {...updatedData, [key]: Object.assign(oldValue, newValue)};

We can assign @huult for providing the correct root cause and proper solution. The root cause is in Onyx.
Proposal: https://github.com/Expensify/App/issues/49493#issuecomment-2430602455
I also suggested alternative.
🎀👀🎀 C+ reviewed

Thanks for the review @situchan, assigning @huult 🚀

Thank you all. I will create the PR within 24 hours

@situchan @marcochavezf
I created a pull request. Can you check it? I saw my pull request was auto-assigned to @rlinoz. Thanks!

PR merged, not overdue

Should we hold this for https://github.com/Expensify/App/pull/51942 or bump version to v2.0.79 in that PR?

I've created a pull request to bump the Onyx version to 2.0.79.

Payment is not due until next week, but in the meantime @situchan — can you confirm if this needs a regression test? Thanks!

Payment Summary
@situchan — paid $250 via Upwork
@huult — paid $250 via Upwork

Whoops! Forgot about the checklist! @situchan please complete the checklist below. Thank you!
BugZero Checklist:

[ ] [Contributor] Classify the bug:

Bug classification

Source of bug:

[ ] 1a. Result of the original design (eg. a case wasn't considered)
[ ] 1b. Mistake during implementation
[ ] 1c. Backend bug
[ ] 1z. Other:

Where bug was reported:

[ ] 2a. Reported on production
[ ] 2b. Reported on staging (deploy blocker)
[ ] 2c. Reported on both staging and production
[ ] 2d. Reported on a PR
[ ] 2z. Other:

Who reported the bug:

[ ] 3a. Expensify user
[ ] 3b. Expensify employee
[ ] 3c. Contributor
[ ] 3d. QA
[ ] 3z. Other:

[ ] [Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment:

[ ] [Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion:

[ ] [Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.

Regression Test Proposal Template

[ ] [BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.
Link to issue:

Regression Test Proposal
Precondition:

Test:

Do we agree 👍 or 👎

Issue not reproducible during KI retests. (First week)

The issue was fixed already, it's only open to process the checklist

Issue not reproducible during KI retests. (Second week)

Friendly bump @situchan per https://github.com/Expensify/App/issues/49493#issuecomment-2494766643

@situchan bump please

@situchan — please complete this ASAP.

Did some digging and found that @situchan is on parental leave.
@marcochavezf do you think this needs a regression test?

Closing this as a regression test doesn't seem to be required.


DiskRP swagger 2021-12-01

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[x] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
If updating an existing version, please select the specific langauge SDKs and CLIs that must be refreshed after the swagger is published.

[x] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[x] PowerShell
[x] CLI
[ ] Terraform
[ ] No refresh required for updates in this PR

Contribution checklist:

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[x] Check this box if any of the following apply to the PR so that label "WaitForARMFeedback" will be added automatically to begin ARM API Review. Failure to comply may result in delays to the manifest.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you are using OpenAPIHub to initialize the PR for adding a new version. More details, refer to the wiki.

[x] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in a stable version
[ ] Removing properties in a stable version
[ ] Removing API version(s) in a stable version
[ ] Updating API in a stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

@ArcturusZhang can you help with the Track2 SDK generation failures and breaking change checks?

/azp run

Hi @rytruong I was informed that this PR is under some internal communications therefore the merge need to be hold for a few time - I added a "DoNotMerge" label on this PR. Please feel free to ping me when this is ready to merge

@ArcturusZhang  this is ready for merge

last commit is syncing with change that went into 2021-08-01 version few days ago https://github.com/Azure/azure-rest-api-specs/pull/17633

Well. the x-ms-identifiers is causing some issues for the track 1 generation. I am fixing it in this PR and merge that first.


Pass argv.mode to webpack.config.js function.

With Webpack 4 the configuration as a function can receive a second argument argv, which for all intents and purposes is just a way of finding out what --mode you're in:
https://webpack.js.org/configuration/configuration-types
This PR adds that functionality. I do not expect there would be any compatibility issues as previously the second argument was just undefined.

Codecov Report

Merging #225 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@           Coverage Diff            @@
##           master   #225      +/-   ##
========================================
+ Coverage      97%    97%   +<.01%
========================================
  Files          28     28
  Lines         767    768       +1
========================================
+ Hits          744    745       +1
  Misses         23     23

Impacted Files
Coverage Δ

src/cli/requireWebpackConfig.js
98.38% <100%> (+0.02%)
:arrow_up:

Continue to review full report at Codecov.

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

Webpack passes all args to config function. Maybe we should do the same?

I had shied away from doing that because within that function I don't think I have access to a map of all the cli options that mocha-webpack is using without doing some parsing of process.argv myself?
I also found it harder to define what the map of argv would look like in this case, because most of the cli arguments that mocha-webpack takes are actually for mocha.
Suggestions welcomed :)

Hi @SamStonehouse - mocha-webpack already does accept mode as an argument: https://github.com/zinserjan/mocha-webpack/blob/master/src/cli/parseArgv.js#L175
What this fixes is that the mode passed in is not forwarded into an config functions, so you effectively cannot use it as webpack intended.

@zinserjan - would you consider "Webpack passes all args to config function. Maybe we should do the same?" as a separate issue and PR when someone has a use case to define how/what they'd expect to get?
Only without this functionality the webpack mode function is effectively broken for custom configurations.

For what it's worth, I'm closing this as I'm not longer using mocha-webpack and don't have the time to maintain the PR.


[SMP] Update lading version to 0.20.6

This commit updates the lading version to 0.20.6 which improves how memory telemetry is collected compared to .4. No user-facing changes are intended.

/merge

/merge -c

/merge

/merge


feat(multipart-stream): use types instead of runtime elements check

I propose to use types instead of throwing exceptions. When lib consumers respect types, those exceptions are never thrown.

Thanks for the PR, but I even if we add those type annotations, we'd still want to properly enforce the types. I plan to re-work some of this in the next major version.

BTW what can I imagine under

to properly enforce the types

We will throw ValuyeError someone passes something that makes it through the native type check but would fail the type in the phpdoc. This is similar to how many PHP internal functions work since PHP 8, such as passing a negative integer to a function that requires positive integers.

Right, but the majority of people who use Guzzle don't know what static analyzers are and need the hand holding of things failing at runtime. I don't want to compromise on these principals of Guzzle being beginner friendly and supporting a wide range of PHP versions.


Config io_uring to use sq polling (instead of interrupts)

TODO: If ring.completion().empty() and n_tasks_in_flight == CQ_RING_SIZE-1, then I think we have to ring.submit_and_wait()? See line 79 in io_uring_local.rs

It looks like we get a ~15% performance increase using SQ polling :slightly_smiling_face:


check the content of the msg in each encoding type

With this PR the tests for each Kinesis version asserts that the content is equal in CBOR and JSON.
It should pass after this PR for localstack has been merged

Looks great, thanks @pinzon 👍 (still waiting for the build to succeed..)

Looks great, thanks @pinzon 👍 (still waiting for the build to succeed..)

Hi @whummer The failing test is the one that expects the PR for cbor encoding in localstack

[ERROR] Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 36.834 s <<< FAILURE! - in cloud.localstack.KinesisConsumerTest

[ERROR] testGetRecordCBOR(cloud.localstack.KinesisConsumerTest)  Time elapsed: 2.27 s  <<< FAILURE!

org.junit.ComparisonFailure:

expected:<[Hello world!]> but was:<[SGVsbG8gd29ybGQh

]>

	at cloud.localstack.KinesisConsumerTest.testGetRecordCBOR(KinesisConsumerTest.java:62)```

Hi @whummer The failing test is the one that expects the PR for cbor encoding in localstack

[ERROR] Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 36.834 s <<< FAILURE! - in cloud.localstack.KinesisConsumerTest

[ERROR] testGetRecordCBOR(cloud.localstack.KinesisConsumerTest)  Time elapsed: 2.27 s  <<< FAILURE!

org.junit.ComparisonFailure:

expected:<[Hello world!]> but was:<[SGVsbG8gd29ybGQh

]>

	at cloud.localstack.KinesisConsumerTest.testGetRecordCBOR(KinesisConsumerTest.java:62)```


Crud refactor demo

@MostafaTech @pournasserian
I think This is a good implementation for Our Crud Operations

@ParsaGachkar please check this branch. If not required, delete the branch and PR.


Dev command can be improved

tsnd --respawn --transpile-only index.ts(ts-node-dev) is usually faster than using tsc with nodemon.

@mathix420 This Doesn't seem to the case for me.

thanks bro, I will try this since running typescript, is usually slow on my pc🥲


Add iron loss by scavenging and particulate remineralization according to profile (e.g. Martin Curve).

Purpose
Adding some fundamental processes to our simple ocean carbon cycle model:

Iron is complexed by organic ligands according to an equilibrium reaction (e.g. Parekh et al., 2005; 2006)
Sinking organic particles are remineralized according to a prescribed profile shape, such as a power law or exponential (e.g. Cael & Bisson, 2018; Lauderdale & Cael, 2021)

To-do

[ ] introduce a simpler 2-D example
[ ] check it runs correctly/efficiently

Do we want to keep adding baroclinic_adjustment_with_*, or should we just have one example that runs more than one case? Eventually we will want to build examples along with documentation, at that point each example will be somewhat expensive (they are also expensive to maintain)

Let me know when you'd like me to read the code carefully!

Do we want to keep adding baroclinic_adjustment_with_*, or should we just have one example that runs more than one case? Eventually we will want to build examples along with documentation, at that point each example will be somewhat expensive (they are also expensive to maintain)

Fair enough, that was just the example I was working with (#18 ) so I carried on.

Do we want to keep adding baroclinic_adjustment_with_*, or should we just have one example that runs more than one case? Eventually we will want to build examples along with documentation, at that point each example will be somewhat expensive (they are also expensive to maintain)

Fair enough, that was just the example I was working with (#18 ) so I carried on.

Feel free to reject my idea!

I'm thinking "ocean_wind_mixing_and_convection" might be good eventually since it has T and S for carbonate chemistry calculations and winds for CO2 fluxes!

Also there is more value added if we come up with new physics rather than simply replicating something already in Oceananigans. I can help.

I think we (@seamanticscience, @glwagner, and @emilyzakem) decided that it's not going to be super valuable to implement prescribed profile-dependent remineralization right now: the code is really slow, and there is a robust alternative using biogeochemical_drift_velocity. However I don't want to lose any progress, or preclude revisiting this at a later date, so I'm converting this to a draft. I split out the iron chemistry to a new P/R #23.


Correcting typo (TransportLater actually sounds nice!)

Don't forget to run rustfmt

Also, could you please remove the pure udp transport stuff, it is not planned anymore and unneeded


Unable to configure custom ports with extraCaddyfile

I'm trying to use this project with non-standard ports (other than 80/443).  I attempted to configure the extraCaddyfile in configuration.mjs to change the Caddy ports to 20080 and 20443 like so:
{
        http_port 20080
        https_port 20443
}

However, this has no effect. The reason appears to be in caddy/source/index.mts: the extraCaddyfile is appended after the application() function's output in caddy/source/index.mts:
https://github.com/radically-straightforward/radically-straightforward/blob/4415658176c29558a27b1b7c7dc452dcb8f28a5a/caddy/source/index.mts#L25-L27
To configure global settings like http_port and https_port, these need to be at the beginning of the Caddyfile.  Currently, this results in the following Caddy error:
Error: server block without any key is global configuration, and if used, it must be first

Since the application() function already generates a global configuration block in the Caddyfile, simply appending these configurations will cause the generated one not be the first, causing the same Caddy error.
Proposed Solutions:
Two potential solutions are proposed to allow for custom port configuration:

caddyGlobalConfig option: Introduce a new caddyGlobalConfig option to the start() function. This would allow users to define a Caddyfile snippet containing global settings (including http_port and https_port), which would be prepended to the generated Caddyfile.

Explicit port options: Add httpPort and httpsPort options to the application() function's parameters. The function would then incorporate these values directly into the generated global configuration block.

Additional Issue: Caddy Output Logging
Caddy's error messages and other output are not currently logged by the application. This significantly hinders debugging efforts. I can't edit the log settings because it's also in the global configuration!
Integrating Caddy's output into the application's logs would be highly beneficial!

Hi @Ovler-Young,
Thanks for the report.
I added the parameter extraGlobalOptions to<EMAIL_ADDRESS>which amounts to the caddyGlobalConfig that you proposed. I think that this is better than explicit port options like httpPort and httpsPort because it’s more flexible.
In any case, I’m curious: Why do you need to set HTTP ports other than the default?
As for the logging, I agree with you that silencing Caddy logs complicates debugging sometimes. But then again, I found Caddy logs to be noisy and after playing around with the configuration I couldn’t get them to a satisfying amount of information.
Do you know anything about that?
As a workaround, sometimes I reenable logs by editing this line to read inherit instead of ignore.
Admittedly, that’s janky 💩
I thought about adding a parameter for this, but perhaps a more principled solution is due. Do you have any ideas?
Thanks.

Actually, I'm deploying Kill the Newsletter, and since I have already set up my server with another instance of Caddy, I need to configure it to use non-standard ports. This is similar to the situation described in this issue.
However, the configuration file format has changed since version 2.0, so it took some extensive searching to pinpoint the real issue.
Regarding the logging, unfortunately, I don't have any ideas at the moment.
Thanks for your assistance!


API Schema for deletion / recovery endpoints

This PR adds the API schema for new endpoints related to deletion and recovery.


Confusion on interrupt-related descriptions of privilige spec

In the 3.1.9 section of riscv-privileged spec(mie and mip):

An interrupt i will be taken if bit i is set in both mip and mie, and if interrupts are globally enabled.By default, M-mode interrupts are
globally enabled if the hart’s current privilege mode is less than M, or if the current privilege mode is M and the MIE bit in the mstatus register is set. If bit i in mideleg is set, however, interrupts are considered to be globally enabled if the hart’s current privilege mode equals the delegated privilege mode (S or U) and that mode’s interrupt enable bit (SIE or UIE in mstatus) is set, or if the current privilege mode is less than the delegated privilege mode.

I have confusion on the specific definition of so-called M-mode interrupts , does this mean interrupts like MEIP, MSIP, MTIP? Or, this  M-mode interrupts just mean all the interrupts that is not delegated to lower  privilege levels?
In <IP_ADDRESS>: Privilege and Global Interrupt-Enable Stack in mstatus register

When a hart is executing in privilege mode x, interrupts are globally enabled when x IE=1 and
globally disabled when x IE=0. Interrupts for lower-privilege modes, w<x, are always globally
disabled regardless of the setting of the lower-privilege mode’s global w IE bit. Interrupts for
higher-privilege modes, y>x, are always globally enabled regardless of the setting of the higherprivilege
mode’s global y IE bit. Higher-privilege-level code can use separate per-interrupt enable
bits to disable selected higher-privilege-mode interrupts before ceding control to a lower-privilege
mode.

The description above also confuses me a lot, does Interrupts for lower-privilege modes just means SEIP, SSIP, STIP(in terms of S-MODE), Or, it just means Interrupts  that is delegated to lower  privilege levels?
Also, In 3.1.8 Machine Trap Delegation Registers (medeleg and mideleg):

Delegated interrupts result in the interrupt being masked at the delegator privilege level. For
example, if the supervisor timer interrupt (STI) is delegated to S-mode by setting mideleg[5], STIs
will not be taken when executing in M-mode. By contrast, if mideleg[5] is clear, STIs can be taken
in any mode and regardless of current mode will transfer control to M-mode.

From description at 3.1.8, I can infer that the  M-mode interrupts in 3.1.9  just means all the interrupts that is not delegated to lower  privilege levels?  And  Interrupts for lower-privilege modes  at <IP_ADDRESS> means Interrupts  that is delegated to lower  privilege levels.  But I am not confident this is true.
Can anyone shed some light into this? For example, if an SSIP is not delegeated to S-mode, will this interrupt be taken in M-mode？
Thanks!

From description at 3.1.8, I can infer that the M-mode interrupts in 3.1.9 just means all the interrupts that is not delegated to lower privilege levels? And Interrupts for lower-privilege modes at <IP_ADDRESS> means Interrupts that is delegated to lower privilege levels.

Yes.

From description at 3.1.8, I can infer that the M-mode interrupts in 3.1.9 just means all the interrupts that is not delegated to lower privilege levels? And Interrupts for lower-privilege modes at <IP_ADDRESS> means Interrupts that is delegated to lower privilege levels.

Yes.

Thanks for your replay. :)


Bump pod spec to use bounds checking.

TODO: We should automate pod spec -> Change notes -> Release tag.

@dalemyers so how does a merge work here?


Issue with running  structr-deploy-actionv1

Hi, we can't run action anymore it is during creating of v1_structr_1. Have there been any changes?
Here is the log:
`39s
Run structr/structr-deploy-action@v1
Run echo "Running Structr:4.2.3 with Neo4j:4.4 and deploying from /home/runner/work/sta-backend-structr/sta-backend-structr/webapp"
Running Structr:4.2.3 with Neo4j:4.4 and deploying from /home/runner/work/sta-backend-structr/sta-backend-structr/webapp
Run cd /home/runner/work/_actions/structr/structr-deploy-action/v1 && ./setup_environment.sh /home/runner/work/_actions/structr/structr-deploy-action/v1 && docker-compose up -d
Replacing variables for Structr and Neo4j docker configuration
Creating network "v1_database" with the default driver
Pulling neo4j (neo4j:4.4)...
4.4: Pulling from library/neo4j
Digest: sha256:5fd30c52a8c347334641ea62954a420104b40253535a8018ec3cc91fb0713c9b
Status: Downloaded newer image for neo4j:4.4
Pulling structr (structr/structr:4.2.3)...
4.2.3: Pulling from structr/structr
Digest: sha256:c2a283d6eb1a23d70ea4748058a62b297e9a8eb9890163435fc753579f341e1e
Status: Downloaded newer image for structr/structr:4.2.3
Creating v1_neo4j_1 ...
Creating v1_neo4j_1 ... done
Creating v1_structr_1 ...
Creating v1_structr_1 ... error
ERROR: for v1_structr_1  Cannot create container for service structr: create .: volume name is too short, names should be at least two alphanumeric characters
ERROR: for structr  Cannot create container for service structr: create .: volume name is too short, names should be at least two alphanumeric characters
Encountered errors while bringing up the project.
Error: Process completed with exit code 1.`
Thank you in advance,
Vanja

@vbejatovic-pdy There was an error in a recent change that was made to the action. The Issue should be fixed.

@derkaiserreich,
Thank you very much, I can confirm that it's working now.


Bump platform-plugin-aspects to v0.9.6

This contains the bug fix to block sort ordering.

0.9.6 has a critical bug, this will need to go directly to 0.9.7


actool: build should support --signature

As an image developer
When I create a new image
I would like to generate and see the image signature as part of the build output
actool build [--signature [sha256|?]] <source dir> <image filename>

This would both build the image and then generate and print the indicated signature to STDOUT

+1, although this is really the "hash" or "imageID" - to avoid confusion, we should use "signature" consistently to only refer to actual gpg signatures of images (I am pretty sure this is clear in the spec, if not please let us know)

(for posterity - I updated the OP to change the language to image hash/ID instead of signature)

+1 on the name change


limit_* Config Options Don't Work in Laravel 5

It seems that the following configuration options don't work in Laravel 5.
limit_clients_to_grants
limit_clients_to_scopes
limit_scopes_to_grants
I believe FluentStorageServiceProvider should not be including the "oauth2-server-laravel" namespace when searching the config for the options.
Example
LIne 67:  $limitClientsToGrants = $app['config']->get('oauth2-server-laravel::oauth2.limit_clients_to_grants');
should be
$limitClientsToGrants = $app['config']->get('oauth2.limit_clients_to_grants');

You're absolutely right, pushed a fix for this.

Luca! Thank you very much! This package is great and I appreciate you speedy response!


Channel payments contract

We forked the channels contract here: https://github.com/althea-mesh/simple-bidirectional-erc20-channel
After getting it to work https://github.com/althea-mesh/simple-bidirectional-erc20-channel/issues/2 it should be integrated into the tests, with ganache.
Otherwise, we should mock out whole contract calls, and write the tests for the contract in the contract repo.

Its already agreed that we'll be fine testing the contract with Rust which will also verify that we know how construct function calls, and how to wait for events etc. So I'll close this one in favor of #21


Begin draft tutorial text on transformers

This isn't complete, this is more of a placeholder.

No comment on my transformers puns? :-)
Thanks!

You found it! It's an old kids' show, but they released yet another movie this year (2023) in the franchise.

Good to know! I even found that movie https://www.imdb.com/title/tt5090568/ :)


Process not running - ubloxd

Describe the bug
Driving normally while engaged. Device disengaged with Process not running - ubloxd.
On reboot no issues.
Provide a route where the issue occurs
35c004509e3057f2|2023-03-14--16-23-52--0
openpilot version
release
Additional info
No response

This is due to corrupt data being read in from the satellites and not being handled correctly.
Was fixed in master.
https://github.com/commaai/openpilot/commit/ce900f34d08b423e9f3ebed0d028692bb9198dea


add raw binary support to HV scripts

Hello!
Had to repost because the last pull request had issues, also cleaned up some code
As part of my efforts to boot Windows on Apple silicon Macs successfully, part of that meant adding raw binary support to the hypervisor scripts (This is to allow raw binary UEFI images to be executed directly using the run_guest.py script instead of being forced to wrap them in Mach-O headers or concatenate them to a Mach-O wrapped m1n1 payload, allowing for quicker build and test cycles)
I wanted to contribute this change back to mainline m1n1 as I feel that it'd be a really nice to have addition to the hypervisor so that everyone can benefit from being able to directly load raw binaries using the run_guest script.
Most of the code from the load_macho logic ended up working perfectly for the load_raw logic, albeit with some minor changes to account for lack of a Mach-O header and whatnot, so this was a fairly minor change albeit one that I felt would be really beneficial both in my work and in the community's hopefully. I did move out all the common code between Mach-O and raw binary code into a load_common method and have both load_macho and load_raw call that, this ended up working perfectly and helped reduce redundant code
Tested on an m1n1 payload, both raw and Mach-O wrapped, as well as a macOS kernelcache.
This is my first "official" contribution to the project, hopefully it helps the project!
Signed-off-by: amarioguy<EMAIL_ADDRESS>

Alright, I've pushed a very slight refactor of the code, so that it meets the style/readability guidelines, and yes, load_common is now load_raw with an extra parameter for the entry point offset (for clarity: entryoffset is named as such to help distinguish between it and self.entry in the actual method)

Thanks!


Can't really say hello everione when everione didn't see this repo (yet)

0/10, wouldn't play again

skill issue from player


UTF-8 encoding in CHM for en-us languages

Possible fix for:
https://github.com/dita-ot/dita-ot/issues/2020

It seems I managed to somehow commit 3 fixes for three different issues on the same pull request. Probably there should have been 3 individual push requests.
Also the first commit makes a test fail because it was expecting an ISO encoding for a certain output CHM HTML file.
So I'm stuck, I don't know what to do now :)

You've used develop branch to create the PR commits and that causes issues when a pull request is not accepted. The approach we'd like people to use is to always create a branch for PR. I can cherry-pick these changes now, but in the future it's way easier to use a separate branch for each feature/fix. (If you're coming from SVN and are not used to using branches as much, it's just a shift in how you approach the workflow.)

Great, you can accept whatever change seems appropriate for you. You are right, the treatment of topic groups as transparent could have also been done (and done more elegantly) with a mode, I tried to make the smallest change possible. But you can reject that.


[Icon Missing] Support for gulpfile folder

[x] I'm sure this issue is not a duplicate.

More info:
I'm using gulp on a project and how the file become huge, I've splitted the file on separated files inside a folder named gulpfile.babel.js witch is listed on ListOfFolders like if already have an icon, but my folder is only with the default folder icon. This folder name that I've been using is covered by the gulp project as you can see on their documentation.

When I use the same name on a file, it works, so the problem is only with folders.

There is no icon for gulp folder. You can request one at #650. Unfortunately, the wiki page is displaying wrong data, something that we look into it. Thanks for bringing this to our attention.


I got an reserved word error for await statements

But I use linter-js-standard v3.9.1:

Which use standard v8.6.0 as dependency

https://github.com/ricardofbarros/linter-js-standard/blob/master/package.json

And standard seems support async/await since standard v8.3.0 (> v8.6.0)

https://github.com/feross/standard/issues/645#issuecomment-250550504

What's wrong ?

This was already answered in https://github.com/standard/standard/issues/884#issuecomment-307155068:

I think this is working normally. The error isn't very informative, but the await keyword can only be used inside of a function marked async. So the sample above is correctly marked as an error.


How make pykafka support python2.6, consumer will be blocked forever?

I have write a patch to support python2.6, and producer works well. but the consumer will be blocked forever.
client = KafkaClient(hosts="<IP_ADDRESS>:9092")
......
topic.get_simple_consumer(auto_start=true, reset_offset_on_start=True,
                                                       auto_offset_reset=OffsetType.LATEST)
...

prompt followed message and blocked:
No handlers could be found for logger "pykafka.cluster"
and then I get KafkaClient like that:
client = KafkaClient(hosts="<IP_ADDRESS>:9092", use_greenlets=True)
but raise exception follow by:
  File "worker.py", line 93, in __init__
    auto_offset_reset=OffsetType.LATEST)
  File "/usr/lib/python2.6/site-packages/pykafka-2.3.2_dev-py2.6.egg/pykafka/topic.py", line 192, in get_simple_consumer
    **kwargs)
  File "/usr/lib/python2.6/site-packages/pykafka-2.3.2_dev-py2.6.egg/pykafka/simpleconsumer.py", line 217, in __init__
    self.start()
  File "/usr/lib/python2.6/site-packages/pykafka-2.3.2_dev-py2.6.egg/pykafka/simpleconsumer.py", line 256, in start
    self.reset_offsets()
  File "/usr/lib/python2.6/site-packages/pykafka-2.3.2_dev-py2.6.egg/pykafka/simpleconsumer.py", line 687, in reset_offsets
    response = broker.request_offset_limits(reqs)
  File "/usr/lib/python2.6/site-packages/pykafka-2.3.2_dev-py2.6.egg/pykafka/broker.py", line 297, in request_offset_limits
    return future.get(OffsetResponse)
  File "/usr/lib/python2.6/site-packages/pykafka-2.3.2_dev-py2.6.egg/pykafka/handlers.py", line 64, in get
    self._ready.wait(timeout)
  File "/usr/lib/python2.6/site-packages/gevent-1.1.1-py2.6-linux-x86_64.egg/gevent/event.py", line 207, in wait
    return self._wait(timeout)
  File "/usr/lib/python2.6/site-packages/gevent-1.1.1-py2.6-linux-x86_64.egg/gevent/event.py", line 117, in _wait
    gotit = self._wait_core(timeout)
  File "/usr/lib/python2.6/site-packages/gevent-1.1.1-py2.6-linux-x86_64.egg/gevent/event.py", line 95, in _wait_core
    result = self.hub.switch()
  File "/usr/lib/python2.6/site-packages/gevent-1.1.1-py2.6-linux-x86_64.egg/gevent/hub.py", line 606, in switch
    return greenlet.switch(self)
LoopExit: ('This operation would block forever', <Hub at 0x1e28c30 epoll pending=0 ref=0 fileno=10 resolver=<gevent.resolver_thread.Resolver at 0x1eb3d10 pool=<ThreadPool at 0x1eb3d50 0/1/10>> threadpool=<ThreadPool at 0x1eb3d50 0/1/10>>)

Hi @crazylovecat. I'm guessing that this is happening because gevent has some problem on python 2.6. It's also possible that the way we use gevent is in some way incompatible with python 2.6 - we don't test against anything older than python 2.7.

@emmett9001
Thanks a lot!


Status monitoring

I was wondering what's the best way to monitor the status of matterbridge. The docker container is one thing to look at but I'd also be interested about the status of the services that matterbridge is configured for.
Is it feasible to get some sort of an end-point in matterbridge that responds with a json summary of the current status which could then be used by monitoring tools?

I've been thinking about this.
Almost all of the libraries I use reconnect automatically on failures and most of them can't be asked about the current state. So this would only be possible to implement in my own (mattermost) library.
In the last release, irc and mattermost reconnects should be more stable. So services should always be connected or being busy trying to connect.
So unless every underlying library add a way to ask about their state, this isn't feasible.

Understood, this is not a simple one but I doubt that the other services would come up with status APIs without letting them know about the requirement.
What I've done in the meantime is to use the fluentd log driver of docker and now monitor the logs instead. I do get an error like this when Mattermost goes down:
time="2017-02-20T08:38:14Z" level=error msg="error:websocket: close 1006 (abnormal closure): unexpected EOF" module=matterclient

This is great and helps me to identify downtime. What's missing however is a log entry when Mattermost comes back and matterbridge reconnects. Would you mind putting something into the log even when not in debug mode?

Hey just wanted to post an update on this as well. Let me know if i should open a new issue. matterbridge has been crashing on me recently. and I've been looking into ways to monitor the application. I tried supervisor. Which i had no luck with. And found that forever.js isn't supported either. So I looked into docker. and had some issues as well.
I'm using the same configuration file for running it inside the go/bin folder but when i run it inside docker messages from mattermost don't get relayed to slack/irc/discord. but messages from slack/irc/discord get relayed to mattermost just fine.
When matterbridge is run by itself. messages relay between all 4 of the applications correctly.

@Infernoman Please reopen a new issue if you experience crashes. I'll try to fix those :)
Be sure you're running the latest version and put the stack trace after a panic in the issue.
For restarting systemd is a good option, you could do something like this example service below.
[Service]
ExecStart=/opt/matterbridge/matterbridge-linux64 -conf /opt/matterbridge/matterbridge.conf
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=matterbridge
User=matterbridge
Group=matterbridge

[Install]
WantedBy=multi-user.target

It would be nice if we could integrate prometheus or the like for this.

@Infernoman Please reopen a new issue if you experience crashes. I'll try to fix those :)
Be sure you're running the latest version and put the stack trace after a panic in the issue.

The benefit of a monitoring possibility would be grater than simple crashes.
If only one connection of multiple (in my case 3, IRC, telegram, Rocket.Chat) breaks there is noc way to detect this in an automated way.
If the Service crashes or ends itself systemd oder docker can restart the service.
But in the described case the service continues ti run and only one connection is dead.
Currently the only way to detect tis is to monitor the log or realize the absence of messages.
Perhaps something like a prometheus metrics endpoint could be a good start ?
https://github.com/prometheus/client_golang


Custom examples design

What happened?
Custom examples (e.g. chip) need to pass design review :)

Use following colors:
Filled:

background-color: #F8F
color: #000

Outline:

color#: #909


Unable to display diff of git changes

I would like to be able to show my git changes next to the original version of the file.

+1

In the mean time, have you tried https://atom.io/packages/git-time-machine ? It uses Split Diff. If you click at the far right of the timeline, you can see the changes you made since your last commit.


MINOR: fix system tests sending ACLs through ZooKeeper

http://confluent-kafka-branch-builder-system-test-results.s3-us-west-2.amazonaws.com/2020-10-20--001.1603165159--rondagostino--minor_another_acl_system_test_fix--e4506f309/report.html

Tests
Passes
Failures
Ignored
Time

4
4
0
0
7 minutes 17.330 seconds

Changes are only in system tests, so merging without waiting for build.


context.report(): add new property for external documentation

Is your feature request related to a problem? Please describe.
As an API governance architect, we have a number of design decisions enforced with Redocly rules. While we try to make the rules self-documenting, there are definitely some instances which require a deeper context on the decision.
Describe the solution you'd like
I would like a property to include an external link to documentation supporting the design decision of a particular rule so a user of the linter can find reference material for the rule.
{
    "message": <string>,
    "location": Location{},
    "suggest": <string>[],
    "from": Location{},
    "reference": <string><uri-reference>
}

Describe alternatives you've considered
I'm currently trying out \n\t formatting in the message body but I would like something more formal.
report({
      message: `this is a message with a reference to external docs\n\treference: https://www.redocly.com`
      })

  1:1  warning  custom-id/some-rule  this is a message with a reference to external docs
        reference: https://www.redocly.com

Hi @jeremyfiel,
Thank you for taking the time to share this idea with us.
I have added it to our list of ideas so that our Product Team can evaluate how it fits our roadmap.
We cannot guarantee that it will be approved nor can provide you with any timelines.

This is a nice suggestion.
We're quite busy now but we would happily accept a PR


add of Card carousels

Description
I want to add new component under carousels section.
Screenshots
https://github.com/Rakesh9100/Beautiify/assets/123728188/56ec3ca8-535f-4638-abd9-c3e99798ee4b
Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[X] I am a GSSOC'24 contributor.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

This is just simple carousel only right, just names of cards are written @Dsmita03


Nacos discovery does not work very well in spring boot 2.1.0.RELEASE

when we use the spring boot 2.1.0.RELEASE version combine with spring-cloud-starter-alibaba-nacos-discovery,then the services is not register to nacos. We found that in the spring-boot 2.1.0.RELEASE version, the version of the spring-context 5.1.2.RELEASE referenced, in the processBean method of the EventListenerMethodProcessor class, added a condition of isSpringContainerClass, resulting in the Nacos service the automatically registered class is filtered out, causing the service to fail to register. why Eureka can, he made a protective measure that is have implemented the SmartLifecycle interface, that is, when the WebServerInitializedEvent event is not received, it will also be started by the start method of the SmartLifecycle interface.

update spring cloud version to Greenwich.BUILD-SNAPSHOT will works
It has fixed by implement ApplicationListener in AbstractAutoServiceRegistration

提供一个版本对应供大家参考
Table 1. Release train Spring Boot compatibility

Release Train
Boot Version

Greenwich
2.1.x

Finchley
2.0.x

Edgware
1.5.x

Dalston
1.5.x

附: Spring Cloud 官方说明


Rival 110 colorshift (rgb) is it coming in the next update?

Hello, I forget to answer this issue, sorry...
The Rival 110 does not seem to support colorshift by hardware (it is a software feature of the SteelSeries Engine 3). So it will not be supported for that mouse.
Have a nice day :)

rival 110 support colorshift

@ducknificient As far as I know, this is not a feature supported by the hardware itself but a software feature of the SSE3 (it sends continuously command to the device to update the color).
But if you have info about hardware support of the colorshift on this device, please give me Bytes to configure this so I can implement it in Rivalcfg. :)

i see, thanks for the explanation..


Absolute URL for NetworkLayer not working

in client.js of the todo example, setting an absolute URL to DefaultNetworkLayer will raise 404 error. it still tries to connect to http://localhost:8080/graphql. what is the problem?

Are you sure it tries to connect to localhost? Can't it be that it actually tries to connect to the host specified by the absolute URL, but the host's CORS settings (or their absence) don't allow connection?

server rendering is done successfully using the same URL at server but when a mutation is applied at client-side, it tries to connect to http://localhost:8000/graphql which is nodejs server but the URL I have configured is http://localhost/8080/myproject/graphql (CORS enabled) and it raises 404. when I inject networkLayer to Relay in addition to environment at client-side, it works as expected.

You need to use relay prop passed to your component instead of Relay.Store to apply mutations.

thank you


Issue writing MAC

I've been having issues getting UFiber.Configurator to write the MAC address.
➜  macos-x64 ./UFiber.Configurator --host <IP_ADDRESS> --vendor ARLT --serial ######## --mac 30:B1:xx:xx:xx:xx
### Original Image ###
--- NVRAM Information --
- mtdblock3 hash: 759ca19c79dc00c54a75c36e73959b101679de020704cac8aaefc84e0e1802a8
- NVRAM Version: 6
- Boot parameters: e=<IP_ADDRESS>:ffffff00 h=<IP_ADDRESS> g= r=f f=vmlinux i=bcm963xx_fs_kernel d=1 p=0 c= a=
- Board Id: UBNT_SFU_####
- PSI size: 24
- Total MAC addresses: 5
- GPON MAC address: D0:21:xx:xx:xx:xx
- GPON Vendor Id: UBNT
- GPON Serial Number: ########
- GPON SLID (password):
- Checksum: 447620156

### Patching fw-11032022-110808.bin...
Unhandled exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.ArgumentException: Data must be an even length. (Parameter 'data')
   at UFiber.Configurator.NVRAM.AsBytes(String data)
   at UFiber.Configurator.NVRAM.SetBaseMacAddress(String mac)
   at <Program>$.<>c.<<Main>$>b__0_2(String host, String user, String pw, Int32 port, Boolean dryRun, String slid, String vendor, String serial, String mac, String fwToRestore)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at System.Delegate.DynamicInvoke(Object[] args)
   at System.CommandLine.Invocation.ModelBindingCommandHandler.InvokeAsync(InvocationContext context)
   at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass23_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass27_0.<<UseVersionOption>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass25_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__24_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass11_0.<<UseDebugDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__10_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass14_0.<<UseExceptionHandler>b__0>d.MoveNext()

When I use it just to write the serial, theres no problem.
➜  macos-x64 ./UFiber.Configurator --host <IP_ADDRESS> --vendor ARLT --serial ########
### Original Image ###
--- NVRAM Information --
- mtdblock3 hash: 759ca19c79dc00c54a75c36e73959b101679de020704cac8aaefc84e0e1802a8
- NVRAM Version: 6
- Boot parameters: e=<IP_ADDRESS>:ffffff00 h=<IP_ADDRESS> g= r=f f=vmlinux i=bcm963xx_fs_kernel d=1 p=0 c= a=
- Board Id: UBNT_SFU_####
- PSI size: 24
- Total MAC addresses: 5
- GPON MAC address: D0:21:xx:xx:xx:xx
- GPON Vendor Id: UBNT
- GPON Serial Number: ########
- GPON SLID (password):
- Checksum: 447620156

### Patching fw-11032022-110936.bin...
### Patched fw-11032022-110936.bin!
--- NVRAM Information --
- mtdblock3 hash: b39e55e5dcaf42fe3d2ed0c5d0cf91bd90b33b347b3656aa2389eff328b39ec4
- NVRAM Version: 6
- Boot parameters: e=<IP_ADDRESS>:ffffff00 h=<IP_ADDRESS> g= r=f f=vmlinux i=bcm963xx_fs_kernel d=1 p=0 c= a=
- Board Id: UBNT_SFU_6848
- PSI size: 24
- Total MAC addresses: 5
- GPON MAC address: D0:21:F9:15:68:80
- GPON Vendor Id: ARLT
- GPON Serial Number: 10347795
- GPON SLID (password):
- Checksum:<PHONE_NUMBER>

Uploading patched file to the target UFiber device...
Uploaded!
### Applying patched file on the target UFiber device...
### Applied patch! Please reboot your UFiber device to load the new image.

I was finally able to get the MAC changed as a third step using usb_serial_hack.py
➜  Downloads ./ubi_serial_hack.py -r <IP_ADDRESS> -p 22 --serial 41:52:4c:54:xx:xx:xx:xx --mac 30:B1:xx:xx:xx:xx --insecure
Password:
[+] Downloaded mtdblock3.BIN
[!] Hashsum of mtdblock3.BIN (sha256): 094553cd45b34658c442d803456130097ba0eef79a8bcb1e66624f7724ef0283
[~] nvram_version:    6
[~] boot_line:        "e=<IP_ADDRESS>:ffffff00 h=<IP_ADDRESS> g= r=f f=vmlinux i=bcm963xx_fs_kernel d=1 p=0 c= a= "
[~] board_id:         "UBNT_SFU_####"
[~] main_thread:      0
[~] psi_size:         24
[~] num_mac_addr:     5
[~] base_mac_addr:    d0:21:xx:xx:xx:xx
[~] old_check_sum:    0xffffffff
[~] vendor_id:        "UBNT"
[~] serial_id:        "f9156880"
[~] serial_formatted: "55:42:4e:54:xx:xx:xx:xx"
[~] gpon_password:    "          "
[~] checksum:         0xddaa45a
[+] Built mtdblock3_new.BIN
[!] Hashsum of mtdblock3_new.BIN (sha256): eaa4666b5f1dfad8a6a233e01dcfd7067c95ea4b2ad09542b2f47eebe4722ad2
[~] nvram_version:    6
[~] boot_line:        "e=<IP_ADDRESS>:ffffff00 h=<IP_ADDRESS> g= r=f f=vmlinux i=bcm963xx_fs_kernel d=1 p=0 c= a= "
[~] board_id:         "UBNT_SFU_xxxx"
[~] main_thread:      0
[~] psi_size:         24
[~] num_mac_addr:     5
[~] base_mac_addr:    30:b1:xx:xx:xx:xx
[~] old_check_sum:    0xffffffff
[~] vendor_id:        "ARLT"
[~] serial_id:        "xxxxxxxx"
[~] serial_formatted: "41:52:4c:54:xx:xx:xx:xx"
[~] gpon_password:    "          "
[~] checksum:         0xfd2b0d9b
[+] Uploaded mtdblock3_new.BIN

I hope I am not saying something wrong, but I just went through the same process and removing the colons from the MAC address solved the issue for me.
Instead of passing the mac as  --mac 30:B1:xx:xx:xx:xx, try  --mac 30B1xxxxxxxx
I hope this helps.

Thanks Hugo

On 15 Mar 2022, at 11:09, Hugo Ferreira @.***> wrote:
I hope I am not saying something wrong, but I just went through the same process and removing the colons from the MAC address solved the issue for me.
Instead of passing the mac as --mac 30:B1:xx:xx:xx:xx, try --mac 30B1xxxxxxxx
I hope this helps.
—
Reply to this email directly, view it on GitHub https://github.com/Unifi-Tools/UFiber.Configurator/issues/15#issuecomment-1067794926, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKV2DBFLQXOUUBLO3SLC2LVABOXFANCNFSM5QRWR2QA.
Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.


GPX Style extension should also be parsed from the  element

I am fairly sure the placement of the color option parsing code is at the wrong tag:
https://github.com/mpetazzoni/leaflet-gpx#line-styling
unfortunately https://www.topografix.com/GPX/gpx_style/0/2 mandates no clear place where to put this
I arrived at this by analogy - have a look at some of the GPX files on github, eg
https://github.com/mapbox/togeojson/blob/72957d69545ed1f798d56618694473b603a0ba6f/test/data/style.gpx
https://github.com/hsnetzer/gpx-pinhoti/blob/76bdf95095ec0f42521a3c94dac29ceb7824aa3b/B.gpx
or search for https://github.com/search?q=www.topografix.com%2FGPX%2Fgpx_style%2F0%2F2+line+color+trk&type=Code for more examples

This should now work as expected with the latest from master.


Why scale-down mapped to contain?

Hello
Why scale-down is only mapped to contain?
According to https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit:

scale-down
The content is sized as if none or contain were specified, whichever would result in a smaller concrete object size.

Can you add the none for scale-down?
Thank you.

Mapping it to none means cropping it, which in some cases could cut even 90% of it, as opposed to making a smaller image blurry/big. I'll consider adding an option

To begin, if this work only at the first display, it's good for me :)

Could you test this out and let me know how it works before I push it to npm?

Yeah :) For me, it works with IE 11 and Firefox 22. My little image is... little and my big image is resized. Thank you, good job!

Published to npm as 2.3.0


Data export for SymposIA

A data exporter should be built to export data for SymposIA.
It needs to be implemented into SymposIA itself, because there are also external visitors. Amelie can then send a request for data export for an e-mail address (which is used as the unique identifier) and let SymposIA send a mail on its own to the user.

I propose to closure this issue due to the complexity of the task and the unfeasibility of further integrating these services.
SymposIA is event-based and information should be purged after an event has passed. If this is not currently done, I suggest adding this as an issue to the SymposIA codebase.
Would like to hear your ideas @Kurocon


Unable to clone Git repo when building an image if the default branch name isn't "master"

Bug description
When trying to build an image from a Git repository, Portainer assumes the default branch name to be "master".  A lot of repositories use "main" as the default branch name now.
Expected behavior
The repository clones without specifying a branch name, as it does on the command line (e.g. git clone ...).
Portainer Logs
Nothing shows in the Portainer logs.  The HTTP conversation:
POST /api/endpoints/1/docker/build?dockerfile=Dockerfile&remote=https:%2F%2Fgit.example.com%2Fusername%2Freponame.git&t=imagename:latest HTTP/1.1
Host: portainer.example.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Content-Type: application/x-tar
Authorization: Bearer [REDACTED]
Content-Length: 2
Origin: http://portainer.example.com
DNT: 1
Connection: keep-alive
Referer: http://portainer.example.com/
Sec-GPC: 1
Pragma: no-cache
Cache-Control: no-cache

HTTP/1.1 500 Internal Server Error
Api-Version: 1.41
Content-Length: 88
Content-Type: application/json
Date: Fri, 29 Oct 2021 08:53:31 GMT
Docker-Experimental: true
Ostype: linux
Server: Docker/20.10.10 (linux)
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block

{"message":"error fetching: fatal: couldn't find remote ref master\n: exit status 128"}

Steps to reproduce the issue:

Go to 'Images'
Click on 'Build a new image'
Enter an image name
Specify a build method of URL
Use a HTTPS URL of a Git repository that doesn't use master as the default branch name
See error

Technical details:

Portainer version: 2.9.2
Docker version (managed by Portainer): Docker version 20.10.10, build b485636
Kubernetes version (managed by Portainer): N/A
Platform (windows/linux): Linux
Command used to start Portainer: (via docker-compose)
Browser: Firefox v93.0 (64bit)
Use Case (delete as appropriate): Using Portainer at Home, Using Portainer in a Commerical setup.
Have you reviewed our technical documentation and knowledge base? Yes/No

@scottwallacesh
Thank you for reporting this. Added to our backlog and currently under investigation.


Could you please tell me whether this Windows computer can be installed normally

Nvidia 2060

If you're asking, if this can run on Windows, then the last time I checked TensorRT for python was not supported on Windows (maybe it changed since then?).


Is the project dead?

It's been over 7 months since the last update and there has been no activity in the existing issues/PRs as well. Coming from the Android world, I've really felt at home and am still using floor in a production project. I want to make sure whether it's worth continuing to work with this package in long term?

+


[SPARK-6204][SQL] GenerateProjection's equals should check length equality

GenerateProjection's equals now only checks column equality. It should also check length equality.

Test build #28337 has started for   PR 4931 at commit ecd7a28.

This patch merges cleanly.

Test build #28337 has finished for   PR 4931 at commit ecd7a28.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28337/
Test PASSed.

Can you add a test?

I don't think change is required.  The class check in the match for equality is looking for this exact instance of SpecificRow which will always have exactly the same length (because it must be generated from the same expressions).
Unless you have a test case that shows a failure (and in general it is good to always have one when filing a bug) I suggest we close this issue.

It would not get a failure. For now, the equals function will go back to call super.equals to test the equality if two rows have different lengths.

If you think this is not worth fixing. Let's close this pr.


chocolatey nonsense

Describe the bug

To Reproduce
Steps to reproduce the behavior:

Go to 'install viber'
Click on 'no dont use specific user credentials'
winget fails
chocolatey starts mucking about

Expected behavior: cancel the install
Screenshots

Additional context
choco should not just forcefully get shoved into your system

This seems to be caused by Viber having been changed in Winget repositories, from Viber.Viber to Rakuten.Viber. When Winget fails to install a program, like in this instance, Chocolatey is used as the fallback, currently. Chocolatey has an old version, while currently Winget has the latest version. I will talk to the other Contributers and see how they want to handle this.


keys: Expose HD tooling

We need to be able to recover private keys from the words written down in the fundraiser, which used HD (bip32). We already have the HD code under keys/hd but we don't expose it in any tooling.
We should have some way to specify an HD path when generating a secp256k1 key (note this only works for secp for now, not ed25519).
This is specifically to facilitate offline transactions, eg https://github.com/cosmos/cosmos-sdk/issues/966

possible via #118 (now living in cosmos-sdk).


I have created a new Logo And Favicon

@SauravMukherjee44
Have a review once and return to me if you are willing to update anything or if any issues

You need to put the name of the library in the logo. This logo seems common and doesn't represent our library.


When authenticating requests to the Twitter API v2 endpoints, you must use keys and tokens from a Twitter developer App that is attached to a Project.

Describe the bug
Context - We would like to use Full Archive v2 search/all endpoint. We have a premium subscription. We do not have a standalone app. We have a project and an app is added to it. I have tested using the bearer and also with the API keys. v2/search/recent works fine though. Only the v2/search/all is throwing below error.
When authenticating requests to the Twitter API v2 endpoints, you must use keys and tokens from a Twitter developer App that is attached to a Project. You can create a project via the developer portal.
"title": "Client Forbidden",
"required_enrollment": "Standard Basic",
"reason": "client-not-enrolled",
To Reproduce
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.

I have the same issue - have you found a fix for it yet?

The full archive search endpoint in v2 is only available with academic access.

Now I am using this api
 await axios({
      method: "post",
      url: `https://api.twitter.com/2/dm_conversations/with/${received_user_id}/messages`,
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "Content-Type": "application/json",
        "Accept-Encoding": "gzip, deflate, br",
      },
      data: {
        text: "Hello World!",
      },
    })

And in this code, the received_user_id is User Id and the accessToken  is that I created from my  twitter app dashboard
But when I run this code, it has some bugs like this image.😢
How can I fix it?😣

You can try this https://twitter.utools.me/ tel: https://t.me/Yang0619


Fix Yarn Issues - Webpacker Dep Update

I rule and have completed some work on Case Manager that's ready for review!
Hopefully this un-fails the yarn gunk.
This pull request makes the following changes:

Webpacker 3.5.5 -> 3.6.0

Nope, no dice. Webpacker hasn't updated its dep yet. Keeping an eye on rails/webpacker#2026

PRs correcting the vuln in Webpacker submitted & accepted/merged. Just waiting on a new version release.

resolved in #1663