Declaratively Trust CA Certificates

Declaratively Trust CA Certificates

As a developer, I'd love it if I could declaratively tell dagger/buildkit that I want to trust my organization's private CA cert, so that, for example, actions like docker.#Pull and docker.#Push work with our internal registry.

Currently, a buildkit instance must be created manually with the private CA cert(s) mounted into it.

E.g. docker run --net=host -d --restart always -v $PWD/myCA-cert.pem:/etc/ssl/certs/myCA-cert.pem --name dagger-buildkitd --privileged moby/buildkit:v0.10.0

It would be an awesome DX improvement if we could just provide this as a config setting, e.g. in an environment variable like DAGGER_TRUSTED_CA_CERTS=/path/to/myCA-cert.pem
See #2016

Originally posted by @qjcg in https://github.com/dagger/dagger/discussions/2052#discussioncomment-2514744

I think this could integrate nicely with step-ca, perhaps even build a dagger-ca into dagger itself. Also allow users to use their existing private CA to sign dagger-ca, and automate mTLS everywhere

None of the above of course would address the need (3.) to trust additional CA inside of #Exec, or provide client certs for communication with other services (again, inside #Exec), though I would argue that the ability to mount buildkit secrets with #Exec should be enough, given how specialized the use-case is for these.

Tagging @grouville (since he has been working on BUILDKIT_CA_CERTS)

I'm an early adopter of the Node.JS SDK (thank you, by the way) and support for additional CA certs is something I'm really looking forward to.
I use private image registries with not-widely-trusted CAs (e.g. internal organization CAs) and I need a way to get dagger's buildkit to trust these. I can't seem to find an escape hatch at the moment.

@sipsma can we close this as duplicate of #4217 ?

@shykes Yes good call, #4217  is the more "modern" 0.3 incantation of the same underlying issue, makes sense to track there now. Closing this one


Building the client

Hi.
I would like to build the client with make on MSYS2 but no target and makefile associated. I installed prerequisites after updating MSYS2, make, ninja, mingw-w64-i686-libusb, mingw-w64-i686-sqlite3, mingw-w64-i686-zlib, mingw-w64-i686-gcc for Windows with MSYS2 but if an executive fluxengine shoud have been created, how and what is that ? Otherwise, Cypress board has been flashed with FluxEngine.hex.

It should just be a matter of running make and everything should work --- the build script used by the continuous integration system is here: https://github.com/davidgiven/fluxengine/blob/master/.github/workflows/ccpp.yml
Can you post a build log?

On Windows 10 I have set up msys2-x86_64-20210419, updating it (pacman -Syu, -Su), and using pacman -S to install all packages from make to ...gcc, takes some while, finally the result :
"$ make
make: *** No targets specified and no makefile found.  Stop."
on MSYS and MinGW 64bits command prompts...it is writtehn mingw32 is necessary but it comes with MYS2, right ? By the way can one cut parts of the CY8CKIT board after flashing it ?

Sorry, thought I'd replied to this but apparently I hadn't...
This may be a stupid question, but it looks like you're not in the right directory when running make, as it says it can't find the Makefile; could you do a pwd and a ls to make sure you're in the right place?

Sure, but what is the FluxEngine directory to cd or where is the makefile to find ? I have the PSoC Programmer, FluxEngine.cydsn file used with it, and 3 programs from Fluxengine.zip unzipped also in MSYS2. What else is needed or is it something to do related to "actions/checkout@v1" in the script ?

It depends where you put the source when you unzipped it! Did you by any chance download the Windows binary package instead, which doesn't contain any source code?

Things are not so bad as I suceeded to setup a 5,25 drive on traditionnal 34 pins nappe, takes some times though (jumpers to set up) and I can hear the good sound on those drives reading effectively 5,25 floppies. That being said, such expert level with code and so on is pretty much advanced but FC5025 being not shipped outside US and Greasewheazzle sold out by now, difficult to see another cheap solution to set up with an USB. I was wondering if it could be of use to install again MSYS 2 in another directory than C:/msys64 and look where is going "make ninja mingw-w64-i686-libusb mingw-w64-i686-sqlite3 mingw-w64-i686-zlib mingw-w64-cross-gcc zip" after command pacman -S ? What is the source you are talking to ? The only zipped folder was FluxEngine.zip, right ? Is it needed to put those files in a special directory ? I put them simply in C:/msys64

The source code is in the sourcecode.zip file here: https://github.com/davidgiven/fluxengine/releases/tag/dev
But it sounds like what you actually want is the precompiled binary in the fluxengine.zip, unless you want to modify the program itself.

Thanks for reply. Yes, I can see, I did not unzipped the source code.zip which is named fluxengine-dev.zip as there is indeed a makefile there. I will proceed, and sorry if my reply takes time, time for hobby is scarce sometimes.

I put fluxengine-dev into C:/msys64 and cd /c/msys64/fluxengine-dev for the directory using "make" but it triggers many "failed" (ninja build stopped : subcommand failed., 10 failed /383, Error 1). Complete function of make from the script given does the same. But what the point of doing all of this as the program "fluxengine.exe" exists already in the first file fluxengine.zip ?

You need to build it yourself if you're not running on Windows, or you want to modify the program in some way. It sounds like you just want to use the precompiled binary and don't need to build from source at all.

OK, so no need as I am on Windows, better if I knew that from the beginning. Do you cut the Cypress board in two there ? Cables can be tricky indeed, I got a 5,25 drive with jumpers Mitsubishi MF503C and it accepts only a twisted cable with its 5,25 connector at the end (second 3,5), 5.25 as second (first 3,5) or only 5,25 will not work. The second Teac FD-55 GFR 140) I have has no jumpers.

You can cut it in two if you wish, but you'll need to wire the two halves together to reprogram it --- easier not to. Your floppy drive cable should have an IDC connector on the long end for connection to the motherboard, even if the two drive connectors are for 5.25" edge connectors. It's the motherboard connector which attaches to the board.

So I pluggged the 5,25 drive with a floppy inside it (it turns then) and entered on the shell : "fluxengine rpm", result is : "Error : no USB devices fround (is one plugged in?) Do you have permission to access USB devices?". The board is grounded to the 5.25 drive and pin 33 of the connector also. I got the blue led on the board, so it is programmed. USB is connected from the board to thhe PC. Is my soldering not enough good ? A programming issue ? The type of cable - which would not astonish me - or something else ?

The USB is connecting to the 5,25 drive (red ligh on) but indeed I am not seing at any place in Device Manager "Cowlark Technologies FluxEngine". I tried other MicroUSB cables, still 5,25 drive and board (blue LCD) recognize it, but nothing changes in Device Manager, of course there is this sound when introducing USB in PC : something is lacking for hardware to be recognized..

Hmm. It sounds like it's been programmed correctly. I'd like to double-check that you are using the MicroUSB socket and not the programming port --- you will have to remove some tape to get at it. The other thing is to figure out what's happening when it's plugged into the PC. Something should be appearing in the Device Manager. If you have access to a Linux device, it's generally easier to debug things there because there are useful messages in the system logs.

Yes, I can find this evening (not this morning) some differences now in Device Manager : one is "composite USB device" in the port where the USB is connected and the second one, also in usb bus controler category, is "support usb printing". Down the Device Manager I can see also in universial serial bus peripherals category, "FluxEngine", which stays even if the usb is disconnected (only configuration, not that the device is started of course). No, only the MicroUSB from board....not the usb programming I did not cut, thanks. Doing "fluxengine rpm" is by now different. It says : "Using Fluxengine with serial number<PHONE_NUMBER>160593 No index pulse detected from the disk. Common causes of this are: no drive is connected, the drive doesn't have an index sensor (...) the disk has no index holes (...) (most common) no disk is inserted in the drive! ...but of course there is a disk which is turning in the drive! I have a Linux Mint DVD in my hand and can put it on one of my hard disks if necessary.

Good; that means the computer can talk to the board, but the board can't talk to the drive. That's progress!
When you say the disk is turning, do you mean it's turning continuously, or only when you run a command? If it's running continuously, that means you've plugged the FluxEngine board in upside down (it's a common symptom).

Previous error was caused by a bad USB -MicroUSB cable as others are not reproducing such mismatch. As for the drive to board connexion, I used three different cables but same error. By the way, test bandwidth shows 937 kB/s FluxEngine -> PC and 561 kB/s PC -> FluxEngine but it does not read anything on disk. Yes, it is running continuously when floppy is inserted and there are erratic light on on the drive, it switch on continuously if doing test bandwidth and on only two seconds when doing rpm. As for plugging board upside-down, I have followed the image given at "if you are using a connector - line up like this", no difference, and I have grounded pin 33 with drive and GND board before 1.7...

That's very peculiar. I suspect there is a wiring problem somewhere, but where it could be I don't know. Some 5.25" drives require termination resistors; sometimes they have termination resistors built-in, with jumpers to enable them. If you've got the datasheet for the drive, it's worth checking that.
Also, could you try fluxengine test voltages and then paste the output here? This will measure the signal level of various lines, and can be useful for diagnosing termination issues.

The good : Mitsubishi MF504C 5,25 drive is working, rpm is 359,281, even, the type of cable seems of no importance for the fluxengine. The ugly :  TEAC FD-55GFR 5,25 drive had its light on all the time with a traditionnal nappe , DC (Disk change) seemed on conflict with RY (Ready) jumpers. I disconnected RY one, and the icon 5,25 disk controller icon became present on Windows but I still cannot read disks (so the cable ?). I paste both 5,25 drive outputs with fluxengine text voltages, but the ugly one had its jumper on RY when test was performed.

