Failed to load delegate from libedgetpu.so.1 on PCIe EdgeTPU [SOLVED]

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
++ Linux Ubuntu 18.04.3
TensorFlow installed from (source or binary):
++ pip install tflite-runtime...whl
TensorFlow version:
++ tflite-runtime-1.14.0-cp37...
Python version:
++ 3.7.5
Installed using virtualenv? pip? conda?:
++ conda
CUDA/cuDNN version:
++ CPU Only with EdgeTPU
GPU model and memory:
++ PCIe EdgeTPU

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  2
Core(s) per socket:  4
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               60
Model name:          Intel(R) Core(TM) i7-4700EQ CPU @ 2.40GHz
Stepping:            3
CPU MHz:             1097.578
CPU max MHz:         3400.0000
CPU min MHz:         800.0000
BogoMIPS:            4789.32
Virtualisation:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            6144K
NUMA node0 CPU(s):   0-7
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm abm cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts md_clear flush_l1d

Describe the problem
When running classify_image.py, I receive the following error
(Coral) v4@v4-TPU:~/coral/tflite/python/examples/classification$ python3 classify_image.py --model models/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite --labels models/inat_bird_labels.txt --input images/parrot.jpg
Traceback (most recent call last):
  File "/home/v4/anaconda3/envs/Coral/lib/python3.7/site-packages/tflite_runtime/interpreter.py", line 165, in load_delegate
    delegate = Delegate(library, options)
  File "/home/v4/anaconda3/envs/Coral/lib/python3.7/site-packages/tflite_runtime/interpreter.py", line 119, in __init__
    raise ValueError(capture.message)
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "classify_image.py", line 118, in <module>
    main()
  File "classify_image.py", line 95, in main
    interpreter = make_interpreter(args.model)
  File "classify_image.py", line 69, in make_interpreter
    {'device': device[0]} if device else {})
  File "/home/v4/anaconda3/envs/Coral/lib/python3.7/site-packages/tflite_runtime/interpreter.py", line 168, in load_delegate
    library, str(e)))
ValueError: Failed to load delegate from libedgetpu.so.1

Any other info / logs
I have seen various solutions, suggesting I add the user to plugdev group (This was on a solution regarding the USB Accelerator, but i tried it anyway)
Another point was that it wasnt plugged in (again for the usb accelerator), which it is:
v4@v4-TPU:~$ ls /dev/apex_0
/dev/apex_0

v4@v4-TPU:~$ lspci -x | grep 089a
04:00.0 Non-VGA unclassified device: Device 1ac1:089a

And dmesg:
v4@v4-TPU:~$ dmesg | grep apex
[    7.830468] apex 0000:04:00.0: Apex performance not throttled due to temperature

v4@v4-TPU:~$ dmesg | grep 089a
[    0.274318] pci 0000:04:00.0: [1ac1:089a] type 00 class 0x0000ff

so the device is connected properly.
The Libraries are appropriately installed:
(Coral) v4@v4-TPU:~/coral/tflite/python/examples/classification$ ls /usr/lib/x86_64-linux-gnu/libedgetpu.so.1*
/usr/lib/x86_64-linux-gnu/libedgetpu.so.1  /usr/lib/x86_64-linux-gnu/libedgetpu.so.1.0

and these are the permissions of the libraries:
(Coral) v4@v4-TPU:~/coral/tflite/python/examples/classification$ ll /usr/lib/x86_64-linux-gnu/libedgetpu.so.1*
lrwxrwxrwx 1 root root     17 Sep 16 21:27 /usr/lib/x86_64-linux-gnu/libedgetpu.so.1 -> libedgetpu.so.1.0
-rwxr-xr-x 1 root root 956392 Sep 16 21:27 /usr/lib/x86_64-linux-gnu/libedgetpu.so.1.0

NOTE: I did have to add the 2nd and 3rd execute permissions on libedgetpu.so.1.0

Having gone through this with Coral technical, it was narrowed down to not properly adding the user to the apex group, causing the error in accessing the libs.
Marked Closed and Solved

I am facing the same issue.
The demo API gives error at tflite.load_delegate.
pi@bpi-iot-ros-ai:~/coral/tflite/python/examples/classification$ python3 classify_image.py --model models/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite --labels models/inat_bird_labels.txt --input images/parrot.jpg
E :248] HIB Error. hib_error_status =<PHONE_NUMBER>000001, hib_first_error_status =<PHONE_NUMBER>000001
E :248] HIB Error. hib_error_status =<PHONE_NUMBER>000001, hib_first_error_status =<PHONE_NUMBER>000001
INFO: Initialized TensorFlow Lite runtime.
----INFERENCE TIME----
Note: The first inference on Edge TPU is slow because it includes loading the model into Edge TPU memory.

pi@bpi-iot-ros-ai:~$ uname -a
Linux bpi-iot-ros-ai 5.4.0-bpi-r64 #1 SMP PREEMPT Mon Dec 16 16:00:08 IST 2019 aarch64 aarch64 aarch64 GNU/Linux
pi@bpi-iot-ros-ai:~$ lscpu
Architecture:          aarch64
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
CPU max MHz:           1350.0000
CPU min MHz:           30.0000
pi@bpi-iot-ros-ai:~$ ls -l /usr/lib/aarch64-linux-gnu/libedge*
lrwxrwxrwx 1 root root     17 Sep 17 04:27 /usr/lib/aarch64-linux-gnu/libedgetpu.so.1 -> libedgetpu.so.1.0
-rwxrwxrwx 1 root root 792376 Sep 17 04:27 /usr/lib/aarch64-linux-gnu/libedgetpu.so.1.0
pi@bpi-iot-ros-ai:~$ lspci
00:00.0 PCI bridge: MEDIATEK Corp. Device 3258
01:00.0 System peripheral: Device 1ac1:089a
pi@bpi-iot-ros-ai:~$ ls /dev/apex_0
/dev/apex_0
pi@bpi-iot-ros-ai:~$ sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/udev/rules.d/65-apex.rules"
pi@bpi-iot-ros-ai:~$ sudo groupadd apex
groupadd: group 'apex' already exists
pi@bpi-iot-ros-ai:~$ sudo adduser $USER apex
The user `pi' is already a member of `apex'.

Coral Tech Support had indicated from the dmesg logs that the memory was not assigned for BAR 0
[ 1.604440] pci 0000:01:00.0: [1ac1:089a] type 00 class 0x0000ff
[ 1.610743] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit pref]
[ 1.618078] pci 0000:01:00.0: reg 0x18: [mem 0x00000000-0x000fffff 64bit pref]
[ 1.626285] pci 0000:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s x1 link at 0000:00:00.0 (capable of 4.000 Gb/s with 5 GT/s x1 link)
[ 1.641429] pci_bus 0000:01: fixups for bus
[ 1.645617] pci_bus 0000:01: bus scan returning with max=01
[ 1.651195] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[ 1.657816] pci_bus 0000:00: bus scan returning with max=01
[ 1.663407] pci 0000:00:00.0: BAR 0: no space for [mem size 0x200000000 64bit pref]
[ 1.671071] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x200000000 64bit pref]
[ 1.679079] pci 0000:00:00.0: BAR 8: assigned [mem 0x20000000-0x201fffff]
[ 1.685872] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 1.690846] pci 0000:00:00.0: bridge window [mem 0x20000000-0x201fffff]