OK, the TEAC FD-55GFR 5,25 drive is now working with Fluxengine, rpm is again 359,281. Interesting enough, it is still not working with a traditionnal nappe, I have three cables and not a single one is working whereas one of the three only is working for the Mitsubishi MF504C. The reason why it was not working previously with Fluxengine is mechanical : the lever in the front of the 5,25 drive was removed from its original course, little damage from 40 years old use but not severe, necessary to see it and do some adjustment. By the way, the Mitsubishi drive had such similar issue, a needle was removed and lever was putting off : fragile aspect of 5.25 drives. As for the jumpers, easy to understand DS0 to 3 and dependency on type of cables and positions but the other jumpers, it changes from one drive to the another, well... Perhaps there is a proper setting of jumpers with nappe to make the TEAC work but Fluxengine is making it work.

Oh, good --- that's good to know. Yes, 5.25" drives are increasingly old! My two both failed a couple of years ago and it took me ages to realise that they just needed lubricating. http://youtube.com/watch?v=csryg56feu8
This does sound like a termination issue. The voltages show that in the second picture the output low voltage is 0.56V, where it should be lower than that. Unfortunately I don't have a lot of experience debugging this. There's some information here: https://www.retrotechnology.com/herbs_stuff/drive.html#term One thing you could try is, if you have a cable that also has 3.5" drive plugs, attaching one of those on drive 1. These are typically self-terminating and may just fix the problem. (This is also my setup.)
Regarding DSKCHG/READY: FluxEngine doesn't use this line at all, so it doesn't care about the jumper setting, but most PC FDCs require DSKCHG.

Good video, as for a 3D printer, mechanical part is as much important than electronics and software. Terminaison as it is a big success, still, need to find where is ibm.img file ? But 98% of good reading despire alll my manipulations with peticulliar 5.25 disk ! I have already try to put 3.5 with 5,25 with traditionnal nappe actually but the PC could not resolve both, better to use external 3.5 here but I will try with Fluxengine. The output low voltage of 0.56V was for the drive which can work with traditionnal nappe, OK.

Hi ! May I still comment here or introduce new issue about "using fluxengine" ? I may have no ibm.img file, as I said before, or where it is ? I can see a sector map, but that is all. What is the point of somewhat reading 5,25" disks without being able to read contents in them ? Did I miss something ? Some commands are not working, for exemple "fluxengine inspect", gives "Error : two flags use the name '-H'", "fluxengine upgradefluxfile", "Error : Syntax: fe-upgradefluxfile ". Right, it can read various formats, I tried indeed atarist, apple2, C64 and ibm, effective, but again I am looking to information in them : how extracting?

Sorry, I dropped your previous message on the floor...
It should indeed emit a file. However, it sounds like you're using the old client, and the syntax has changed a bit --- could you get the new one from the releases page, please? The syntax is:
fluxengine read ibm -s drive:0 -o ibm.img

Thanks for reply. Indeed there is an updated package, upper command works this time, it seems to read better however compared to old fluxengine, which found 100% good sectors, this is by now only 87% on one particular (not important) disk. There is no ibm image file in the fluxengine folder or at the end of the script just "wrote 80 tracks, 2 sides, 1200 kB total", I have one image file but this was when I used Badcopy to retrieve some data from one slightly damaged 5,25 disk.

The image file (ibm.img) will be placed in the current directory when you run the command. Are you doing this from a Windows cmd.exe window?

Yes, you are right, the ibm image was there. I confused with anotherr floppy disk drive where I can read through traditionnal way 5,25 disks. So the command worked this time, then a good update. The fact also is those old floppies are often damaged. A 40 years old floppy can be entirely intact, which is quite surprising, but the other one next to it can be severely damaged. I am cleaning disks and heads with isopropanol and using Badcopy, sometimes it works. Sure, it was Windows cmd.exe. You have no page for Atarist disks, there are often less damaged ones.


Interactive list

Changes

Created a new branch (Interactive list)
Add linter for HMTL, CSS, and JavaScript
Set up a new project with webpack
Added a new JavaScript file and import it as a module
-Added event listener to the checkbox.
Updated items object's value for completed key upon user actions.
Implemented a function for the "Clear all completed" button (used filter() method).
Stored the updated array of items in local storage, so the user gets the correct list values after the page reloads.
Created a function for refreshing the page
Rendered the dynamically created list of tasks in the dedicated placeholder.
Add a README file
Made use of ES6 variable declaration formats in the projects:
Made use of ES6 arrow functions.
Fixed linter errors

Additional Info
Checklist before requesting a review

[X] Liner errors
[X] GitHub flow
[X] Documented professionally
[X] Followed HTML & CSS best practices
[X] Followed JavaScript best practices

Hello @RaphDasilva 👋,
This is an additional review as a result of the second opinion request.
It's one of the requirements that the user should get the correct list values after the page reloads:

Additionally, for a better experience, the user should be aware of which tasks have already been completed so they do not need to be checked again. For example, if the value of "completed" is true in the local storage but appears to be unchecked on the page, when the user checks it, it will be false in the local storage but checked on the page, which is incongruous.
I recommend implementing the changes requested by the previous reviewers so that your project is complete.
Keep rocking 🚀!


[Errata] Fix import mistake in README files

Before this change my code did not work. I hope that this fix can be useful.

Thanks your PR

@DonNy88

You are welcome :-) @inRush


i2c_sam0 interrupt latency is excessive

Describe the bug
I've been debugging some driver issues with the i2c_sam0 driver.  Along the way I have observed the interrupt latency for an i2c transaction is on the order of 360us.  That is, each byte of an i2c transfer takes 360us to complete which is 300% - 1000% longer than the actual duration of the i2c byte frame which is about 25us at 400 KHz or 95us at 100 KHz.  I have attached a screen shot taken with an i2c clock frequency of 100 KHz.
I have confirmed that i2c_sam0_isr() is firing every 360us during the i2c_transfer() and there is a long silent period between the byte transfers where the i2c clock remains low.  I am contemplating that the i2c interrupt that occurs at the end of the data transfer is being deferred by the kernel for some reason.  I do not fully understand Zephyrs scheduling so I want to ask someone to explain what happens with interrupts during k_sem_take()?  I read somewhere that all interrupts run at a lower priority than the kernel.  So, if the kernel is waiting for a semaphore, does that mean that interrupts are not processed until the next kernel "tick"?
I should mention that I have tried using the IRQ_DIRECT_CONNECT macro instead but this made no difference to the latency.  Also, I am using the 32khz oscillator as the source for the rtc counter.  I noticed a threshold of 7 ticks in z_clock_set_timeout() which is about 214us and is close to the amount of time between byte frames.

it might be something atmel specific. I've tried it on nrf52 and see no such delays. I tried with device power management on and off.

If I enable the DMA channel, I can eliminate all of the intra frame bus idling except for the last byte.  The last byte received during a message read is not read by the DMAC but is triggered by an interrupt.  The stop bit at the end of a message write is similarly triggered by an interrupt.  In bother cases, there is usually about 360us of delay.  That is not always the case though.  Sometimes the delay is longer and sometimes it can happen immediately.

It is not preferable to the the dmac though.  Using the dmac has the unfortunate side effect of consuming about 1.5K of RAM.

@nordic-krch At the moment that is what I think as well.  Something appears to be blocking the interrupt for a period of time some reason but I haven’t been able to determine the sequence of events that leads to this.  The problem maybe correlated to sleep modes.
There are some very odd peculiarities with ATMEL peripherals.  In particular, reading or writing a “core” peripheral register requires a “sync”.  This is particularly problematic with regards to the rtc.  In order to read the rtc count register, this “sync” must be used and can take 183us if the rtc clock is 32khz.  The way the kernel implements setting timeouts in tickless mode, this rtc block causes significant delay because the count register is read multiple times.  I think this is likely the underlying root cause of the problem I am encountering though I am not certain about that yet.

I believe I have narrowed down the cause to the scheduler.  The driver waits on a semaphore between messages of the transaction.  When it does so, the kernel can end up inserting a delay anywhere from a few 10's of microseconds to 100's of milliseconds.  If I busy wait for the semaphore, I can eliminate the delay.
This suggests perhaps an issue exists with setting timeouts in the kernel.  I read an issue that was posted a while back regarding timeout issues with the scheduler.  Perhaps this maybe related.  Something is delaying the context switch back to the waiting thread.


Fix acceptance tests

Pull Request Checklist

Description

Pin beaker-rspec to avoid travis-ci pulling in really ancient versions that don't work
Related Issue

Will fix tests for #947
Motivation and Context

Something with Travis CI recently changed where bundler installs a really old versions of beaker-rspec that doesn't work with the version of serverspec that gets installed.  This change will force the version of beaker-rspec that is known to work with this module's acceptance tests.
How Has This Been Tested?

I only see this problem in Travis CI, can't reproduce locally.

I stand corrected.  The blame likely lies with beaker: https://github.com/puppetlabs/beaker/blob/master/docs/how_to/upgrade_from_3_to_4.md
I noticed a fresh bundle install on my local machine pulls in 4.0.0 and for some reason a really old version of beaker-rspec gets pulled in.


[vNext] Redesing to material-ui 2.0

This PR is a part of v4 development (#1293)
Description

[x] Common design changes like toolbar, dimensions, paddings, etc...
[x] Redesign datepicker with toolbar
[x] Change moving views logic to be inside the calendar and change year with triangle icon
[x] Fix tests <-- In progress right now, moving our tests from enzyme to cypress components tests
[x] Redesign timepicker
[x] Redesign datetime picker

Note that new layout for mobile/desktop variant will be in the next PR, here just changing everything inside the components.

This PR hardly in development right now, but please @oliviertassinari take a brief look of the deployment preview for how it looks and feels

@oliviertassinari could you take a look to deployment preview and visual changes? There are quite a lot of code changes :)

@dmtrKovalenko Yes, I'm having a look! Well, I will try 🙃

@oliviertassinari