The BAR0 for pcie bridge didn't get memory range assigned, is is an issue with the driver in the SoC. This "BAR 0 failed to assign" is preventing our device from accessing the host's memory. This is exactly why you get this issue right during load delegate. Unfortunately, this is a little outside of our hand. On another note, the swiotlb=512 from your kernel command line is very low, I suggest increasing to swiotlb=65536 for possible unrelated issues.
I have now update the swiotlb=65536 and gasket.dma_bit_mask=32 in the kernel command line and also managed to resolve the BAR0 memory assignment issue.
Following is the log.
pi@bpi-iot-ros-ai:~$ lsmod
Module                  Size  Used by
mt7622                 45056  -2
mt76                   45056  -2
mac80211              364544  -2
libarc4                16384  -2
apex                   24576  -2
gasket                 98304  -2
cfg80211              258048  -2
btmtkuart              24576  -2
pi@bpi-iot-ros-ai:~$ dmesg | grep apex
[    8.381572] apex 0000:01:00.0: assign IRQ: got 140
[    8.381703]  apex_pci_probe+0x38/0x468 [apex]
[    8.381762]  apex_init+0x44/0x1000 [apex]
[    8.381906]  apex_pci_probe+0x38/0x468 [apex]
[    8.381960]  apex_init+0x44/0x1000 [apex]
[    8.382002] apex 0000:01:00.0: Assigned....BAR 0 [mem 0x20100000-0x20103fff 64bit pref]........
[    8.382008] apex 0000:01:00.0: Assigned and claimed....BAR 0 [mem 0x20100000-0x20103fff 64bit pref]........
[    8.382014] apex 0000:01:00.0: Assigned....BAR 2 [mem 0x20000000-0x200fffff 64bit pref]........
[    8.382020] apex 0000:01:00.0: Assigned and claimed....BAR 2 [mem 0x20000000-0x200fffff 64bit pref]........
[    8.382025] apex 0000:01:00.0: enabling device (0000 -> 0002)
[    8.382078] apex 0000:01:00.0: enabling bus mastering
[   13.538841] apex 0000:01:00.0: Apex performance not throttled due to temperature
pi@bpi-iot-ros-ai:~$ dmesg | grep pci
[    1.494119] mtk-pcie 1a143000.pcie: host bridge /pcie@1a143000 ranges:
[    1.505642] mtk-pcie 1a143000.pcie: Parsing ranges property...
[    1.515992] mtk-pcie 1a143000.pcie:   MEM 0x20000000..0x2fffffff -> 0x20000000
[    1.556439] mtk-pcie 1a143000.pcie: PCI host bridge to bus 0000:00
[    1.568448] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.573946] pci_bus 0000:00: root bus resource [mem 0x20000000-0x2fffffff]
[    1.580841] pci_bus 0000:00: scanning bus
[    1.584897] pci 0000:00:00.0: [14c3:3258] type 01 class 0x060400
[    1.590957] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x1ffffffff 64bit pref]
[    1.599829] pci_bus 0000:00: fixups for bus
[    1.604022] pci 0000:00:00.0: scanning [bus 00-00] behind bridge, pass 0
[    1.610729] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    1.618747] pci 0000:00:00.0: scanning [bus 00-00] behind bridge, pass 1
[    1.625563] pci_bus 0000:01: scanning bus
[    1.629683] pci 0000:01:00.0: [1ac1:089a] type 00 class 0x0000ff
[    1.635984] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit pref]
[    1.643318] pci 0000:01:00.0: reg 0x18: [mem 0x00000000-0x000fffff 64bit pref]
[    1.651524] pci 0000:01:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s x1 link at 0000:00:00.0 (capable of 4.000 Gb/s with 5 GT/s x1 link)
[    1.666709] pci_bus 0000:01: fixups for bus
[    1.670896] pci_bus 0000:01: bus scan returning with max=01
[    1.676472] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    1.683093] pci_bus 0000:00: bus scan returning with max=01
[    1.688684] pci 0000:00:00.0: BAR 0: no space for [mem size 0x200000000 64bit pref]
[    1.696347] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x200000000 64bit pref]
[    1.704355] pci 0000:00:00.0: BAR 8: assigned [mem 0x20000000-0x201fffff]
[    1.711151] pci 0000:01:00.0: BAR 2: assigned [mem 0x20000000-0x200fffff 64bit pref]
[    1.718983] pci 0000:01:00.0: BAR 0: assigned [mem 0x20100000-0x20103fff 64bit pref]
[    1.726814] pci 0000:00:00.0: PCI bridge to [bus 01]
[    1.731787] pci 0000:00:00.0:   bridge window [mem 0x20000000-0x201fffff]
[    1.738888] mtk-pcie 1a145000.pcie: host bridge /pcie@1a145000 ranges:
[    1.745425] mtk-pcie 1a145000.pcie: Parsing ranges property...
[    1.751269] mtk-pcie 1a145000.pcie:   MEM 0x28000000..0x2fffffff -> 0x28000000
[    1.758508] mtk-pcie 1a145000.pcie: resource collision: [mem 0x28000000-0x2fffffff] conflicts with pcie@1a143000 [mem 0x20000000-0x2fffffff]
[    1.771141] mtk-pcie: probe of 1a145000.pcie failed with error -16
[    8.381659]  pci_enable_resources+0x68/0x18c
[    8.381665]  pcibios_enable_device+0xc/0x14
[    8.381670]  do_pci_enable_device+0x50/0xd8
[    8.381675]  pci_enable_device_flags+0x100/0x15c
[    8.381680]  pci_enable_device+0x10/0x18
[    8.381684]  pci_enable_bridge+0x50/0x78
[    8.381689]  pci_enable_device_flags+0x98/0x15c
[    8.381694]  pci_enable_device+0x10/0x18
[    8.381703]  apex_pci_probe+0x38/0x468 [apex]
[    8.381709]  pci_device_probe+0xa0/0x144
[    8.381755]  __pci_register_driver+0x40/0x48
[    8.381811] pci 0000:00:00.0: Assigned....BAR 8 [mem 0x20000000-0x201fffff]........
[    8.381817] pci 0000:00:00.0: Assigned and claimed....BAR 8 [mem 0x20000000-0x201fffff]........
[    8.381823] pci 0000:00:00.0: enabling device (0000 -> 0002)
[    8.381837] pci 0000:00:00.0: enabling bus mastering
[    8.381880]  pci_enable_resources+0x68/0x18c
[    8.381884]  pcibios_enable_device+0xc/0x14
[    8.381889]  do_pci_enable_device+0x50/0xd8
[    8.381893]  pci_enable_device_flags+0x100/0x15c
[    8.381898]  pci_enable_device+0x10/0x18
[    8.381906]  apex_pci_probe+0x38/0x468 [apex]
[    8.381911]  pci_device_probe+0xa0/0x144
[    8.381953]  __pci_register_driver+0x40/0x48
pi@bpi-iot-ros-ai:~$
pi@bpi-iot-ros-ai:~$ dmesg | grep gasket
[    0.000000] Kernel command line: board=bpi-r64 console=ttyS0,115200n1 earlyprintk root=/dev/mmcblk1p2 rootfstype=ext4 rootwait service=linux debug=7 initcall_debug=0 androidboot.hardware=mt7622 swiotlb=65536 gasket.dma_bit_mask=32
[    8.360957] gasket: loading out-of-tree module taints kernel.
pi@bpi-iot-ros-ai:~$ cd coral/tflite/python/examples/classification/
pi@bpi-iot-ros-ai:~/coral/tflite/python/examples/classification$ python3 classify_image.py --model models/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite --labels models/inat_bird_labels.txt --input images/parrot.jpg
E :237] HIB Error. hib_error_status =<PHONE_NUMBER>000001, hib_first_error_status =<PHONE_NUMBER>000001
E :237] HIB Error. hib_error_status =<PHONE_NUMBER>000001, hib_first_error_status =<PHONE_NUMBER>000001
----INFERENCE TIME----
Note: The first inference on Edge TPU is slow because it includes loading the model into Edge TPU memory.

Inspite of this I am still getting this error
Any advice to resolve this

As a note for anybody who finds this issue from Google (like me) after installing the mini PCIe accelerator and following the Coral getting started guide (from coral.ai) and you hit this error.
Check the permissions on your /dev/apex_0 device.
Mine was owned by user root, group root with permissions 600.
As root, change the owner  of /dev/apex_0 to be user root, group apex, and permissions to 660:
chown root:apex /dev/apex_0 && chmod 660 /dev/apex_0


fix: items check error when attribute value is undefined or null

Description

fix items check error when attribute value is undefined or null

General Checklist

[x] Added new tests to cover change, if needed
[ ] Security oriented best practices and standards are followed (e.g. using input sanitization, principle of least privilege, etc)
[ ] Documentation update for the change if required
[x] PR title conforms to conventional commit style
[ ] If breaking change, documentation/changelog update with migration instructions

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (761d9ec) 100.00% compared to head (7420342) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #39   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           24        24
  Lines         1038      1038
  Branches       193       193
=========================================
  Hits          1038      1038

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Refactor coro::event to condition variable?

coro::event looks like a contition variable without mutex.
In the following code, each iteration is not under protect of a mutex.
So the receiver may miss an event which sent between step 2 and 1. The receiver will never be awake again in this case.
begin loop, each iteration

wait on an event

when awake, check if an expression be true. Break the loop if yes, otherwise continue.

A condition variable(C, Java, Golang and etc.)'s design:

User shall acquire the lock explictly befor wait on a condition variable.
a condition variable' wait release the lock implictly before yield.
a condition variable' wait acquire the lock implictly before return.
User shall acquire the lock explictly before signal a condition variable.

Coroutines don't work like traditional threading concepts since they don't "suspend" into the operating system, they yield/pause in user land.  I think the part you might be confused on is ii. when awake, this situation in libcoro doesn't happen unless the coro::event is set to completed.  All event awaiters upon awaking are guaranteed to proceed because the event has been set or completed.

How to implement a coroutine-safe blocking queue with coo::event? I'm afraid there's data race risk.

It sounds like you want the coro::ring_buffer, coro::event is more or less one off events to resume execution once a single event is completed, rather than a continuous set of items flowing in.  coro::ring_buffer will produce immediately if there is space.  If there isn't any space the producing coroutine will suspend and will be automatically woken up by a consumer once space is made available.  The same is true on the consumer side but in the reverse, it suspends if the ring buffer is empty otherwise it immediately consumes an item from the buffer.  I believe you can make a "safe" queue using these methods in coroutines quite easily.