There is a specific prop called animateYearScrolling which is by default false. It is confusing that it is enabled for the first example, I will remove it. By default it is starting from the year position, but can be usefull for something.
What do you mean? Increse min-max range to include 200 years back and forwards?
Nice questions. I think yes for desktop users click on month should open MonthView, click on year open year, but I am not sure about mobile, maybe just tapping on the header should also move to year?
( I have created this functionality on the very first try, but for some reason removed it)
will fix
I propose to create new prop called reduceAnimations=/(android)/i.test(navigator.userAgent)

I didn't know about the animateYearScrolling prop. What problem does the prop solve? Do we have an opportunity to reduce the complexity of the component?
I was wondering about using the selected year, and not the current year (2019, soon 2020) to generate the list of years people can click on.
I have noticed that the date & time picker has an interactive year. I don't have any solution in mind. We might get an issue about this problem in the future. We will see.
I like the solution you have proposed. I also think that we should seriously consider giving up on the ButtonBase usage in the day cells. We have to balance between these dimensions:

can we render 3 months in a reasonable amount of time, on a 4 years old desktop? For instance, I have a 5 years old Macbook Air 🙈. I would have concerns if it takes more than 250ms, for instance, to shift one month.
can we have instant feedback on keyboard navigation, right now, it feels low. I suspect we won't have any other choice than to render outside React. Try keeping the right arrow down, the UI freeze.
can we have a smooth animation? Taking into account that no animation might be better than a freezing one.

Yeah I think we can remove this prop. It looks useless.
Related to the years. They are generating from the minDate to maxDate. By default the range is 1900-01-01 to 2100-01-01.
Yes, it looks like a problem, but still, you can switch to year view from toolbar and also (needs to be implemented) from calendar header
Will try to use ButtonBase and check is it reduces performance

Thanks for the context. I thought the date picker had no limits. What happens if we change the props to remove the min and max date limits? I have tried <DatePicker minDate={null} maxDate={null} but it didn't seem to have an impact. https://blueprintjs.com/docs/#datetime/datepicker behaves like the current implementation. (Oh, I see that blueprints went with http://react-day-picker.js.org/, it sounds like its a good signal that we can benchmark with it :)).
What do you think of removing the default limits, and having ±100 years sliding window around the "active" date?

Unrelated, we might have an opportunity to improve a11y.

Addressed some feedback:

Moving to button base saved 2ms of rendering on my machine (from 10ms to 8ms of rendering dialog with transition group)
My concern about the dynamic range by default - will it be obvious for developers? Right now it is clear that minDate will not render anything below. Moreover, it will require additional calculations on the rendering step (honestly it should not be a problem)
Yes, we need this wrapper with role="presentation". The main reason is that the day component is overridable, so we need a way to be sure that all event handlers are attached even when the component is overridden.
Keyboard animation was broken by moving to the relative keydown listeners. Right now fixed and will not freeze after switching to the next month.

I have tried the following diff, to benchmark a month switch in dev mode

diff --git a/lib/src/views/Calendar/Day.tsx b/lib/src/views/Calendar/Day.tsx
index 100cad6..d28a1e8 100644
--- a/lib/src/views/Calendar/Day.tsx
+++ b/lib/src/views/Calendar/Day.tsx
@@ -70,9 +70,9 @@ export const Day: React.FC<DayProps> = ({
   });

   return (
-    <IconButton className={className} tabIndex={hidden || disabled ? -1 : 0} {...other}>
-      <Typography variant="body2" color="inherit" children={children} />
-    </IconButton>
+    <span>
+      {children}
+    </span>
   );
 };

before

after

2. My main concern would be about: if somebody needs to significantly increase the min/max range. How long does it take to render the whole year list (>1s?) and how much to scroll to find the value the user needs?
3. For this problem, we frequently ask for developers to spread the props to the root element, it could be an alternative. I have tried without the wrapping div, it doesn't seem to have a significant impact as we have in 1. It seems that we can ignore performance on the mater.
4. Nice
5. +1 for keyboard and a11y exploration

I am not seeing such significant performance impact with ButtonBase + <span> instead of IconButton + Typography. But still removing it in favor of simplicity and fewer dom nodes
Here is a snapshot switching to year selection with rendering a list from 1700 to 2300. Pretty fast, and thanks to animation it is even more smooth.

Also, I am planning to render 4 years in the column for desktop pickers. For mobile it is too much cause touch targets will be too small.

From material.io: Mobile calendar pickers. They aren’t ideal for selecting dates in the distant past or future that require more navigation, such as entering a birth date or expiration date.

Agree, fewer components always better
Will move this work to separate PR

I think this should be ready to go? Moving to some work in date-io 💪


cmake 302 error (IDFGH-2804)

maybe its a environment issues。please try it again follow the user guide which suggest by espressif on github.------------------ 原始邮件 ------------------
发件人<EMAIL_ADDRESS>发送时间: 2020年3月1日(星期天) 下午5:11
收件人<EMAIL_ADDRESS>抄送<EMAIL_ADDRESS>主题: [espressif/esp-idf] cmake 302 error (#4867)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


test

WIP
Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.

[ ] If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag.
[ ] I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code.
[ ] Every change is related to the PR description.
[ ] I have linked this pull request to relevant issues (if any exist).

Benchmark results
Metrics with a significant change:

circuit_simulation_time_in_ms (base-rollup): 852 (-18%)
node_history_sync_time_in_ms (5): 11,610 (-16%)
node_history_sync_time_in_ms (10): 22,175 (-17%)
note_history_successful_decrypting_time_in_ms (5): 2,417 (-21%)
note_history_successful_decrypting_time_in_ms (10): 4,921 (-21%)
l2_block_building_time_in_ms (8): 8,981 (-20%)
l2_block_building_time_in_ms (32): 36,014 (-20%)
l2_block_building_time_in_ms (128): 157,285 (-22%)
l2_block_rollup_simulation_time_in_ms (8): 6,646 (-20%)
l2_block_rollup_simulation_time_in_ms (32): 26,652 (-21%)
l2_block_rollup_simulation_time_in_ms (128): 105,020 (-21%)
l2_block_public_tx_process_time_in_ms (8): 2,297 (-18%)
l2_block_public_tx_process_time_in_ms (32): 9,234 (-17%)
l2_block_public_tx_process_time_in_ms (128): 51,735 (-23%)
l2_block_processing_time_in_ms (8): 1,024 (-18%)
l2_block_processing_time_in_ms (32): 3,871 (-19%)
l2_block_processing_time_in_ms (128): 15,257 (-19%)
note_successful_decrypting_time_in_ms (8): 331 (-17%)
note_successful_decrypting_time_in_ms (32): 1,013 (-22%)
note_successful_decrypting_time_in_ms (128): 3,940 (-24%)
note_trial_decrypting_time_in_ms (8): 34.0 (+750%)

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 fd1a1a86 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
223,020
868,172
3,447,932

l1_rollup_execution_gas
842,107
3,595,280
22,203,301

l2_block_processing_time_in_ms
:warning: 1,024 (-18%)
:warning: 3,871 (-19%)
:warning: 15,257 (-19%)

note_successful_decrypting_time_in_ms
:warning: 331 (-17%)
:warning: 1,013 (-22%)
:warning: 3,940 (-24%)

note_trial_decrypting_time_in_ms
:warning: 34.0 (+750%)
109 (-2%)
138 (-5%)

l2_block_building_time_in_ms
:warning: 8,981 (-20%)
:warning: 36,014 (-20%)
:warning: 157,285 (-22%)

l2_block_rollup_simulation_time_in_ms
:warning: 6,646 (-20%)
:warning: 26,652 (-21%)
:warning: 105,020 (-21%)

l2_block_public_tx_process_time_in_ms
:warning: 2,297 (-18%)
:warning: 9,234 (-17%)
:warning: 51,735 (-23%)

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
:warning: 11,610 (-16%)
:warning: 22,175 (-17%)

note_history_successful_decrypting_time_in_ms
:warning: 2,417 (-21%)
:warning: 4,921 (-21%)

note_history_trial_decrypting_time_in_ms
121 (-5%)
147 (-10%)

node_database_size_in_bytes
1,627,760
1,096,392

pxe_database_size_in_bytes
27,188
54,187

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
47.4 (-18%)
61,697
18,841

private-kernel-ordering
23.8 (-17%)
24,233
8,089

base-rollup
:warning: 852 (-18%)
639,797
811

root-rollup
38.9 (-18%)
4,072
1,097

private-kernel-inner
42.9 (-18%)
81,504
18,841

public-kernel-private-input
47.7 (-20%)
41,455
18,841

public-kernel-non-first-iteration
30.9 (-20%)
41,497
18,841

merge-rollup
0.848 (-23%)
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,510


Improve eval chain prompt

Eval chain is currently very sensitive to differences in phrasing, punctuation, and tangential information. This prompt has worked better for me on my examples.
More general q: Do we have any framework for evaluating default prompt changes? Could maybe start doing some regression testing?

Eval chain is currently very sensitive to differences in phrasing, punctuation, and tangential information. This prompt has worked better for me on my examples.
More general q: Do we have any framework for evaluating default prompt changes? Could maybe start doing some regression testing?

no framework, should think about adding


Silent crash in VSCode arising from _cmap_utils.draw_colormap

Describe the bug
All of a sudden this morning QColormapComboBox is crashing on me. It's silent if I just run e.g. examples/colormap_combo_box.py, but it's much uglier downstream e.g. in ndv. I have no idea what caused this to begin.
Using the hard crash I pasted below, I found that adding painter.end() to the end of _cmap_utils.draw_colormap resolved my issue. I'm a bit confused on why this is necessary though, as the docs say that this method doesn't normally need to be called?
To Reproduce
Steps to reproduce the behavior:

debug examples/colormap_combo_box.py within VSCode.
observe crash

Expected behavior
You know...not crashing.
Screenshots
Soft crash coming out of examples/colormap_combo_box.py:

Hard crash coming out of ndv:
WARNING: QBackingStore::endPaint() called with active painter; did you forget to destroy it or call QPainter::end() on it?
WARNING:vispy:QBackingStore::endPaint() called with active painter; did you forget to destroy it or call QPainter::end() on it?
Windows fatal exception: access violation

Thread 0x00004b90 (most recent call first):
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 338 in wait
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 634 in wait
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\pydevd.py", line 325 in _on_run
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_daemon_thread.py", line 53 in run
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 1052 in _bootstrap_inner
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 1009 in _bootstrap

Thread 0x00005b90 (most recent call first):
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 338 in wait
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 634 in wait
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\pydevd.py", line 279 in _on_run
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_daemon_thread.py", line 53 in run
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 1052 in _bootstrap_inner
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 1009 in _bootstrap

Thread 0x00003038 (most recent call first):
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_comm.py", line 227 in _read_line
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_comm.py", line 245 in _on_run
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_daemon_thread.py", line 53 in run
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 1052 in _bootstrap_inner
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 1009 in _bootstrap

Thread 0x000070ac (most recent call first):
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 338 in wait
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\queue.py", line 180 in get
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_comm.py", line 390 in _on_run
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_daemon_thread.py", line 53 in run
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 1052 in _bootstrap_inner
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\threading.py", line 1009 in _bootstrap

Current thread 0x00004ed8 (most recent call first):
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\site-packages\superqt\cmap\_cmap_utils.py", line 121 in draw_colormap
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\site-packages\superqt\cmap\_cmap_line_edit.py", line 130 in paintEvent
  File "C:\Users\gjselzer\code\pyapp-kit\ndv\src\ndv\views\_app.py", line 189 in run_app
  File "C:\Users\gjselzer\code\pyapp-kit\ndv/mvc.py", line 27 in <module>
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 118 in _run_code
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 127 in _run_module_code
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 310 in run_path
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 351 in run_file
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 501 in main
  File "c:\Users\gjselzer\.vscode\extensions\ms-python.debugpy-2024.14.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher/../..\debugpy\__main__.py", line 71 in <module>
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\runpy.py", line 88 in _run_code
  File "c:\Users\gjselzer\micromamba\envs\ndv\Lib\runpy.py", line 198 in _run_module_as_main

Desktop (please complete the following information):

OS with version [e.g macOS 10.15.7] Windows 11 Pro 10.0.22631
Qt Backend [e.g PyQt5, PySide2] PyQt5
Python version 3.12.0

btw: was just able to reproduce this on the current superqt release ... but wanted to note that it requires that debugpy be running.  which is an interesting detail :)

Recent versions of debugpy seem to have a lot of issues with qt/pyside. I have had multiple issues like this with a lot of pyside6 components since moving from the 2024.10 version of the python debugger extension fwiw.


net: ReadFromUDP hangs (randomly) even when ReadDeadline is crossed

What version of Go are you using (go version)?

$ go version
> go1.13.4 linux/amd64

Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?

Ubuntu 18.04.2 LTS | Kernel version: 4.15.0-66-generic

What did you do?
This function is called as a gorutine:
// Listens infinitely for UDP packet arrivals and
// executes it's processing inside a gorutine.
func startUDPListener(netw string, router *Router) {
	lAddr := getLocalIPAddress()
	// Set listening port.
	lAddr.Port = int(router.myPeerInfo.port)
	PacketConnCreation:
	// listen to incoming udp packets
	pc, err := net.ListenUDP(netw, &lAddr)
	if err != nil {
		log.Panic(err)
	}
	// Set initial deadline.
	pc.SetReadDeadline(time.Now().Add(time.Minute))

	for {
		//simple read
		buffer := make([]byte, 1024)

		byteNum, uAddr, err := pc.ReadFromUDP(buffer)

		if err != nil {
                        // If we get an error, we just close the pc and create a new one.
			log.Printf("%v", err)
			pc.Close()
			goto PacketConnCreation
		} else {
			// Set a new deadline for the connection.
			pc.SetReadDeadline(time.Now().Add(5 * time.Minute))
			go processPacket(*uAddr, byteNum, buffer, router)

		}
	}
}

What did you expect to see?
I was expecting ReadFromUDP to ALWAYS return an error if the DeadLine is crossed and I don't recieve any UDP packet on my IP:Port interface before this happens.
What did you see instead?
Instead of that, it sometimes hangs completely without giving any kind of errors.
It's completely random, it sometimes hangs and sometimes doesn't (providing the corresponding i/o timeout)
It just stays running forever without accepting new packets (or even reading them). The gorutine gets completely freezed (or at least it seems so).

Can you show us a complete program that we can use to recreate the problem?  Thanks.

Sure.
It is an implementation of https://eprint.iacr.org/2019/876.pdf
The whole code is here: https://github.com/dusk-network/dusk-blockchain/tree/kadcast/pkg/p2p/kadcast
I'll also attach here the functions that take part on this:
network.go
package kadcast

import (
	"log"
	"net"
	"time"
)

// Listens infinitely for UDP packet arrivals and
// executes it's processing inside a gorutine.
func startUDPListener(netw string, router *Router) {
	lAddr := getLocalIPAddress()
	// Set listening port.
	lAddr.Port = int(router.myPeerInfo.port)
	PacketConnCreation:
	// listen to incoming udp packets
	pc, err := net.ListenUDP(netw, &lAddr)
	if err != nil {
		log.Panic(err)
	}
	// Set initial deadline.
	pc.SetReadDeadline(time.Now().Add(time.Minute))

	for {
		//simple read
		buffer := make([]byte, 1024)

		byteNum, uAddr, err := pc.ReadFromUDP(buffer)

		if err != nil {
			log.Printf("%v", err)
			pc.Close()
			goto PacketConnCreation
		} else {
			// Set a new deadline for the connection.
			pc.SetReadDeadline(time.Now().Add(5 * time.Minute))
			go processPacket(*uAddr, byteNum, buffer, router)

		}
	}
}

// Gets the local address of the sender `Peer` and the UDPAddress of the
// reciever `Peer` and sends to it a UDP Packet with the payload inside.
func sendUDPPacket(netw string, addr net.UDPAddr, payload []byte) {
	localAddr := getLocalIPAddress()
	conn, err := net.DialUDP(netw, &localAddr, &addr)
	if err != nil {
		log.Println(err)
		return
	}

	// Simple write
	written, err := conn.Write(payload)
	if err != nil {
		log.Println(err)
	} else if written == len(payload) {
		log.Printf("Sent %v bytes to %v", written, addr.IP)
	}
	conn.Close()
}

The router struct is just used to retrieve the node info, you should be able to send an IP and a port instead of it. Also, the network parameter on the receiver is always "udp".
The gorutine used on the receiver can be avoided, the error is not comming from here.
Also, you'll need to configigure your firewall to enable the fordward and input chains to allow UDP and also your router NAT.
Apart from that, this code can reproduce it. Wait the ammount of time that the deadline needs to reach it's end and you'll see (at least this is what happens to me) that 1/3 or 1/4 times it completely hangs without giving any error.

	// Set listening port.
	lAddr.Port = // Set the port where other nodes will try to write to.
	PacketConnCreation:
	// listen to incoming udp packets
	pc, err := net.ListenUDP("udp", &lAddr)
	if err != nil {
		log.Panic(err)
	}
	// Set initial deadline.
	pc.SetReadDeadline(time.Now().Add(time.Minute))

	for {
		//simple read
		buffer := make([]byte, 1024)

		byteNum, uAddr, err := pc.ReadFromUDP(buffer)

		if err != nil {
			log.Printf("%v", err)
			pc.Close()
			goto PacketConnCreation
		} else {
			// Set a new deadline for the connection.
			pc.SetReadDeadline(time.Now().Add(5 * time.Minute))
			// Execute a `gorutine` here that prints the bytes received or whatever,
			// it's not what is causing the hang (or it seems so at least..)
		}
	}
}