I don't think one off events are generally safe. Consider the sample code in README.md:
#include <coro/coro.hpp>
#include <iostream>

int main()
{
    coro::event e;

    // These tasks will wait until the given event has been set before advancing.
    auto make_wait_task = [](const coro::event& e, uint64_t i) -> coro::task<void> {
        std::cout << "task " << i << " is waiting on the event...\n";
        co_await e;
        std::cout << "task " << i << " event triggered, now resuming.\n";
        co_return;
    };

    // This task will trigger the event allowing all waiting tasks to proceed.
    auto make_set_task = [](coro::event& e) -> coro::task<void> {
        std::cout << "set task is triggering the event\n";
        e.set();
        co_return;
    };

    // Given more than a single task to synchronously wait on, use when_all() to execute all the
    // tasks concurrently on this thread and then sync_wait() for them all to complete.
    coro::sync_wait(coro::when_all(make_wait_task(e, 1), make_wait_task(e, 2), make_wait_task(e, 3), make_set_task(e)));
}

I don't see whether co_await e is ensured be invoked before e.set().

It doesn't have to be, if you call co_await e and e is already set() then it just continues processing, the thread never suspends the coroutine.

Sounds coro::event behaves just like coro:semaphore?
coro::event e   ~=   coro::semaphore   sem{0}
co_wait e ~= sem.acquire()
e.set() ~= sem.release()

You can have 0 or more waiters on an event.  All waiters are woken up when the event is set.
Semaphores only let N users into the critical section at a time.

I see. Thanks!


[release-4.3] Bug 1876486: static-pod-installer: remove deadlock by recreating inst…

…allers that disappear
Picks openshift/library-go#882
/assign @sttts @sdodson

/retest

/retest
/lgtm
/approve
/bugzilla refresh

/bugzilla cc-qa

Launched one 4.3 cluster with this PR successfully, verification steps see, https://bugzilla.redhat.com/show_bug.cgi?id=1876486#c4

/lgtm

/bugzilla refresh


"Warning: Discriminator source is absent or null, use base class ResourceDetails." when serializing SecurityAssessment object

Package Name: azure-mgmt-security
Package Version: 0.4.1
Operating System: Azure Function
Python Version:  3.8.2

Describe the bug
Warnings are displayed when the Azure Function runs:
[Warning] Discriminator source is absent or null, use base class ResourceDetails.
To Reproduce
Steps to reproduce the behavior:

Use the following code in an Azure Function:

# Create a generator with EventData objects containing "Unhealthy" security
# assessments
def data_generator():
    # Create Subscription Client and retrieve list of all subscriptions
    ad_credentials = MSIAuthentication()
    client = SubscriptionClient(ad_credentials)
    subscriptions = client.subscriptions.list()

    # Get security assessments for each subscription and yield the assessments
    # with a status of "Unhealthy" as JSON objects
    for subscription in subscriptions:
        try:
            client = SecurityCenter(
                credentials=ad_credentials,
                subscription_id=subscription.subscription_id,
                asc_location="westeurope"
                )
            assessments = client.assessments.list(scope=subscription.id)
            for assessment in assessments:
                if assessment.status.code == "Unhealthy":
                    yield EventData(json.dumps(assessment.as_dict()))
        except Exception as e:
            logging.error(f"Can't get security assessments for subscription \
                {subscription.subscription_id}. {e}")

Expected behavior
Warning should be applicable. I'm not sure if that's the case here. If I am doing something wrong I'd be glad if someone could point it out for me.

Hi service team, the 'resource_details' of returned assessment don't have property "source".

chlahav doesn't own this anymore. Looking for alternative contact person.

Hey,
I'm running into the exact same issue. It looks like it only happens when you access the status object of an assessment.
Code snippet below
for assessment in client.assessments.list(scope=sub_id):      print(assessment.status.code)

@AddySanto Following up to see if there is any update on this issue? - Thank you

/unresolve

/unresolve

similar issue: https://github.com/Azure/azure-sdk-for-python/issues/24815

@BigCat20196  @RAY-316  @msyyc  do you have a solution?

Hi @nadavu the issue is addressed and it is swagger issue. Once https://github.com/Azure/azure-rest-api-specs/issues/19530 is solved, SDK could release new version to fix it.

/unresolve still not fixed


refactor: continuation of note naming update

...

Benchmark results
Metrics with a significant change:

note_trial_decrypting_time_in_ms (8): 3.00 (-97%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit db67aa1e and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
45,444
179,588
716,132

l1_rollup_calldata_gas
222,972
868,292
3,449,528

l1_rollup_execution_gas
842,059
3,595,400
22,204,897

l2_block_processing_time_in_ms
2,001
7,525 (-1%)
29,583 (-1%)

note_successful_decrypting_time_in_ms
297 (+3%)
858 (+1%)
3,129 (-3%)

note_trial_decrypting_time_in_ms
:warning: 3.00 (-97%)
65.0 (+7%)
134 (-1%)

l2_block_building_time_in_ms
13,211
52,142
208,613

l2_block_rollup_simulation_time_in_ms
11,897
46,935
187,692

l2_block_public_tx_process_time_in_ms
1,272
5,081
20,438

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
21,559 (-1%)
42,179

note_history_successful_decrypting_time_in_ms
1,988 (-3%)
3,885 (-2%)

note_history_trial_decrypting_time_in_ms
121
142 (-24%)

node_database_size_in_bytes
1,623,248
1,091,392

pxe_database_size_in_bytes
29,748
59,307

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
72.2
61,697
18,841

private-kernel-ordering
43.5
24,233
8,089

base-rollup
1,773
656,309
811

root-rollup
84.4 (+9%)
4,072
1,097

private-kernel-inner
53.0
81,504
18,841

public-kernel-private-input
41.3
41,455
18,841

public-kernel-non-first-iteration
26.3 (-1%)
41,497
18,841

merge-rollup
0.899 (-1%)
2,592
873

Miscellaneous
Transaction sizes based on how many contracts are deployed in the tx.

Metric
0 deployed contracts
1 deployed contracts

tx_size_in_bytes
8,723
27,240


[type:UT][ISSUE #4547] Add unit test for shenyu-client-spring-websocket

related to https://github.com/apache/shenyu/issues/4547

Make sure that:

[x] You have read the contribution guidelines.
[x] You submit test cases (unit or integration tests) that back your changes.
[x] Your local test passed ./mvnw clean install -Dmaven.javadoc.skip=true.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (3395221) 61.83% compared to head (6d7f0dc) 61.73%.

:exclamation: Current head 6d7f0dc differs from pull request most recent head 12fe9eb. Consider uploading reports for the commit 12fe9eb to get more accurate results

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #5322      +/-   ##
============================================
- Coverage     61.83%   61.73%   -0.10%
- Complexity     8659     8673      +14
============================================
  Files          1253     1255       +2
  Lines         38193    38340     +147
  Branches       3656     3669      +13
============================================
+ Hits          23618    23671      +53
- Misses        12476    12550      +74
- Partials       2099     2119      +20

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Added remark about CodeUri property on Globals

Currently CodeUri on Globals is not yet supported by CloudFormation package.
Issue #, if available: As i was unaware of this it took me quite a while to figure this out...
Description of changes: Added just as simple comment to point out the fact the property is not yet supported by CloudFormation package.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Makes sense since package is run pre-transformation. Might be a feature request for when SAM CLI implements its own package command @jfuss @sanathkr


Dates not showing submitted value from saved record

Hi,
When you re-display a form that has a date field it doesn't show the date.
To solve this, I have overidden the SubmittedValue in the DateField.cs file:
public override string SubmittedValue
{
	get
	{
		DateTime submittedValue;
		if(DateTime.TryParse(base.SubmittedValue, out submittedValue))
		{
			return submittedValue.ToString("yyyy-MM-dd");
		}
		return base.SubmittedValue;
	}
	protected set
	{
		base.SubmittedValue = value;
	}
}

I'm not sure if this is your prefered approach, but I thought I would share my problem and solution.

Hey @BarryGibson,
Thank you for reporting and for the suggested fix.
It looks like there's an issue with async submission of dates - they append time/timezone info. It's an angular thing that's easily fixable, but before I fix it, I need to know one thing... how do the submitted dates look in your backend? Without your applied fix, that is.

Hi @kjac,
Here is an example:
2016-11-02T13:00:00.000Z
I think you are correct, because the ones collected through a different Sync version of the form don't include the time info.
Thanks
Barry

Cool, apparently it's a feature in angularjs...
I'll have a fix ready soon, today hopefully.
On Nov 5, 2016 9:00 AM, "Barry Gibson"<EMAIL_ADDRESS>wrote:

Hi @kjac https://github.com/kjac,
Here is an example:
2016-11-02T13:00:00.000Z
I think you are correct, because the ones collected through a different
Sync version of the form don't include the time info.
Thanks
Barry
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kjac/FormEditor/issues/91#issuecomment-258597339, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AHD_CoThTxZjoGcEifXAmueug5_Dplrbks5q7DeSgaJpZM4KpZIE
.

@BarryGibson it's fixed... I'll roll out a release soon.


dependencies advise

I got the dependence of Paper 2.6
+--- io.paperdb:paperdb:2.6
|    +--- com.esotericsoftware:kryo:4.0.1
|    |    +--- com.esotericsoftware:reflectasm:1.11.3
|    |    |    --- org.ow2.asm:asm:5.0.4
|    |    +--- com.esotericsoftware:minlog:1.3.0
|    |    --- org.objenesis:objenesis:2.5.1
|    --- de.javakaffee:kryo-serializers:0.40
|         --- com.esotericsoftware:kryo:4.0.0 -> 4.0.1 (*)
and in paperdb's build.gradle
compile 'com.esotericsoftware:kryo:4.0.1'
compile 'de.javakaffee:kryo-serializers:0.40'

Could you change kryo version to 4.0.0

What's the reason?
On Wed, Jul 4, 2018, 07:51 Hiperion<EMAIL_ADDRESS>wrote:

I got the dependence of Paper 2.6
+--- io.paperdb:paperdb:2.6 | +--- com.esotericsoftware:kryo:4.0.1 | |
+--- com.esotericsoftware:reflectasm:1.11.3 | | | ---
org.ow2.asm:asm:5.0.4 | | +--- com.esotericsoftware:minlog:1.3.0 | | ---
org.objenesis:objenesis:2.5.1 | --- de.javakaffee:kryo-serializers:0.40 |
--- com.esotericsoftware:kryo:4.0.0 -> 4.0.1 (*)
and in paperdb's build.gradle
compile 'com.esotericsoftware:kryo:4.0.1' compile
'de.javakaffee:kryo-serializers:0.40'
Could you change kryo version to 4.0.0
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pilgr/Paper/issues/132, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAaNIeR1a1HQGdKa27r6FpX6J4Si1zvwks5uDFfsgaJpZM4VB_ab
.


15 projects added (#11)

@ryscheng could you have a look at the duplicate error, to me it seems that it is caused by op & optimism duplicates which are already in the directory

@ryscheng could you have a look at the duplicate error, to me it seems that it is caused by op & optimism duplicates which are already in the directory

I've reviewed - we changed some names and haven't synced with the database yet. But these look OK!

/validate 157a76f84cf12c9006534f60c06ad17c18f3bcb9


[karma-esm] improve logging of 404 imports

When a test file has 404 imports, the logs in the terminal are not very clear atall. We should see if we can make this clearer to the user.

Not stale


Wasm-Bindgen SIGSEGV error while running Trunk Serve

Describe the Bug

While running trunk serve the server shows error with calling the wasm bindgen and returns a SIGSEGV error.
Architecture:- aarch64
operating system:-  Linux
Steps to Reproduce

Form a Yew Project
Follow the steps given in Yew.rs to make a sample app.
run using trunk serve

I can't reproduce this on x86, so this might be specific to ARM. Unfortunately I don't have an ARM machine to debug this on.

I can't reproduce this on x86, so this might be specific to ARM. Unfortunately I don't have an ARM machine to debug this on.

Can anyone else help?


Unhandled promise rejection

I have a question about what happens when the payload is a promise that is rejected. I see that the middleware correctly dispatches an event with the _REJECTED suffix.
However, I also see a log entry in the console about an unhandled rejection. This is coming from es6.promise. I dont understand why this is considered unhandled, considering that the middleware has dealt with the promise rejection. Is there something I'm supposed to be doing here?

Which version are you using?

3.0.0

+1 for answer

@pathsny @trollknurr The middleware dispatches a rejected action, but this does not actually handle the rejection. My suggestion would be to either (a) create a second middleware, following the promise middleware, that globally handles all errors; or (b) handle the rejection in the action creator, if you are using thunk middleware.
// Example with thunk middleware
export function fooActionCreator() {
  return dispatch => dispatch({
    type: 'FOO_ACTION',
    payload: Promise.reject()
  }).catch(...);
}

The reason this middleware does not handle the rejection is because it takes responsibility for dispatching actions only. It is designed to avoid swallowing errors.
Please let me know if this answers your question! Also, sorry for the delay, but I was engaged with finals at school, relocating to CA for a new job and finishing up other work commitments.

I respectfully disagree with the design decision.

The middleware isnt really swallowing the error since you are dispatching a REJECTED action allowing the reducer to handle the error, so forcing users to add a catch to every promise is a bit silly
If users want to catch the rejected promise, the can still do so by catching the promise and doing what's necessary and then rethrowing so that it can be handled by the middleware.

If you really believe that it's necessary to provide users the option to be able to catch a rejected promise, can I suggest adding an option at middleware choice time to turn this off globally?

forcing users to add a catch to every promise is a bit silly

You are right, it is not a practical solution. The more practical solution is to build global handling into a middleware. In my opinion, however, building global handling built into the promise middleware doesn't make sense. Instead, I would refer to my suggestion in the previous comment: "create a second middleware, following the promise middleware, that globally handles all errors/rejected promises."

If you really believe that it's necessary to provide users the option to be able to catch a rejected promise, can I suggest adding an option at middleware choice time to turn this off globally?

I'm open to exploring changes the middleware, but I don't have time in my schedule now. Addtionally, I don't believe the proposed change makes sense, so I don't want to invest time into it. If you have time and can make some examples, we can go from there.

Create an example explicitly demonstrating the current behavior you wish to avoid
Create an example with the change to the middleware to prevent the behavior

This would give me a better understanding of how you wish to change the middleware.

@pathsny -- what harm comes from an unhandled promise rejection error? The appropriate actions are updated so the app state can react and remain resilient... but what problem would an error in the console cause? I think the errors being propagated are actually useful for debugging -- rather than the promise middleware eating them up (like it used to)

The harm is merely annoyance in development. Unnecessary log spew tends to
lead to blindness towards actual unhandled errors. I tend to think of these
errors as handled because the reducer is informed about them and updates
the state appropriately
On May 30, 2016 12:36, "Thomas"<EMAIL_ADDRESS>wrote:

@pathsny https://github.com/pathsny -- what harm comes from an
unhandled promise rejection error? The appropriate actions are updated so
the app state can react and remain resilient... but what problem would an
error in the console cause? I think the errors being propagated are
actually useful for debugging -- rather than the promise middleware eating
them up (like it used to)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pburtchaell/redux-promise-middleware/issues/75#issuecomment-222545279,
or mute the thread
https://github.com/notifications/unsubscribe/AAHsto2LXa-oswjLveEDahrld8z4-JMvks5qGzwzgaJpZM4Ih6K_
.

@pathsny I would suggest implementing the global middleware if you want to avoid the annoyance. I don't find it very productive to consider this an actual issue with the project though.

I understand. Thanks, I'll look into that
On May 30, 2016 13:35, "Patrick Burtchaell"<EMAIL_ADDRESS>wrote:

@pathsny https://github.com/pathsny I would suggest implementing the
global middleware if you want to avoid the annoyance. I don't find it very
productive to consider this an actual issue with the project though.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pburtchaell/redux-promise-middleware/issues/75#issuecomment-222551585,
or mute the thread
https://github.com/notifications/unsubscribe/AAHstmLsd2wKKCKTkREj7mu42-O_QLe3ks5qG0oSgaJpZM4Ih6K_
.

i also don't understand why this behaviour was changed.
i had to fallback to v2.2.3 where the thrown errors (rejected promises) are handled as expected.
if the promise is rejected, the middleware dispatches the _ERROR action with
error: true
payload: the thrown error/rejected value
IMHO thats the way to go

@DoubleU23 The current version, as do all versions of the middleware, dispatch the rejected action with error: true and the error as the payload. The middleware is not responsible for catching the rejected value. That results in swallowed errors and is not a good practice.


bridge: Smaller fixes to extend the step by step guide

README changes
Small error improvement
Example bridge-consumer pod

Signed-off-by: Fabian Deutsch<EMAIL_ADDRESS>

I need #12 to finalize this update

@fabiand #12 was just merged.

Ready to merge


Whisk doesn't accept project jsonte array

While processing project with whisk if dependency uses jsonte array it doesn't allow to redefine used array
Given:
Project A that uses Project B as whisk filter
Project B uses jsonte templating with array 'jsonteArray'
Project A defines 'jsonteArray'
Expected:
Whisked in Project B uses 'jsonteArray' defined in Project A files
Actual:
Whisked in Project B cannot process 'jsonteArray' into array
Commandline Error:
[INFO]  [jsonte:subfilter3] [ERROR]     An error occurred while processing the template file BP\animation_controllers\templated_file.ac.templ
[INFO]  [jsonte:subfilter3] [+]: Iteration action must evaluate to an array at $template/animation_controllers
New version available!
https://github.com/Bedrock-OSS/regolith/releases/tag/1.1.0
[ERROR] Failed to run profile "default"
[+]: Failed to run filter.
  >> Filter: jsonte
[+]: Failed to run filter.
  >> Filter: the 4th subfilter of "jsonte" filter
[+]: Failed to run exe file.
  >> Path: jsonte.exe
[+]: Failed to run sub process.
[+]: exit status 1

Project B file:
{
  "$template": {
    "format_version": "1.10.0",
    "animation_controllers": {
      "{{#jsonteArray as iteration}}": {
        "controller.animation.templated_{{name}}.file": {
          "initial_state": "default",
          "states": {
            "default": {
              ...
            }
        ....

Issue solved through private conversation and was not related to either whisk or jsonte. The issue was that there were two files with the same name in module and in regolith project. Whisk doesn't merge files, so the array was missing.


feat: add execute_starknet_call entrypoint to accounts

Feature Request
Describe the Feature Request
The "Cairo Precompiles" system includes an EVM <> Cairo interoperability module that allows you to simply call Cairo contracts from your EVM contracts, using our CairoLib library in Solidity.
However, all calls made this way will be executed with caller_address = kakarot_address.
In the context of synchronous token bridges, or any use cases that relies on the STARKNET address of an account for arbitrary behavior, we want to be able to keep the context about who actually performs the operation.
Therefore, we want to build a system in which:

An EVM EOA calls an EVM contract
The EVM contract calls a Cairo Contract
The Cairo contract has the Starknet Address corresponding to the EVM EOA as the caller_address

Possible solution
Add an execute_starknet_call entrypoint to the account, that takes as input a contract_address, selector, calldata, and calls the corresponding contract using a low-level call_contract_syscall.
The starknet return_data of that call will be propagated back to the Kakarot precompile system.

See #1239


Calculating ratio of products without overflow/underflow

Consider, the following MATLAB code:
prod( 1 - (2:10000) )/prod( 1 - (3:10001))
ans =
   NaN

which happens due to overflow and underflow issues. (The denominator and numerator are both equally huge.) Instead, it is better to do the mathematically equivalent calculation:
prod( (1 - (2:10000) ) ./ ( 1 - (3:10001) ) )
ans =
     9.999999999999994e-05

Hence, why I did this:
https://github.com/cgyurgyik/EigenvectorsFromEigenvalues/blob/66d594c55375ff7e4d6cd76df174fe4b78a0694b/GetEigenvectorFromEigenvalues.m#L29

LGTM.


No "invariant" culture?

What was the motivation for dropping the "invariant" culture?  (commit 099e13a73a5236354aeed5c93919765fc9d20283)
Even if not being set as the default culture, I think it would be useful to maintain symmetry with  for example .NET that exposes it.
// Fredrik Blomqvist

When syncing locale settings with server-side you might run into the "invariant" locale if you use the .NET platform.
That was my main motivation, sure you can simply choose some other format. But for practical, pragmatic symmetry, following the lead of one of the major platforms is a good thing I'd say.
(Wasn't this a Microsoft sponsored project btw? ;) )

No part of jQuery or jQuery UI targets support for a single specific back-end platform. As of today, I don't see how the use case you mention aligns with any goals of this project. The goal as I see it is to take JavaScript Date objects and JavaScript numbers and format them as culture-aware strings. Also to take strings and parse them into JavaScript Date objects and JavaScript numbers with awareness of the cultures therein. In both of these cases we're talking about real cultures, countries and languages that people use in the world. Your suggestion amounts to using a computer culture so that computers can always communicate without issue. That's a solved problem, and out of scope for this library. Use JavaScript or JSON or use English or use any number of appropriate standards such as ISO 8601.
(I know you ;)-winked but it's not even funny to suggest Microsoft or any sponsor should be able to unduly influence a free and open source project. The jQuery Project serves its community, developers that use jQuery, not any company directly)

I did notice that an invariant-culture was part of an earlier release (and I didn't find a motivation why it was removed). If the server reports "invariant", I could simply map to it directly. I thought that was handy and was casting a vote to re-add it.
Similarily to how it's common practice to be pragmatic in strictness when parsing so called, "ISO timestamps" for example.
This is not a "blocker issue", nice to have, I'll manage.

An example of where this would be particularly nice is for a distributed system, where a given collation (even if it isn't comprehensive) could be depended on to be present and consistent.  This is a fairly common need.


Fix the refresh for the workflows list after an add/remove/update

Fixes the refresh for the workflows list after an add/remove/update
Fixes the content loader display while data is loading - (workflows and requests)
Fixes the searchbox styling:

Codecov Report

Merging #58 into master will decrease coverage by 0.13%.
The diff coverage is 34.61%.

@@            Coverage Diff             @@
##           master      #58      +/-   ##
==========================================
- Coverage   38.95%   38.81%   -0.14%
==========================================
  Files          53       54       +1
  Lines         516      523       +7
  Branches       60       59       -1
==========================================
+ Hits          201      203       +2
- Misses        270      278       +8
+ Partials       45       42       -3

Impacted Files
Coverage Δ

...smart-components/workflow/remove-workflow-modal.js
37.5% <ø> (ø)
:arrow_up:

...ntational-components/shared/filter-toolbar-item.js
100% <ø> (ø)
:arrow_up:

...entational-components/shared/table-toolbar-view.js
9.67% <0%> (+0.58%)
:arrow_up:

...omponents/workflow/add-stages/add-stages-wizard.js
27.77% <0%> (ø)
:arrow_up:

...rc/presentational-components/shared/top-toolbar.js
71.42% <100%> (ø)
:arrow_up:

src/helpers/shared/pagination.js
100% <100%> (ø)

src/smart-components/app-tabs/app-tabs.js
33.33% <100%> (-9.53%)
:arrow_down:

src/smart-components/workflow/workflows.js
21.87% <14.28%> (-3.13%)
:arrow_down:

src/smart-components/request/requests.js
24% <20%> (-2.09%)
:arrow_down:

...ntational-components/shared/loader-placeholders.js
55% <50%> (-0.56%)
:arrow_down:

... and 1 more

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 4d9e023...51e1b7a. Read the comment docs.


Images and icons not showing p.2

Hello, I continue to face the problem reported in onetimesecret/onetimesecret#261:

and when I remove the volume block in docker-compose.yaml, solution proposed in onetimesecret/onetimesecret#261 , I get the following error:

There's something I haven't noticed here yet, could anyone help me with this? Thank you very much in advance

I really appreciate the help, but I ended up getting the images and icons to be displayed only by removing the volume block from the service app, in the v0.13.0 branch, and running: docker compose up -d


Improved loading of the Website

Description 📝

Fixes/Closes: #485
Earlier the images are in png/jpg format which requires more space and loading time
I go through each and every folder and changed all images to webp without breaking any image

Changes 💬

High-level overview of the changes introduced.
Step-by-step breakdown of the implementation, if applicable.

Screenshots (if applicable)
Loading Time difference (images)
1 Original

2 Updated

Hey @PiyushKalyanpy I removed the package-lock.json file

Please provide level2 or level3 as it require changes in so many files
And also i have to go through each and every files to change around 150+ images

I will add the label once I merge the pull request.

Hey @PiyushKalyanpy I removed the package-lock.json file

Please provide level2 or level3 as it require changes in so many files
And also i have to go through each and every files to change around 150+ images

Please create a new pr without that file, your pr should not look like (more than 8000 deletions) you can refer the discussion tab


Server group label to base config

A custom label won't be needed as we will go with the ecs organization name instead


Refactor PSF subpackage

In GitLab by @wtbarnes on Aug 30, 2019, 21:55
The psf subpackage needs a refactor. At a minimum, it should include a function for calculating the point spread function and a function that takes in an AIA map and returns an AIA map that has been deconvolved with the PSF. @markcheung may have some more requirements in mind.

In GitLab by @wtbarnes on Sep 12, 2019, 21:15
As part of this, we should also aim to remove the all of the .npy files in aiapy/psf/data. If they are really needed, we should either include functions to recalculate this data or provide some method for downloading it from a remote location.

In GitLab by @nshirman on Sep 3, 2019, 09:03
aia_psf.py

In GitLab by @wtbarnes on Aug 30, 2019, 21:55
changed due date to October 04, 2019

In GitLab by @wtbarnes on Oct 4, 2019, 20:33
closed

In GitLab by @wtbarnes on Oct 4, 2019, 20:33
This issue has really turned into many smaller ones:

[x] Implement PSF calculation (see !19)
[ ] Test PSF calculation code (see #28)
[ ] Clean out old PSF code and remove old data files in psf/data
[ ] Merge PSF deconvolution code (from @markcheung)

I'm going to close this one and open individual issues for the pending items here.


[benchmark] update to version 1.7.1

Update Google Benchmark 1.7.1

What does your PR fix?
Fixes #27673

Which triplets are supported/not supported? Have you updated the CI baseline?
Same as before. No

Does your PR follow the maintainer guide?

Yes

Thanks for the update!


Angular 5 testing broken

Hi,
Thanks for the great box.  However, the most recent update broke our tests for our Angular 5 containers.  When I try to revert to the 1.7.4 tag, I get this error:
session not created exception: Chrome version must be >= 66.0.3359.0
Is it still possible to test Angular 5 applications using any version of this box?
Thanks,
froodley

What is the error with the 6.1.1 tag?

Do you have a clean node_modules folder and do an npm install inside the container? This error might be caused by mixed dependencies

I was able to get things going by tying to the 6.0.8 tag.  The culprit is the upgrade in trion/ng-cli from node:8-stretch to node:stretch.  The change from node 8 to node 10 broke a number of my dependencies.

Could you elaborate which dependencies I affected please? Did removing the modules Folder and clean reinstall  mitigate the problem?

I can not reproduce the issue due to missing information, closing.


Cannot list iODBC drivers: Buffer must contain terminating zero

Getting Buffer must contain terminating zero. when trying to list drivers with the iodbc feature flag enabled on mac.
Minimal repro:
Step 1: enable the iodbc feature:
odbc-api = { version = "5.0.0", features = ["iodbc"] }

Step 2: run this code:
use odbc_api::Environment;

fn main() {
    let env = Environment::new().unwrap();
    let drivers = env.drivers();
    println!("Drivers: {:?}", drivers);
}

You'll get this error
thread 'main' panicked at /Users/matthewgapp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/odbc-api-5.0.0/src/handles/sql_char.rs:63:10:
Buffer must contain terminating zero.
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::panicking::panic_display
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:168:5
   3: core::panicking::panic_str
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:152:5
   4: core::option::expect_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/option.rs:1988:5
   5: core::option::Option<T>::expect
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/option.rs:898:21
   6: odbc_api::handles::sql_char::sz_to_utf8
             at /Users/matthewgapp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/odbc-api-5.0.0/src/handles/sql_char.rs:59:15
   7: odbc_api::handles::sql_char::SzBuffer::to_utf8
             at /Users/matthewgapp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/odbc-api-5.0.0/src/handles/sql_char.rs:174:9
   8: odbc_api::environment::Environment::drivers
             at /Users/matthewgapp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/odbc-api-5.0.0/src/environment.rs:520:35
   9: odbc_api_driver_bug_test::main
             at ./src/main.rs:5:19
  10: core::ops::function::FnOnce::call_once
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Some background: I'm trying to get iodbc to work on my mac because we need to connect to snowflake, which doesn't support unixodbc on mac. So downstream, I'm enabling the iodbc feature flag on. Would be very helpful to list out the drivers.

This is a Bug in iodbc. It is with the implementation of SQLDrivers. In this case the pointer to the buffer passed to SQLDrivers did not as commended by the ODBC standard contain a zero terminated string after the call.
Nothing odbc-api can do about this. If you find an upstream issue of iodbc we can track here, or create one in their GitHub and want to link it here I would keep this issue open in order to do so. Otherwise I would close the issue.

This is a Bug in iodbc. It is with the implementation of SQLDrivers. In this case the pointer to the buffer passed to SQLDrivers did not as commended by the ODBC standard contain a zero terminated string after the call.
Nothing odbc-api can do about this. If you find an upstream issue of iodbc we can track here, or create one in their GitHub and want to link it here I would keep this issue open in order to do so. Otherwise I would close the issue.

Thank you for looking into it. I didn't find an existing issue so I created a new one https://github.com/openlink/iODBC/issues/98.

thanks


Adding Themer to apps list

Hello! I'd like to add this app to the app registry at atom.electron.io/apps, since it is built on Electron. ❤
An introduction to the app can be found here: https://themer.mjswensen.com

🌈


[MWPW-134906] - Pricing Summary Fix

Changes:

Added uniform max-with for p
Align-item: stretch the Container

Test URLs:

Before: https://main--express--adobecom.hlx.page/fr/express/
After: https://pricing-summary-fix--express--adobecom.hlx.page/fr/express/

Codecov Report

Merging #171 (d5af02c) into stage (028306e) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##            stage     #171   +/-   ##
=======================================
  Coverage   35.37%   35.37%
=======================================
  Files          27       27
  Lines        9489     9489
=======================================
  Hits         3357     3357
  Misses       6132     6132

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Adding a do not merge label as Abhinav is going through some extra requirement with Nathan at the moment. Might want to consolidate on this branch.


Feat/add cluster

Instrumented test can be found in the following link:

https://github.com/fer1592/k8s-android-console/tree/feat/add-cluster/androidTest-results/15-05-2022
Path: androidTest-results/15-05-2022

@AndresGarciaSobrado91 approve?

Not approved?

wachin jaja sorry ni abro mi mail ultimamente


Request render mode: 3dtile request culling

Part of the fixes in https://github.com/AnalyticalGraphicsInc/cesium/pull/7787 disables some request culling features(camera movement culling, time gating culling) when requestRenderMode is on. Ideally we want to keep those features enabled.
Right now since those features are per tileset it requires digging through the primitive collection in scene and seeing if the features are enabled on any 3dtileset as well as looking at the time gating settings to know which frame to take another peek to see if there are any pending requests suppressed previously.
For time gating, if we have a bool that is true until the timer goes off then we could have a situation where it's constantly rendering and not saving power. For example, if you keep moving the camera just before the idle timer goes off you will just keep on rendering and never have a period of rest. So it's preferable to have something like a timeout to wake it up again and take another look.
Unless we still think there's real value in having these features per tileset we should probably move them into a new component and attach it to some higher level object like viewer/scene/framestate/etc.

Talking at lunch, another possible solution is to perform the render traversal (so that it happens every frame to check for new requests) which should cause should render to happen when it needs to. This is probably the lightest weight solution.


Tests for hot-swappable numpy backends, demo use

Adding a jax backend option in katsu.katsu_math.py via the BackendShim class, and revamping katsu.mueller functions to handle Jax’s sharp bits would be a great addition for differentiable Mueller calculus.
An example on how to add compatibility to functions in katsu.mueller with a simplified version of the linear_polarizer function
def linear_polarizer(a, shape=None):
    “""docstring
    """

    # returns array of zeros
    M = _empty_mueller(shape)

    ones = np.ones_like(a)
    cos2a = np.cos(2 * a)
    sin2a = np.sin(2 * a)

    # fist row
    if np.__name__ == ‘jax.numpy’:
        M.at[..., 0, 0].set(ones)

    else:
        M[..., 0, 0] = ones

    return M

Heres the link to all of Jax’s sharp bits

Also will need to add a set_backend_to_jax function, much like the cupy one:
https://github.com/Jashcraf/katsu/blob/df77f5a631a9b858c1011b810f67422e051fa387/katsu/katsu_math.py#L31-L37


NTR: Gestational diabetes, by maternal report

Term Label [required]
Gestational diabetes, by maternal report
Synonyms [optional]
Definition [required except for organism name]
Whether the mother reported having gestational diabetes
Suggested Parent Term [required]
Pregnancy
Examples [optional]
Contributor [optional]
If you would like to be a contributor of the term or anyone you think that contributes to the term, such as label, definition, please provide the name and ORCID ID.
Requester [optional]
microbiomeDB

Reserved ID: EUPATH_0009360


Handling of validation errors messages that come as list

See the screenshot, the error from the server comes as a list, it should be properly formatted.

@avoinea

@tiberiuichim @avelino @sneridagh I think it makes no sense to show the http response code number (400) to the end user. Do you agree?

{
  "message": "[{'message': 'Invalid image file', 'field': 'preview_image', 'error': 'ValidationError'}]",
  "traceback": [
    "File \"/home/user/project/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py\", line 172, in transaction_pubevents",
    "    yield",
    "",
    "  File \"/home/user/project/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py\", line 381, in publish_module",
    "    response = _publish(request, new_mod_info)",
    "               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
    "",
    "  File \"/home/user/project/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py\", line 276, in publish",
    "    result = mapply(obj,",
    "             ^^^^^^^^^^^",
    "",
    "  File \"/home/user/project/lib/python3.11/site-packages/ZPublisher/mapply.py\", line 85, in mapply",
    "    return debug(object, args, context)",
    "           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
    "",
    "  File \"/home/user/project/lib/python3.11/site-packages/ZPublisher/WSGIPublisher.py\", line 68, in call_object",
    "    return obj(*args)",
    "           ^^^^^^^^^^",
    "",
    "  File \"/home/user/project/lib/python3.11/site-packages/plone/rest/service.py\", line 22, in __call__",
    "    return self.render()",
    "           ^^^^^^^^^^^^^",
    "",
    "  File \"/home/user/project/lib/python3.11/site-packages/plone/restapi/services/__init__.py\", line 19, in render",
    "    content = self.reply()",
    "              ^^^^^^^^^^^^",
    "",
    "  File \"/home/user/project/lib/python3.11/site-packages/plone/restapi/services/content/add.py\", line 79, in reply",
    "    deserializer(validate_all=True, create=True)",
    "",
    "  File \"/home/user/project/lib/python3.11/site-packages/plone/restapi/deserializer/dxcontent.py\", line 60, in __call__",
    "    raise BadRequest(errors)"
  ],
  "type": "BadRequest"
}

Would we use eval in the message key to get an array from the string?

@wesleybl I think it should be passed down as a JSON, so that we don't need to do an eval.

@tiberiuichim do you mean plone.restapi already returns the message key as an array instead of a string? Wouldn't that be a big change to plone.restapi? Changing the interface?
Today, Volto already "extracts the array" from the message, to show the error in the correct field. See:

See the message "Invalid image file" in the Preview image field. Re-showing "Invalid image file" in the popup seems redundant to me. We would also have to concatenate the errors from all the fields. So the lower error popup could just show "Some error occurred". This is basically what Classic Plone does. Does this look good to you?

@tiberiuichim @sneridagh @davisagli do you think it is really necessary to show the error code in the message? I don't see the need for that. This doesn't mean anything to a content manager.

I think it should be passed down as a JSON, so that we don't need to do an eval.

@tiberiuichim  I tried using JSON.parse but it didn't work:
> m = "[{'message': 'Invalid image file', 'field': 'preview_image', 'error': 'ValidationError'}]"
"[{'message': 'Invalid image file', 'field': 'preview_image', 'error': 'ValidationError'}]"
> JSON.parse(m);
Uncaught SyntaxError: Expected property name or '}' in JSON at position 2

Could we use eval?

@wesleybl No, in this case the error message shown should be generic, don't try to show the details. Let the website developers debug the problems, they'll know how to look into the error message returned.

@tiberiuichim the message must be generic for constraint validation errors, which are associated with fields, and are shown in the form field. In these cases, the toast should only display "There was an error."
But we also have invariant validations, which are "form validations", not associated with any specific field. Validation messages for these invariants must be displayed in toast.
To know if the error is a constraint or an invariant, we must check if we have the "key" field in the error message. Constraint errors have the field key in the error message. Then we need to parse the message to transform the "string that matches a list" into a real list.

@wesleybl Ideally there's an interface for the error message and the error is passed as JSON, rather then as a string.

Ideally there's an interface for the error message and the error is passed as JSON, rather then as a string.

@tiberiuichim  the error message arrives as a string because it is converted to a string here:
https://github.com/plone/plone.rest/blob/8fdc78cd1420898d6ac954b5946f725ab63b33b3/src/plone/rest/errors.py#L60
Should we change this so that it arrives as an array?

@tiberiuichim I created the issue https://github.com/plone/plone.rest/issues/176.


doIfValidatableResponseImpl in Kotlin extensions tries to access private field responseSpec

When using the Kotlin extension of 4.1.2 (or -SNAPSHOT) with rest-assured-all and Kotlin 1.3.50 and doing:
    val response =
      Given {
        redirects().follow(false)
      } When {
        get(loginUrl)
      } Then {
        statusCode(302)
      } Extract {
        response()
      }

I get a
class io.restassured.module.kotlin.extensions.RestAssuredKotlinExtensionsKt$doIfValidatableResponseImpl$1 tried to access private field io.restassured.internal.ValidatableResponseOptionsImpl.responseSpec (io.restassured.module.kotlin.extensions.RestAssuredKotlinExtensionsKt$doIfValidatableResponseImpl$1 and io.restassured.internal.ValidatableResponseOptionsImpl are in unnamed module of loader 'app')

Because RestAssuredKotlinExtensions.kt#L80 is:
    if (resp is ValidatableResponseImpl) {
        fn(resp.responseSpec)
    }

And responseSpec does indeed seem to be a private field.
Should resp.responseSpec be accessed in this way? Or is this a dependency mismatch on my end?
Thank you!

This was indeed a dependency mismatch caused by rest-assured:3.3.0 being pulled in by another library. My dependency include of rest-assured-all:4.1.2 was therefore ignored, and the solution was to also include rest-assured:4.1.2 explicitly.
Thanks for the fantastic testing library!

I am having the same issue. However, it is not clear where rest-assured:3.3.0 is being pulled in from. mvn dependency:tree does not show any dependencies pulling in version 3.3.0.

I am having the same issue. However, it is not clear where rest-assured:3.3.0 is being pulled in from. mvn dependency:tree does not show any dependencies pulling in version 3.3.0.


Improvements to My Activity/Claims view

https://www.figma.com/file/ZXWQKeRBLTxb01TiawA3RB/MDAO-App-Design-Feedback?node-id=6-146&t=ToTSpZ6YitjMhhlz-0

The current My Activity page shows a list of actions that have taken place, but it does not give actionable insights.
As an analyst, I want to know if I have claimed a challenge but have not yet submitted, so that I meet my commitments and avoid slashing.
As a reviewer, I want to know if I have claimed reviews but have not done as many as I committed to, so that I avoid slashing.
As a sponsor, I want to know if the challenge I launched is complete, so that I can find the best answer.

Some of this may be covered by designs in https://github.com/orgs/MetricsDAO/projects/5?pane=issue&itemId=25579305
These include filters that allow participants to find what they've committed to


Remove option screw-ie8 from build.sh uglify command

npm run build currently fails due to an uglify option that is no longer supported.
The option screw-ie8 is no longer supported with 3.0.x version of uglify. It has been superseded by the option ie8 which has the opposite effect so does not need to be specified.

Thanks @mjvanleeuwen. If it's failing, is it exiting with a non-zero exit code? I would have expected set -e to make this fail loudly in that case, even without pipefail set.

@wincent Yes it was failing with an exit code of 1. Here is an extract from the console output:
src/utility/onHasCompletion.js -> dist/utility/onHasCompletion.js
Bundling graphiql.js...
Bundling graphiql.min.js...
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build: `. ./resources/build.sh`
npm ERR! Exit status 1

It was failing on this line
browserify -g browserify-shim -g uglifyify -s GraphiQL dist/index.js 2> /dev/null | uglifyjs -c --screw-ie8 > graphiql.min.js 2> /dev/null
but because the error out is piped to null, the error reported by uglify was lost.
When I removed the 2> /dev/null pipes, it printed this to the console:
Bundling graphiql.min.js...

  error: unknown option `--screw-ie8'

npm ERR! code ELIFECYCLE

Would be nice to catch this in Travis CI rather than on running build.sh manually.


Fix broken variant call of Vector3.snapped

Fixes should be made on the master branch first. Then we cherrypick the relevant ones for 3.0.

Sorry about that. I will have to reopen the PR.


Refs #1004. Logsitter script and deployment instructions

Created logsitter script and updated README with supervisor deployment instructions. Refs #1004 (as a workaround, not a fix).  Monitors apache log for Oracle error and restarts as needed.

Good catch, I forgot to update this
On Nov 13, 2017 7:18 PM, "Justin Littman"<EMAIL_ADDRESS>wrote:

@justinlittman commented on this pull request.
In scripts/logsitter.conf
https://github.com/gwu-libraries/launchpad/pull/1209#discussion_r150705107
:

@@ -0,0 +1,10 @@
+# Place in /etc/supervisor/conf.d
+# Then restart supervisor with:  sudo service supervisor restart
+#
+[program:logsitter]
+command=/usr/bin/python /launchpad/launchpad/scripts/logsitter.py
+directory=/home/kerchner

Not sure this is the best setting for directory.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/gwu-libraries/launchpad/pull/1209#pullrequestreview-76294830,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADSpJ0FKFae0U-F7VfoO05Qfhk5jYf-Uks5s2NxTgaJpZM4Qcabv
.

Code review complete @kerchner. Good to merge.


Parallelize Heapster Core

Allow the Heapster core to fetch and export multiple streams simultaneously. This should also entail work to allow a single stream to fall behind and be robust to node failures.

For InfluxDB sink I suggest to use Go channels and a separate flusher goroutine together with GOMAXPROCS.
https://github.com/arkadijs/heapster/blob/master/sinks/influxdb.go#L209

This has been fixed on head. The sinks themselves do not run in parallel yet.


Scaling leaves links not accessible in Firefox

See e.g. http://medikoo.com/asynchronous-javascript-interfaces/?notes
It uses bespoke-scale, links are clickable on Google Chrome, but are not on Firefox (they're prefectly accessible when bespoke-scale is not used).

Try adding the following CSS rule:
.bespoke-active {
  z-index: 1
}

Currently, the active slide is not on top, so it's not receiving pointer events properly.
Once I made this change, the links started working, but the focal point was still off slightly. That's probably some sort of bug in Firefox.

Upon further studying, I realize that the problem isn't with Firefox, but rather with the "transform" option. When a wrapper is placed around each slide, the stacking order is such that the wrapper around the last slide covers the active slide, preventing it from getting focus. What we need is for a CSS class to be added to the wrapper of the current slide when it is active so that we can move it up in the stacking order.

I think I found a solution. The trick is to set the visibility on the wrapper element to hidden, the set the visibility back to visible on the slide elements.
.bespoke-scale-parent {
  visibility: hidden;
}

.bespoke-slide {
  visibility: visible;
}

I tried to play with z-index values, but the only way that can work is if we can set the z-index of the wrapper around the current slide different from the z-index of the wrapper around subsequent slides.
Even in my tests outside of bespoke, when you wrap each element, then stack them, you can't get the child element of the current wrapper to layer above the wrappers that follow in the document only using z-index. The behavior seems very specific (and non-intuitive).
Setting the visibility definitely works, though.

I want to point out that you also need to disable pointer events on inactive slides.
.bespoke-inactive {
  pointer-events: none;
}

If the bespoke-scale-active class could be added to the wrapper element, then we'd also be able to use the pointer-event trick there as well (instead of the visibility trick). Something like:
.bespoke-scale-parent {
  pointer-events: none;
}

.bespoke-scale-parent.bespoke-scale-active {
  pointer-events: auto;
}

However, there's currently know what to know which wrapper element wraps the active slide.

I'll also mention that #4 resolves this problem in a different way by only using a single wrapper element, getting us out of this business of having absolutely positioned wrapper elements sitting on top of the current slide.

I'd almost say that it would be nice if pointer-events was set on the active slide (and any wrapper around it) explicitly by bespoke...maybe a worthwhile plugin (bespoke-pointer). It seems a bit fragile to depend on the theme to get this right. We could also consider making it part of the bespoke-classes. I'm not quite sure what the right answer is yet.

I figured out another, perhaps cleaner way, to handle the focus (thanks to Mark's presentations).
The key is to disable pointer events from the presentation parent element, then only reenable them on the active element. Controlling the pointer events seems to have the same effect as turning off the visibility.
.bespoke-parent {
  pointer-events: none;
}

.bespoke-active {
  pointer-events: auto;
}

The pointer-events property will be inherited by all slide wrapper elements and therefore will not steal the focus of the mouse.

I've discovered one downside of using pointer-events: none on the parent element. If you have a plugin that requires the parent element to scroll (e.g, an overview plugin), then you won't be able to scroll in Chrome (or IE, apparently) because the scrollbar won't receive any events. In that case, the visibility trick is a slighly a cleaner solution.

Here's the final solution I came up with which seems to work quite well.
.bespoke-parent > *:not(.bespoke-slide) {
  pointer-events: none;
}

.bespoke-active {
  pointer-events: auto;
}

The first rule catches all wrapper elements around the slides (since the property inherits).


SQL tools to tasks configuration (MySQL)

Turn tools into database tasks
Table Repair
Table Analyze
Table Optimize
Table Truncate

Please see small issues:
1 task is not displayed in Database task panel if Group tasks by category is enabled in Database task panel

2 two popup task notifications appear after successful task execution (the same in Navigator tree tools)

3 in case of unsuccessful run, Success status is displayed

4 a whole schema can be selected, but cannot be analized, repaired,truncated

5 tables are not checked if the tables folder has been checked

6 up-down arrows of first/last objects in the list do not change the status to active / inactive when the object are moved to the opposite position  (the same in Navigator tree tools)

7 Should a task show status after execution like tools in DB NAvigator tree?

Checked. New ticket for cl. 2 will be created


No logs

TLDR: despite "--logging.level.zipkin2=TRACE" I get no logs.
The server is launched with "java -jar zipkin-server-2.16.2-exec.jar --logging.level.zipkin2=TRACE" as described in https://github.com/openzipkin/zipkin/tree/master/zipkin-server . The standard output displays some logs during Zipkin server startup, but after that nothing.
Then I feed the server with traces and successfully display them in the Lens UI, but the standard outup does not display any additional log.

@sebastianhaberey Looking at the latest code, it does seem QUERY_LOG_LEVEL does not do anything. We probably missed updating the README when that change was made. Would you mind opening a separate issue or a pull request about that?
Depending on what kind of logs you are looking for, perhaps https://github.com/openzipkin/zipkin/issues/2680 is what you want.


Changed Test file, included statement.

Coverage remained the same at 100.0% when pulling 122a13cc17733b0e8ff0c51e606d59894cf2689a on krmotwani:edit_test into<PHONE_NUMBER>bf4d9f49e1aba080c71de18dad50e2 on cs207-group11:master.


Document title not being updated when navigating via popover

Ionic version:  (check one with "x")
[ ] 1.x
[x ] 2.x
I'm submitting a ...  (check one with "x")
[x ] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
The document title is not updated when navigating back from a page that has been opened via a popover.
Expected behavior:
The document title shows the same value as in the navbar.
Steps to reproduce:

Open the conference app in a browser, e.g. from here http://pwa.ionic.io/ionic-conference-app/www/
Go to About
Open Popover
Go to Support
Click back button
Now you're back on the About page, but the document title (in the browser tab) is still Support

Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3
Ionic CLI Version: 2.1.13
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.45
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v5.12.0
Xcode version: Not installed

I can reproduce this issue with steps above

I'm not sure if I was clear enough: I'm talking about the document title shown in the browser tab, not the ion-title in the navbar, see screenshot below.

This is a general issue about navigating back from a page to another, where the title remains the same and does not get updated with the new page. So if you navigate like list > view > edit, then navigate back, the title remains the one from the edit page.
Still present in ionic 3.7.1


Cleanup Helm and Kustomize renderers

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)

/test all

/retest-required

/test pull-lifecycle-mgr-lint

/test pull-lifecycle-mgr-tests


Lint errors in connectionManager.spec.ts

CI loop is failing with the following lint errors. Looks like these tests were added in https://github.com/microsoft/FluidFramework/pull/8964.
@fluidframework/container-loader: /mnt/vss/_work/1/s/packages/loader/container-loader/src/test/connectionManager.spec.ts
@fluidframework/container-loader:    72:15  error  Multiple spaces found before '('  no-multi-spaces
@fluidframework/container-loader:    74:15  error  Multiple spaces found before '('  no-multi-spaces
@fluidframework/container-loader:    86:15  error  Multiple spaces found before '('  no-multi-spaces
@fluidframework/container-loader:    90:15  error  Multiple spaces found before '('  no-multi-spaces
@fluidframework/container-loader:   100:15  error  Multiple spaces found before '('  no-multi-spaces
@fluidframework/container-loader:   104:15  error  Multiple spaces found before '('  no-multi-spaces

@markfields FYI

@tylerbutler - Looks like your lint changes and my PR conflicted.  Your checks must have run before my PR merged. https://dev.azure.com/fluidframework/internal/_build?definitionId=12
I can make a quick fix

@markfields Sorry about that! Please let me know if I can help with anything.


Use this.emitFile to output css

https://github.com/rollup/rollup-plugin-svelte/blob/f8e8fa15e5cdf87847a2b02a5471f9f4481f8edb/index.js#L297
Saw this comment, I have been using this and I think it's relevant to that comment.
generateBundle() {
  this.emitFile({type: 'asset', fileName: 'some-file.scss', source: sourceCode});
},

More info here, https://rollupjs.org/guide/en/#thisemitfileemittedfile-emittedchunk--emittedasset--string hope this helps.

Have made a PR https://github.com/rollup/rollup-plugin-svelte/pull/72

#72 seems to make the CssWriter.write() function emit files from rollup instead of writing them directly to the filesystem, but I'd like to clarify exactly what the behavior should be.
If the files get emitted instead of written directly, I think it might change the path they are written to, which would change the behavior of existing code which means pushing a new major version. For example, if I had an output config like { dir: 'dist' } and a css option like css => css.write('dist/styles.css'). Under the old system styles would get written to dist/styles.css but with the new emitter they would instead be written to dist/dist/styles.css
Maybe we should leave the CssWriter.write method's behavior the same and add a method like emit so people can opt into the new way of doing things. We could deprecate .write and remove it at the next major version (unless there's a good reason to keep it). An option on emit that lets you choose whether to bundle the CSS or emit individual files would be good as well.


subnet/kube: Handle missed node deletions

Description
If the node controller misses the deletion of a node the DeltaFIFO will insert a tombstone object (DeletedFinalStateUnknown) with the last known view of the object. The current code will panic due to a failed type assertion to v1.Node.
This PR includes a fix for this panic by checking the result of the type assertion and attempting to extract the last know state from the tombstone.
Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

None required

Sorry, I didn't spot this when I merged #1000