Once you listener is up, try making a writer to send some bytes to it and stop the writing. Then, wait for more than 5 min (so the deadline is crossed).  And trigger the writer again. You'll see that the listener hangs and no error unblocks it from reading. And since the deadline is crossed, it can't read anything from the file descriptor, so it gets hanged there forever.
Code for the writter:
// Gets the local address of the sender `Peer` and the UDPAddress of the
// reciever `Peer` and sends to it a UDP Packet with the payload inside.
func sendUDPPacket(addr net.UDPAddr, payload []byte) {
	localAddr := //Get your local IP address of your interface as `UDPAddr`.
	conn, err := net.DialUDP("udp", &localAddr, //&ListenerUDPAddr)
	if err != nil {
		log.Println(err)
		return
	}

	// Simple write
	written, err := conn.Write(payload)
	if err != nil {
		log.Println(err)
	} else if written == len(payload) {
		log.Printf("Sent %v bytes to %v", written, addr.IP)
	}
	conn.Close()
}

I think this should be enough, if anything else is needed just ask for it and I'll try to provide it.

A "complete program" usually means a single file with package main, and if a second process is required, then a second file also with package main.

A "complete program" usually means a single file with package main, and if a second process is required, then a second file also with package main.

You just need to put package main instead of kadcast and change the listener function name to main that's all. I cannot put the IP's for you nor the ports.
Writter can be basically replaced for a Python script or whatever.

It would be a great help if you write that Python script, make the changes you described, and test it all to make sure it fails as described. You may discover that it doesn't fail.

I did this in order to kinda reproduce the behavior of the app:
package main

import (
	"log"
	"net"
	"time"
)

func main() {
        // Start several cliends that send UDPPackets and the server listener for ours.
	go startUDPListener()
	go sendUDPPacket()
	go sendUDPPacket()
	go sendUDPPacket()
	go sendUDPPacket()
	for {

	}
}

// Listens infinitely for UDP packet arrivals and
// executes it's processing inside a gorutine by sending
// the packets to the circularQueue.
func startUDPListener() {
	lAddr := net.UDPAddr {
		IP: []byte{127,0,0,1},
		Port: 25519,
		Zone: "N/A",
	}
	// Set listening port.
	lAddr.Port = 25519
PacketConnCreation:
	// listen to incoming udp packets
	pc, err := net.ListenUDP("udp", &lAddr)
	if err != nil {
		log.Panic(err)
	}
	// Set initial deadline.
	pc.SetReadDeadline(time.Now().Add(time.Minute))

	// Instanciate the buffer
	buffer := make([]byte, 1024)
	for {

		// Read UDP packet.
		_, _, err := pc.ReadFromUDP(buffer)

		if err != nil {
			log.Printf("%v", err)
			pc.Close()
			goto PacketConnCreation
		} else {
			// Set a new deadline for the connection.
			pc.SetReadDeadline(time.Now().Add(5 * time.Minute))
			// Do stuff with the packet
			log.Printf("%v", buffer)
		}
	}
}

func sendUDPPacket() {
	time.Sleep(15*time.Second)
	for {
		localAddr := getLocalUDPAddress()

		addr := net.UDPAddr {
			IP: []byte{127,0,0,1},
			Port: 25519,
			Zone: "N/A",
		}

		payload := []byte{56,56,56,56,56,56,56,56,5,65,6,56,56,56,56,56,56}

		conn, err := net.DialUDP("udp", &localAddr, &addr)
		if err != nil {
			log.Println(err)
			return
		}

		// Simple write
		written, err := conn.Write(payload)
		if err != nil {
			log.Println(err)
		} else if written == len(payload) {
			log.Printf("Sent %v bytes to %v", written, addr.IP)
			time.Sleep(7*time.Minute)
		}
		conn.Close()
	}
}

// Gets the local IP address of the machine where
// the node is running in `net.UDPAddr` format.
//
// Panics if it there's not connection.
func getLocalUDPAddress() net.UDPAddr {
	conn, err := net.Dial("udp", "<IP_ADDRESS>:80")
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close()

	localAddr := conn.LocalAddr().(*net.UDPAddr)
	return *localAddr
}

This never hangs, it always throws an error or receives packets.
The only difference now between this example and mine is that mine runs inside of a test while this runs in main.go and that this was executed against localhost since I cannot put an IP for you.
So I tried to move this to a test and stills working as expected.
At this point, it's weird.
I just know that it hangs when working with my cloud machines in WAN.

Start the listener
Send one packet
Wait until the deadline is crossed
Send packets again

And no error is thrown on the server nor packets are received.

WAN firewall issue? UDP doesn't yield an error if delivery fails.

Same as this (i removed the docker part of it since I'm not using it at all)
2319K 1896M ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate RELATED,ESTABLISHED
  185  9859 ACCEPT     all  --  lo     *       <IP_ADDRESS>/0            <IP_ADDRESS>/0
  495 78143 DROP       all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate INVALID
    0     0 ACCEPT     icmp --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            icmptype 8 ctstate NEW
  309 65818 UDP        udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate NEW
 6638  269K TCP        tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp flags:0x17/0x02 ctstate NEW
  288 64616 REJECT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            reject-with icmp-port-unreachable
 6622  284K REJECT     tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            reject-with tcp-reset
  792 26940 REJECT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            reject-with icmp-proto-unreachable
    0     0 ACCEPT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            udp dpt:25519

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 653K packets, 61M bytes)
 pkts bytes target     prot opt in     out     source               destination
 833K  293M ACCEPT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0

Chain TCP (1 references)
 pkts bytes target     prot opt in     out     source               destination
   33  1588 ACCEPT     tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp dpt:22
   51  2160 ACCEPT     tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp dpt:80
   13   528 ACCEPT     tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp dpt:443

Chain UDP (1 references)
 pkts bytes target     prot opt in     out     source               destination
    2   148 ACCEPT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            udp dpt:5353
    4   288 ACCEPT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            udp dpt:53
   15   766 ACCEPT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            udp dpt:25519

Also did you check for func init() in all files of kadcast?

Can you please try rewriting your code to use select {} rather than for {}

On 3 Dec 2019, at 12:50, Carlos Pérez<EMAIL_ADDRESS>wrote:

Same as this (i removed the docker part of it since I'm not using it at all)
2319K 1896M ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate RELATED,ESTABLISHED
185  9859 ACCEPT     all  --  lo     *       <IP_ADDRESS>/0            <IP_ADDRESS>/0
495 78143 DROP       all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate INVALID
0     0 ACCEPT     icmp --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            icmptype 8 ctstate NEW
309 65818 UDP        udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate NEW
6638  269K TCP        tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp flags:0x17/0x02 ctstate NEW
288 64616 REJECT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            reject-with icmp-port-unreachable
6622  284K REJECT     tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            reject-with tcp-reset
792 26940 REJECT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            reject-with icmp-proto-unreachable
0     0 ACCEPT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            udp dpt:25519
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
0     0 ACCEPT     all  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            ctstate RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT 653K packets, 61M bytes)
pkts bytes target     prot opt in     out     source               destination
833K  293M ACCEPT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0
Chain TCP (1 references)
pkts bytes target     prot opt in     out     source               destination
33  1588 ACCEPT     tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp dpt:22
51  2160 ACCEPT     tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp dpt:80
13   528 ACCEPT     tcp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            tcp dpt:443
Chain UDP (1 references)
pkts bytes target     prot opt in     out     source               destination
2   148 ACCEPT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            udp dpt:5353
4   288 ACCEPT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            udp dpt:53
15   766 ACCEPT     udp  --  *      *       <IP_ADDRESS>/0            <IP_ADDRESS>/0            udp dpt:25519
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

I see the idea of the select. And I thought the same, that with the for loop there's no time to breath for the gorutines and they basically can never get to execute code.
So I modified the code adding a Sleep statement in the main file that spawns the gorutines. And turns out that this makes the code work as expected.
Reporting the i/o timeout error when the deadline is closed and getting the packets otherwise.

To clarify, neither the for{} nor Sleep() variants reproduce the error you see on cloud machines?

Using the for{} without Sleep() on it has the error hang completely.
Using the for{} with a Sleep() inside the Listener on my cloud machines fixes the issue on cloud and local machines.
Seeing that, looks like this is not related to my firewall/NAT config at all.

Please try precisely what I suggested. Don’t invent a new concept. If you want the main goroutine to go to sleep forever then select {} is the construct you should use.

Previously you wrote "This never hangs, it always throws an error or receives packets." Now you've contradicted that. And presumably there is no for{} in the kadcast code.

Previously you wrote "This never hangs, it always throws an error or receives packets." Now you've contradicted that. And presumably there is no for{} in the kadcast code.

I'm just explaining the behaviours I'm finding. Nothing else.
 So I cannot do anything else than explain what happens on the machines that are using other IP addresses.

Please try precisely what I suggested. Don’t invent a new concept. If you want the main goroutine to go to sleep forever then select {} is the construct you should use.

I don't want the main gorutine to sleep forever, that's the point, the for{} is there since in the future, the main gorutine will execute much more things than just spawn the listener.
So I used for{} to simulate that this main gorutine will be awake and doing stuff.

Please try precisely what I suggested. Don’t invent a new concept. If you want the main goroutine to go to sleep forever then select {} is the construct you should use.

Also I tested it and works correctly.
So again, looks like the for{} is not letting the gorutine that tracks the filedescriptor timeout to query and realize that it has been crossed. But the filedescriptor is no longer working.
Just my thoughts.
And guys, I'm trying to help, it's just that if I cannot reproduce it on my machine even I'm adapting the code, I cannot do more than just explaining what is going on..

I think you'll get more help with this by posting to the kadcast project, or golang-nuts. Maybe you've found a bug in kadcast.

I think you'll get more help with this by posting to the kadcast project, or golang-nuts. Maybe you've found a bug in kadcast.

As said on my first comment, I'm implementing kadcast. And I'm importing in in a main.go file to test how it works. This is why I'm here, I made the code for the listeners packet senders that kadcast uses.

Sorry, meant the dusk project. Anyway, golang-nuts would be a better resource.

Sorry, meant the dusk project. Anyway, golang-nuts would be a better resource.

Again, I'm part of the dusk project. I'm the implementor of the kadcast package. I just tried to adapt the package to a simple main.go file to allow you to analyze it since I see that you'll not look at the original code.
So, thanks for your time.
I will just leave this here as a workarround to solve this.
Just make the main gorutine sleep (or whatever other thing that makes it stop constantly looping) and then the listener gorutine will be able to see the crossed deadlines and throw the corresponding errors.

For the record, never write for {} in a Go program.  That will never work well.  See #10958 for part of the problem.


[BUG] bug in  " Assets/Firebase/Editor/Firebase.Editor.dll' "  and "Assets/ExternalDependencyManager/Editor/1.2.176/Google.IOSResolver.dll"

[REQUIRED] Please fill in the following fields:

Unity editor version:2022.2.7f1
Firebase Unity SDK version: 11.1.0
Source you installed the SDK:  FirebaseDatabase  unitypackagefile
Problematic Firebase Component: _____ (Auth, Database, etc.)
Other Firebase Components in use:  nothing
Additional SDKs you are using: nothing
Platform you are using the Unity editor on: windows
Platform you are targeting:WEBGL
Scripting Runtime: _____ (Mono, and/or IL2CPP)
Pre-built SDK from the website or open-source from this repo: website

[REQUIRED] Please describe the issue here:
hello everyone , i have a problem when i import the  firebasedatabse( from the sdk) in the unity editor 2022.2.7f1 it show me those errors :

Assembly 'Assets/ExternalDependencyManager/Editor/1.2.176/Google.IOSResolver.dll' will not be loaded due to errors:
Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.

Assembly 'Assets/Firebase/Editor/Firebase.Editor.dll' will not be loaded due to errors:
Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.

// TODO(you): code here to reproduce the problem

i found the fix of this error you only need the download IOS in your unity editor and switch and restart your project

i found the way to  fix this error you only need the download IOS in your unity editor and switch and restart your project


Connect to serial and take_photo() returns TIMEOUT.

Hi everyone,
By running my code I intend to connect to the drone and simply take a photo triggering its pwm connected to the camera.
Code:
import asyncio

from mavsdk.camera import (CameraError, Mode)
from mavsdk import System

async def run():
    drone = System()
    await drone.connect(system_address="serial:///dev/ttyUSB0:57600")

    print("Waiting for drone to connect...")
    async for state in drone.core.connection_state():
        if state.is_connected:
            print(f"-- Connected to drone!")
            break

    print_mode_task = asyncio.ensure_future(print_mode(drone))
    print_status_task = asyncio.ensure_future(print_status(drone))
    running_tasks = [print_mode_task, print_status_task]

    print("Setting mode to 'PHOTO'")
    try:
        await drone.camera.set_mode(Mode.PHOTO)
    except CameraError as error:
        print(f"Setting mode failed with error code: {error._result.result}")

    print("Taking a photo")
    try:
        await drone.camera.take_photo()
    except CameraError as error:
        print(f"Couldn't take photo: {error._result.result}")

async def print_mode(drone):
    async for mode in drone.camera.mode():
        print(f"Camera mode: {mode}")

async def print_status(drone):
    async for status in drone.camera.status():
        print(status)

if __name__ == "__main__":
    # Run the asyncio loop
    asyncio.run(run())

It prints out a TIMEOUT result after the set_mode and take_photo were called...
The camera is properly plugged. I can trigger it by using pymavlink instead.
The reason I wanna use MAVSDK is the fact that I want to get back the CAMERA_IMAGE_CAPTURED information (lat,lon,etc.) and for that I need to use the command MAV_CMD_IMAGE_START_CAPTURE, which returns an UNSUPPORTED result when I send it from pymavlink... In this post i saw that its because only MAVSDK supports it.
The only way i can trigger my camera now is using MAV_CMD_DO_SET_CAM_TRIGG_DIST from pymavlink, but like that i cannot get the CAMERA_IMAGE_CAPTURED info...
Can anyone tell me how to succeed? Either doing it from MAVSDK or pymavlink its okay for me.
Thanks in advance!

Do you have a camera on the other side? Does it receive the command MAVSDK sends?
The timeout tells you that MAVSDK sent the command but did not receive an ACK. Can MAVSDK do other things with the drone, like arm/takeoff or list params?

Hello thanks for your comments!
Indeed, there is a MAPIR Survey 3 camera plugged into the respective pwm aux output of my board (durandal).

Can MAVSDK do other things with the drone, like arm/takeoff or list params?

Yes It does get the list of params, i.e.

Hello thanks for your comments!
Indeed, there is a MAPIR Survey 3 camera plugged into the respective pwm aux output of my board (durandal).
Can MAVSDK do other things with the drone, like arm/takeoff or list params?

Yes It does get the list of params, i.e.
(sorry accidentally closed the issue, i proceed to reopen)

Perhaps, in this case i should specify the camera interface as MAVLink interface? So far it was set to Generic PWM

But the camera is not a mavlink camera.

Oh, I don't really know how the setup works then. But PX4 has to behave like the mavlink camera then, and it should trigger it itself, right?

Yes, PX4 would have to support https://mavlink.io/en/messages/common.html#MAV_CMD_IMAGE_START_CAPTURE.

Yes, PX4 would have to support https://mavlink.io/en/messages/common.html#MAV_CMD_IMAGE_START_CAPTURE.

Indeed, however, the command ack I get after sending the command you mention, it gives me a MAV_RESULT = 3 (UNSUPPORTED).
Here the code sending the command:
from pymavlink import mavutil

master = mavutil.mavlink_connection("/dev/ttyUSB0", 57600, source_system=255, source_component=190)
master.wait_heartbeat()

while True:

    # Send image trigger command

    master.mav.command_long_send(
                #master.target_system, master.target_component, mavutil.mavlink.MAV_CMD_IMAGE_START_CAPTURE, 0,
                #float("NaN"),
                #0, 1, 1,
                #float("NaN"), float("NaN"), float("NaN"))

    cmd_ack = master.recv_match(type=["COMMAND_ACK"],blocking=True)

    print(cmd_ack)

But the camera is not a mavlink camera.

Oh, I don't really know how the setup works then. But PX4 has to behave like the mavlink camera then, and it should trigger it itself, right?

Yes that is what I would expect

That API is not supported by PX4. You need a camera server that talks mavlink and can answer.


ChangeEntityWorldEvent.Pre#setDestinationWorld with portals

SpongeVanilla version: 1.16.4-8.0.0 (commit 4cf1748098a245f9bdc603511de081bb0cfa5eab
Java version: 8
Operating System: Windows 10
Plugins: Cosmos

Hey,
I'm basically trying to re-introduced the portal-agents that existed in API-7, but in my plugins as Sponge decided to leave this type of implementation to developers.
In doing so, I'm using the event ChangeEntityWorldEvent.Pre, which has a setDestinationWorld method to redirect the players using a portal.
I have internal commands that give me the possibility to select the destination world from an origin world through a portal type.
@Listener
public void onPostChangeEntityWorldEvent(final ChangeEntityWorldEvent.Pre event) {
    final Optional<MovementType> optionalMovementType = event.getContext().get(EventContextKeys.MOVEMENT_TYPE);

    if (!optionalMovementType.isPresent() || !MovementTypes.PORTAL.get().equals(optionalMovementType.get())) {
        return;
    }

    final Optional<PortalType> optionalPortalType = event.getCause().first(PortalType.class);

    if (!optionalPortalType.isPresent()) {
        return;
    }

    this.portalService.findDispatcher(event.getOriginalWorld().getKey())
            .flatMap(portalDispatcher -> portalDispatcher.findLinkedWorld(optionalPortalType.get()))
            .ifPresent(event::setDestinationWorld);
}

Using this code, I found some bugs related to the portal API.

The most problematic is that when I link an overworld to another overworld through a nether portal, I'm not telelported at all.
Also, when trying to travel through the portal once, the ChangeEntityWorldEvent.Pre event is not fired anymore.
I have to disconnect from the server and reconnect to be able to fire again the event.
For me, it's like my player was considered removed from the list of entities onto the overworld I was originally.
When I'm debugging this, I end up to this line in the EntityMixin method bridge$changeDimension :

When I link the overworld to the end through a nether portal (yeah kind of weird but I'm trying everything).
It generates a plateform specific to an end_portal

I was expecting to create a nether portal instead.

Well this one is not related to the setDestinationWorld method but I discovered it playing with portals and dimensions.
When I create an additional Nether dimension, I'm not able to create any portal into, I don't know why.
It works perfectly fine in the vanilla nether (minecraft:the_nether).
I already tested to create an end portal in an additional the_end dimension and it worked.
Thanks for reading this issue

Point 1 is fixed. I think I've also fixed points 2 and 3 but if you get a point any time soon, please give it a go (if not, I'll circle back later)
Basically, I had a boolean set in the wrong place, and I've gone and disabled certain dimension checks when looking for portals when setting a non-standard world for a portal. With a bit of luck, that should fix all the problems.


Fix the doxy for EnoughData encoder status

Make it future proof in case a frame queue limit is introduced.

Please rebase on top of the current master so the CI won't fail for unrelated code.

Done.

Thank you!


upgrade to CUDA.jl 4

Purpose
Add support for CUDA.jl 4
To-do

Content

[ ] I have read and checked the items on the review checklist.

bors r+


What is requirements.txt used for?

grep -r "requirements" * from root returned nothing.
What is requirements.txt used for? If it's nothing, can we delete it?

We should get rid of it if it's unused.


Update applications info stored in the filestore when deleting apps

What this PR does / why we need it:
This PR is that the ops in the Cotrol Plane don't show insight_applications_total for the project deleted all apps.
We can get the metrics from the ops component in the Control Plane by calling /metrics.
insight_applications_total is the metric created by the flow below.

Currently, the insight collector doesn't update application info in the filestore for the project which is deleted all apps.
This is because the only not deleted application info is updated after deleting all apps in the project.
So I fixed to update the app info as an empty array after deleting all apps in the project.
Fixes

get all status apps and check them later to init appsByProject to store the app info as an empty array feae904

Which issue(s) this PR fixes:
Fixes #4941
Does this PR introduce a user-facing change?:

How are users affected by this change:
Is this breaking change:
How to migrate (if breaking change):

checking the behavior
not to show the metric after deleting the apps in the project test.
before deleting apps
% curl http://localhost:9085/metrics | grep insight_application_total
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --100  6910    0  6910    0     0   151k      0 --:--:-- --:--:-- --:--:--  173k
# HELP insight_application_total Number of applications currently controlled by control plane
# TYPE insight_application_total gauge
insight_application_total{app_kind="KUBERNETES",pipecd_component="ops",project="test"} 2

after deleting apps
% curl http://localhost:9085/metrics | grep insight_application_total
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --100  6691    0  6691    0     0   154k      0 --:--:-- --:--:-- --:--:--  171k

Nice work @ffjlabo I just left some nits 🙏

@khanhtc1202 thanks for the comment, I fixed them🙏


Custom arguments and environment variables.

Added possibility to set custom arguments and environment variables.
One bug fixed: https://github.com/michel-kraemer/gradle-download-task/issues/47

Is there a reason for closing but nor merging this PR?
We are very interested in the environment variable support that is added in this PR.
Is there any easy workaround with the current plugin?

Sorry for the delay on reviewing this :(
First of all, thanks for the contribution!
For the custom extra arguments, are there any specific ones? Maybe we should add them as properties in the plugin itself instead.

Reasons for closing this PR:

We have limitation on Gradle version higher than 2.14 with download plugin version lower than 3.1.0 (https://github.com/michel-kraemer/gradle-download-task/issues/49)
Increasing download plugin version caused new problem. (https://github.com/michel-kraemer/gradle-download-task/issues/58). I have no idea how to fix it.

I'm interesting in  /labels /noshadow /nologo /timeout /output and /xml without prefix. But in my opinion adding extra arguments field is more flexible solution.

:+1: from me

I'm not fond of generic pass-through variables, as it defeats the purpose of having a plugin in the first place (if all you want is write the nunit command-line yourself, nothing will do a better job as using an Exec task directly).
For the options you mention, labels/noshadow/timeout/xml are already available, I'd say that nologo should be set by default, so only /output remains. An option could be added, though the common practice (to my knowledge) is to have UT text report in your build log rather than a separate file.
I assume these options come from migrating from a script build approach ?

(note that I upgrade gradle/download/httpclient on master and released 1.9 with it, should fix gradle-related issues)

@gluck : What about the env var support? We are passing environment variables that control the placement of test artifacts in prebuilt C# test assemblies.
Do you have a suggestion for them?

Totally okay with that one, I missed the fact it was your pain point or I would have included it in the earlier release sorry.
Feel free to PR just that

Yes these options from migration.
Finally i added output option and env variables. From my point of view output option will not be superfluous.

Btw, you should rebase against latest changes, seems there are some conflicts on README.md

Environment method is based on Map.putAll(). That's why empty env does not change execution, but null causes NullPointerException. I fixed it.
Integration crashes on nunit 3.5 test. What will we do about it?
Sorry for a delay.

Why don't you merge the request?

When do you plan to merge this pull request?
I'm also interested in having the possibility to define environment variables...
BTW, great work! Thank you for the Ullink Gradle plugins!

Great! Thanks!
I guess some one needs to push a release?
Version 1.11 is not released yet on plugins.gradle.org ...
Or is on the way? Did not see it on AppVeyor nor Travis.

will do a release once the fix for #42 is ready, thanks for patient

@ngyukman I saw the release is done on GitHub. Thank you!
When do you plan to publish it https://plugins.gradle.org/plugin/com.ullink.nunit?

@kuniss sorry that we are having some problem with the release in https://plugins.gradle.org/
but you can reference to the maven repo https://bintray.com/ullink/gradle-plugins/com.ullink.gradle:gradle-nunit-plugin for now, we will fix it once we have resolved the release issue

No problem!
I will wait or use the repo dependency.
Thank you, for coming back with a note!
Am 13.07.2017 um 11:42 schrieb Ng Yuk Man:

@kuniss https://github.com/kuniss sorry that we are having some
problem with the release in https://plugins.gradle.org/
but you can reference to the maven repo
https://bintray.com/ullink/gradle-plugins/com.ullink.gradle:gradle-nunit-plugin
for now, we will fix it once we have resolved the release issue
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Ullink/gradle-nunit-plugin/pull/33#issuecomment-315028250,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABDoA_i48sEELrYLJG5f9IpxjTpzYb5Tks5sNeafgaJpZM4J1oO0.


Fix dogfood VSIX to opt into project system

The keys changed, fix them so that we opt into csproj for F5.

tag @dotnet/roslyn-infrastructure @srivatsn

👍

Do we need to capitalize these in the CS/VB packages as well?

No it doesn't really matter, I just did it because of my OCD.


Support more response placeholders

I want to log response header in log directive, is it possible to add a placeholder to support it?
{>Header}  --> request header
{<Header}  --> response header

hi viscanso, thank you for the feature request.  Do you have a specific use case in mind for this?

No specific use case. I want this feature to be similar as the feature of Nginx

Wish granted. Thanks @tobya!


Support collecting logs of log4j, log4j2, and logback in the tracing context

Add an agent plugin to support

[x] Add a test case for the new plugin, refer to the doc
[x] Add a component id in the component-libraries.yml NO NEED
[x] Add a logo in the UI repo NO NEED

Related Issues

#4545
#5863

Please follow the pull request template.

I don't have the ability to modify this PR. I've taken this and added the implementations for log4j and log4j2. I'm unsure how to get them here.

I've added some improvements to @vcjmhg's work here, mainly just taking their example implementation in logback and adding it for log4j & log4j2. I also borrowed code from here. It wasn't present in this PR but was already the correct solution.
If it looks good to @vcjmhg, I think we can move on to writing the test cases.

Hello, I have a question. If an exception occurs in async thread, means ContextManager.activeSpan() is null, Isn't this error log recorded?

Hello, I have a question. If an exception occurs in async thread, means ContextManager.activeSpan() is null, Isn't this error log recorded?

This is out of scope. This plugin is for the tracing scope log. If you want to look for more log collection/analysis, check the skywalking-satellite subproject.

Hello, I have a question. If an exception occurs in async thread, means ContextManager.activeSpan() is null, Isn't this error log recorded?

This is out of scope. This plugin is for the tracing scope log. If you want to look for more log collection/analysis, check the skywalking-satellite subproject.

got it.

Added implementation for most versions of each log system being monitored via this plugin

I think this feature is good for me. But there are some questions in my mind:

Only collect log when having an active span. But we all know the active span depends on the coverage of agents. Maybe we would lose some usage logs when no agent coverage.
When we coupling the logs and trace in the segment, maybe this way would add more memory cost. For example, in our department, the maximum throughput is about 1000 ops in a pod, and the average size of each log is about 7.5KB. I am not sure about the final cost when using the feature in production.
Extract metrics for Log to observe or monitor is a common way of production. This kind of sending adds complexity.

@EvanLjp We have the log integrated solution, which is complex, and binding it with trace is requiring the backend change for adding log module.
The log module is discussed in the satellite proposal, and we agree we should add later, but not now.
This plugin as optional, is very easy to add without much change on backend and UI.
In my understanding, this plugin is totally good for now.

I think this feature is good for me. But there are some questions in my mind:

Only collect log when having an active span. But we all know the active span depends on the coverage of agents. Maybe we would lose some usage logs when no agent coverage.

When we coupling the logs and trace in the segment, maybe this way would add more memory cost. For example, in our department, the maximum throughput is about 1000 ops in a pod, and the average size of each log is about 7.5KB. I am not sure about the final cost when using the feature in production.

Extract metrics for Log to observe or monitor is a common way of production. This kind of sending adds complexity.

@wu-sheng  I prefer to add more appenders on each log framework to collect log. The user often uses TraceId or SpanId to search log on Trace Query UI. But we also support an original way to query, such as the slogan ' just grep' in Loki.

Sorry，the above comment ignores the premise of only collecting errors. If only  collect the error log, I think it can be added as an optional plugin. The above comment will not be deleted, and can be used as a reference for us when adding the log collection.

Sorry，the above comment ignores the premise of only collecting errors. If only collect the error log, I think it can be added as an optional plugin. The above comment will not be deleted and can be used as a reference for us when adding the log collection in Satellite.

@EvanLjp Agree, the comments are reasonable. We have this plugin just for the short term.
To @vcjmhg, when you finalize this PR, please add docs at the optional plugin section about that, this plugin would cost obvious extra resources, including CPU, memory, and network.

To @vcjmhg, when you finalize this PR, please add docs at the optional plugin section about that, this plugin would cost obvious extra resources, including CPU, memory, and network.

The document has been updated and the relevant commit is here. After finish this PR, I will remove the project to skywalking/apm-sniffer/optional-plugins

@wu-sheng @BFergerson , I have moved the logger-plugin project into optional-plugins and updated the documents.

Please check CI status.

Please check CI status.

@wu-sheng ，CI has passed.

Supported-list.md doc has been updated.

Supported-list.md doc has been updated.

You still miss this.

@BFergerson @kezhenxu94 Please recheck.

Update this, https://github.com/apache/skywalking/blob/master/CHANGES.md

Another question, I can't find the description that, the original log4j.xml(or other config files) has high priority than the logconfig.properties in your doc.

I can't find logconfig.properties in your plugin tests, and also, no UT is about it.  I feel this is not included in testing?

I can't find logconfig.properties in your plugin tests, and also, no UT is about it. I feel this is not included in testing?

ok, I will add some test cases for logconfig.properties in UT.

I think it can be slightly more efficient with the changes I made here: https://github.com/vcjmhg/skywalking/pull/11
Besides that, LGTM.

@vcjmhg Please check the PR for you.

I think we are facing a test failure? Please recheck codes.

CI failure.

ok, I will check it.

unsubscribe


Teamcity reporter modified to send proper coverage values

Changes:

Added CodeCoverageAbsBCovered, CodeCoverageAbsBTotal  as statement coverage metrics
Added CodeCoverageAbsRCovered, CodeCoverageAbsRCovered as branch coverage metrics
Removed CodeCoverageB, CodeCoverageM, CodeCoverageL as TeamCity will not use them.
Modified test

TeamCity documentation states this:

You should not publish values CodeCoverageB, CodeCoverageL, CodeCoverageM, CodeCoverageC standing for block/line/method/class coverage percentage. TeamCity will calculate these values using their absolute parts. E.g. CodeCoverageL will be calculated as CodeCoverageAbsLCovered divided by CodeCoverageAbsLTotal. You could publish these values but in this case they will lack decimal parts and will not be useful.

Coverage increased (+0.001%) to 97.524% when pulling d2e7776015c7028cb91952e3e2f2d4636f16a00f on mracz:master into fef889b14850bb35598599cb5b1954fd06d9993f on gotwarlost:master.


don't swallow async errors when the form is not valid

re-submitting a form that was invalid and untouched with async errors would swallow async errors in onSubmitFail.
refer: https://github.com/erikras/redux-form/issues/1367
cc @erikras @danielrob @gustavohenke

Codecov Report

Merging #3300 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff           @@
##           master   #3300   +/-   ##
======================================
  Coverage     100%    100%
======================================
  Files          68      68
  Lines        1521    1522    +1
======================================
+ Hits         1521    1522    +1

Impacted Files
Coverage Δ

src/handleSubmit.js
100% <100%> (ø)
: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 171ed68...217d34d. Read the comment docs.

can anyone look at this? this is a blocker for us right now.

@chirag04 I'm on vacation with limited connectivity until Tuesday, so this won't be released for a few more days.

No worries. We pushed from a fork for now. Thanks for merging.

@erikras friendly ping for a release :) would love to get rid of our fork.

Published as v7.0.4.


Feature-Request: closest/best match

Would be nice, if we could do this: "My string".closest([array of strings]) and would give back the index(es) of the best match(es). (Multiple results if their score is the same, but the content is not.)

This is a perfect example of how string score can be used. You could use the each method of underscore js to give you an array of string scores and use the min or max method of underscore to give you the best or worst matches.

I made a pull request for posterity, in case someone would like to see a working example. An important thing to remember is, what we are comparing to what. Are we comparing many strings to one string, or one string to many? The results will be different.
This solution compares many to one. Meaning you can check if from a selection, what is most similar to your string. It is not for checking what your string is most similar to. (Maybe I should make one for that too...)


Uncaught TypeError: Cannot read property '_leaflet_id' of undefined

        removeMarker: function (marker, redraw) {
            var fn = function (a, b) {
                return a.data._leaflet_id === b.data._leaflet_id;
            };

VM29:1877 Uncaught TypeError: Cannot read property '_leaflet_id' of undefined
    at fn (<anonymous>:1877:31)
    at <anonymous>:1356:3229
    at e.remove (<anonymous>:1356:3257)
    at NewClass._removeGeneric (<anonymous>:1903:37)
    at NewClass.removeMarker (<anonymous>:1894:18)
    at NewClass.removeLayer (<anonymous>:1873:18)
    at <anonymous>:20332:23
    at Array.forEach (<anonymous>)
    at Object.removePortal (<anonymous>:20330:27)
    at window.Render.deletePortalEntity (<anonymous>:19154:22)

This is real problem.
layer has marker but removeMarker just fails.


E492: Not an editor command: NERDTree in vim9.0

你好 我在vim9.0版本上安装一直不成功，一直报这个错误 E492: Not an editor command: NERDTree请问怎么解决呀，我已经把代码clone 到了 ~/.vim/pack/vendor/start/nerdtree目录下了

It probably has to do with your config.
I'm going to close this issue, feel free to reopen it if you have any further questions.


footer added

Related Issue
Add footer in Hacktoberfest page #360
Close #360
Proposed Changes
-Added Footer in Hacktoberfest page
-Added margin to the card and footer
Additional Info

Checklist

[X] ✅ My code follows the code style of this project.
[ ] 📝 My change requires a change to the documentation.
[ ] 🎀 I have updated the documentation accordingly.
[X] 🌟 ed the repo

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

@agamjotsingh18 Please check

@agamjotsingh18 Please merge this


How to Load pre created excel file with shape? i load excel file and edit it.after download shapes are missing on my file.what is the reason for that and how to do with it. i use version 2.1

i use version 2.1 and i cant upgrade it because yajra data table button  not support with 3.1 and give a upgrading error.

Sorry we don't support 2.1 for over 2 years anymore.


add personal points percent and unique chance percent

Adds percent that shows what fraction of total points are your points.
Also adds the option to see what are the chances of getting a single item unique roll for personal and total points.

This would also correspond to runelite/runelite#9760

seems fine but I am too lazy to test so if this breaks I blame you.


LIBRARY RFID-MASTER (Problem to compile)

OS version:  Windows Operative system of 64 bits .
Arduino IDE version: 1.8.9 .
rfid-master Library version: 1.4.4
Arduino device: None.. I´m using the Board LinkIT ONE.
rfid-master device: RFID RC522.

Step 2: Describe the problem
Hi! I'm wondering if you can help me with a problem I´m using the library rfid-master (version 1.4.4) to work with an RFID RC522 and the board IinkIT ONE, I have compile the code but there is a problem with the architecture of the library, because linkIT ONE works with ARM. The code error is this:
ATTENTION: The library  rfid-master pretends to run  about architecture(s) (avr, STM32F1, teensy, esp8266, samd) and it can't be incompatible with your current card which runs on architecture (s) (arm).
In file included from W:\Users\Adriana\Documents\Arduino\libraries\rfid-master\src/MFRC522.h:78:0,
from W:\Users\Adriana\Documents\Arduino\libraries\rfid-master\examples\DumpInfo\DumpInfo.ino:37:
W:\Users\Adriana\Documents\Arduino\libraries\rfid-master\src/require_cpp11.h:9:2: error: #error "This library needs at least a C++11 compliant compiler, maybe compiler argument for C++11 support is missing or if you use Arduino IDE upgrade to version >=1.6.6"
#error "This library needs at least a C++11 compliant compiler, maybe compiler argument for C++11 support is missing or if you use Arduino IDE upgrade to version >=1.6.6"
^
exit status 1
Error compiling for the card LinkIt ONE.
Affected file(s) or example(s):
It doesn't work... And the pins configurations are all correct.
Relevant Code:
  // TODO(you): code here to reproduce the problem

This library needs at least a C++11 compliant compiler, maybe compiler argument for C++11 support is missing or if you use Arduino IDE upgrade to version >=1.6.6

You need C++11 support. Maybe you find in the internet how to or ask the LinkIT ONE support how to enable.


Tool to diff between manifest generated through iop and either cluster or manifest file

To assist with migration, iop install tool must guarantee that a new cluster installed with a user config installed with the new API will be identical a previous version installed with helm.
To help with the migration, a tool is being created to migrate values.yaml to the new API but as a verification, a diff tool is required also.

the manifest-diff cmd was merged


[SPARK-35871][SQL] Literal.create(value, dataType) should support fields

What changes were proposed in this pull request?
Current Literal.create(data, dataType) for Period to YearMonthIntervalType and Duration to DayTimeIntervalType is not correct.
if data type is Period/Duration, it will create converter of default YearMonthIntervalType/DayTimeIntervalType,  then the result is not correct, this pr fix this bug.
Why are the changes needed?
Fix  bug when use Literal.create()
Does this PR introduce any user-facing change?
No
How was this patch tested?
Added UT

FYI @MaxGekk @cloud-fan

Test build #140247 has started for PR 33056 at commit 775f6fe.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44776/

Test build #140253 has started for PR 33056 at commit e878815.

Test build #140253 has finished for PR 33056 at commit e878815.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

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

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44776/

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

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44782/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44782/

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

Test build #140258 has started for PR 33056 at commit 0c58d26.

Test build #140259 has started for PR 33056 at commit edf23d0.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44787/

Test build #140258 has finished for PR 33056 at commit 0c58d26.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44787/

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44788/

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

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

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

I have reverted the tests:

https://github.com/apache/spark/pull/33060
https://github.com/apache/spark/pull/33059

@AngersZhuuuu Could you rebase/merge on the master.

Test build #140247 has finished for PR 33056 at commit 775f6fe.

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

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

I have reverted the tests:

Revert "[SPARK-35728][SQL][TESTS] Check multiply/divide of day-time intervals of any fields by numeric" #33060
Revert "[SPARK-35778][SQL][TESTS] Check multiply/divide of year month interval of any fields by numeric" #33059

@AngersZhuuuu Could you rebase/merge on the master.

I have revert the change

Test build #140266 has started for PR 33056 at commit 15390a1.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44796/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44796/

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

Test build #140259 has finished for PR 33056 at commit edf23d0.

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

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

Test build #140266 has finished for PR 33056 at commit 15390a1.

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

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


chore: Change permissions in semantic-pr-title workflow

Pull Request Description
Description:
Change permissions in action pr workflow
Checklist

[ ] I have added the appropriate prefix  to the pull request title
[ ] The CI tests are passing for this pull request.
[ ] The pre-commit run -a hooks are passing for this pull request.

This PR is included in version 0.5.0 :tada:


Disable OptaplannerTest.solveSync on CI

OptaPlanner solve sync test seems to fail quite frequently on CI so disabling it until there's a solution.

Somewhat ironically, the async test failed too :smile:
So I'll disable that one also.


Fixed onclick hidden values

Related Ticket(s)
Noitce & Choice w3 Publisher
Description
Notice & Choice is a legally required component to create a form where IBM collects its customer information.
This section shows the specific product's legal links, terms, and conditions. Along with it, it collects users' consent regarding communication preferences.
Changelog
New

A new web component to create a notice & choice user interface.

Changed

Notice and Choice content loaded by languages.
Set the default language to English.
Gain access to the hidden email and phone fields.

Removed

Postal option removed from new notice and choice version

I have read the DCO document and I hereby sign the DCO.


Support for GREL md5 and sha1 functions

Are there any plans to add support for GREL's md5 and sha1 functions?  I noticed in they were comments out.

Hi @CyberDaedalus00 , these functions are now implemented v0.6.1 of https://github.com/FnOio/grel-functions-java , and included in release v4.9.2, hopefully this works for you!

I'm interested in this topic, but cannot find examples of usage...any URL you could redirect me to, please?

The resulting mapping file would be very similar to the one at https://github.com/RMLio/rmlmapper-java/blob/master/src/test/resources/rml-fno-test-cases/RMLFNOTC0001-CSV/mapping.ttl , but then using http://users.ugent.be/~bjdmeest/function/grel.ttl#string_md5 instead of http://users.ugent.be/~bjdmeest/function/grel.ttl#toUpperCase on line 34.
You can check all by default supported functions, and how to invoke their parameters at https://rml.io/docs/rmlmapper/default-functions/