runtime: unexpected SIGURG in TestCgoCallbackGC on openbsd-386-62 builder

--- FAIL: TestCgoCallbackGC (13.52s)
    crash_test.go:95: testprogcgo CgoCallbackGC exit status: signal: urgent I/O condition
    crash_cgo_test.go:70: expected "OK\n", but got:
FAIL
FAIL	runtime	86.188s

2020-01-31T23:32:02-53558cb/openbsd-386-62
Given the SIGURG, I'm guessing this is related to the 1.14 preemption changes.
Is this a bug in the runtime, or does the test need to be updated to account for the preemption signals?
@aclements @mknyszek @ianlancetaylor

Marking as release-blocker until we understand the impact.

OpenBSD is not a first-class port per https://golang.org/wiki/PortingPolicy, so I don't think an occasional failure on OpenBSD counts as a release blocker.
But of course it would be nice to understand this.

Since we only have N=1 test failures, I don't think we have enough evidence to say whether the issue is OpenBSD-specific at this point. (And even with a larger N, sometimes builder timing or other variations can cause an issue that affects multiple platforms to only manifest on one specific builder.)

I'm 99% sure it's a problem with the test.  We should be blocking signal before creating the new C thread.

Although that does suggest a possible problem for Go programs that call C code that creates new threads.  Hmmm.  We aren't seeing problems on GNU/Linux.  I may be mistaken.

I note that on GNU/Linux go test -test.count=100 -test.run=TestCgoCallbackGC runtime runs in about 8 seconds.  On the openbsd-386-62 gomote it takes about 90 seconds.

This is strange.  The process is dying of a SIGURG signal.  But the default action for a SIGURG signal is to ignore the signal.
So far I've run the test several thousand times under ktrace on the openbsd-386-62 gomote.  I was able to get one failure.  Unfortunately, the gomote then crashed before I could look at all the data.  The gomote continues to crash periodically, forcing me to rebuild everything before I can do more testing.  I'm still trying.

I think I see the problem.
This test case has a C thread that calls into Go code.  The scheduler will sometimes decide to preempt that Go code.  When that happens, the scheduler will send a SIGURG signal to the thread.  That signal will only be sent if the scheduler believes that the thread is executing Go code.
However, it possible that by the time the signal is delivered, the thread is no longer executing Go code.  In that case, the thread-local 'g' variable will be nil.  The Go runtime will have installed a signal handler for SIGURG, which will call sigtrampgo.  That function will fetch g, find that it is nil, and then call badsignal.  The badsignal function will call raisebadsignal to raise a SIGURG signal for the thread.
All those steps can happen on any system.  Normally, it causes a bit of extra work but no actual harm, as SIGURG is ignored by default.
However, the OpenBSD 6.2 kernel appears to have a race condition.  If thread 1 changes the SIGURG signal to SIG_DFL while thread 2 sends a SIGURG to thread 3, it appears that the program can fail as though it were killed by a SIGURG signal, even though that is supposed to be impossible.
This program shows the problem.  It exits with 0 on GNU/Linux, and with 144 (SIGURG) on OpenBSD 6.2 (at least on 386 OpenBSD 6.2).  The program does not fail with SIGURG on OpenBSD 6.4, either 386 or amd64, so it is likely that the race condition, if there was one, has been fixed.

#include <errno.h>
#include <pthread.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

/* Die with an error message.  */
static int die(const char *s) {
  perror(s);
  exit(EXIT_FAILURE);
}

/* Signal handler.  */
static void handler(int sig, siginfo_t* info, void *ctxt) {
  sigset_t set;
  struct sigaction sa;
  struct timespec ts;

  /* Set the signal handler to the default handler.  */
  memset(&sa, 0, sizeof sa);
  sa.sa_handler = SIG_DFL;
  if (sigfillset(&sa.sa_mask) < 0) {
    die("sigfillset");
  }
  sa.sa_flags = SA_SIGINFO | SA_ONSTACK | SA_RESTART;
  if (sigaction(sig, &sa, NULL) < 0) {
    die("sigaction");
  }

  /* Unblock the signal.  */
  if (sigemptyset(&set) < 0) {
    die("sigemptyset");
  }
  if (sigaddset(&set, sig) < 0) {
    die("sigaddset");
  }
  if (sigprocmask(SIG_UNBLOCK, &set, NULL) < 0) {
    die("sigprocmask");
  }

  /* Sleep for ten microseconds.  */
  memset(&ts, 0, sizeof ts);
  ts.tv_nsec = 10000;
  nanosleep(&ts, NULL);

  /* Block the signal.  */
  if (sigprocmask(SIG_BLOCK, &set, NULL) < 0) {
    die("sigprocmask");
  }

  /* Set the signal handler back to this handler.  */
  sa.sa_sigaction = handler;
  if (sigaction(sig, &sa, NULL) < 0) {
    die("sigaction");
  }
}

/* Thread that just waits for a signal.  */
static void *thread_waiter(void *arg) {
  sigset_t mask;

  if (sigemptyset(&mask) < 0) {
    die("sigemptyset");
  }
  while (1) {
    sigsuspend(&mask);
  }
  return NULL;
}

/* Thread that sends regular SIGURG signal to the tid passed in arg.  */
static void *thread_sender(void *arg) {
  pthread_t* ptid;
  int i;

  ptid = (pthread_t*)arg;
  for (i = 0; i < 10000000; i++) {
    int err;

    err = pthread_kill(ptid[0], SIGURG);
    if (err != 0) {
      errno = err;
      die("pthread_kill");
    }

    err = pthread_kill(ptid[1], SIGURG);
    if (err != 0) {
      errno = err;
      die("pthread_kill");
    }
  }
  return NULL;
}

int main() {
  struct sigaction sa;
  pthread_t waiter;
  pthread_t sendto[2];
  pthread_t sender;
  int err;
  struct timespec ts;

  /* Arrange to set up a signal handler for SIGURG.  */
  memset(&sa, 0, sizeof sa);
  sa.sa_sigaction = handler;
  if (sigfillset(&sa.sa_mask) < 0) {
    die("sigfillset");
  }
  sa.sa_flags = SA_SIGINFO | SA_ONSTACK | SA_RESTART;
  if (sigaction(SIGURG, &sa, NULL) < 0) {
    die("sigaction");
  }

  /* Start the waiter thread.  */
  err = pthread_create(&waiter, NULL, thread_waiter, NULL);
  if (err != 0) {
    errno = err;
    die("pthread_create");
  }

  /* Start the sender thread.  */
  sendto[0] = pthread_self();
  sendto[1] = waiter;
  err = pthread_create(&sender, NULL, thread_sender, (void *)(&sendto[0]));
  if (err != 0) {
    errno = err;
    die("pthread_create");
  }

  /* Run for five seconds.  */
  memset(&ts, 0, sizeof ts);
  ts.tv_sec = 6;
  while (ts.tv_sec > 0) {
    if (nanosleep(&ts, &ts) == 0) {
      break;
    }
  }

  return 0;
}

I think the fix is going to be to avoid raising SIGURG as a bad signal.

cc @mdempsky because for keywords "openbsd kernel"

If this is 6.2-specific then #35712 is related. Switching to only have builders with the supported OpenBSD releases as @4a6f656c suggests, may resolve this.


Update stable version in repo from 0.3.4 to 0.3.5

Think about update stable version to 0.3.5
Version: stable=0.3.4 (92 days old) => latest=0.3.5 (15 days old)
Installs: stable=573 (68.13%), latest=125 (14.86%), total=841
Click to edit

updated! https://github.com/ioBroker/ioBroker.repositories/pull/1390


[stable/prometheus] Add RollingUpdate for Prometheus node-exporter ds

By default updateStrategy is OnDelete which needs manual deletion of all daemonsets for change to take affect

signed CNCF

@dhilipkumars bump on the PR

@prat0318 apologies for the delay. Could you re-base the PR?

@dhilipkumars done.

/ok-to-test


Command to preserve executables

By using the -e or --keep-executable flags, the executables under the second layer of target are preserved by moving them to a folder called executables.
directory
|-- target
    |-- debug
         |-- file.exe // preserved
    |-- release
         |-- somedirectory
              |-- file.exe // not preserved
    |-- crosscompile
         |-- file.exe // preserved
    |-- file.exe // not preserved

Not the most beautiful code, but it works:), but feel free to change it up.

Nice, thanks!
I retargeted the PR to the devel branch for now since I'll probably do some small refactoring to make it more inline with the style of rest of the project.
I have to check this again, but I think when cross-compiling it might create a structure like this: target/architecture-os/release-mode/executable.exe. So if this is the case, cross compiled executables would currently not be saved.
Also I am not sure if the is_executable function is able to detect executables that are not native in general. So if you crosscompile from linux to windows, I'm not sure if the windows executable is detected as such.
That being said, crosscompilation is kind of an edge case and this feature is optional. So if it only works for normal native executables, that is still an improvement

Hi,
Welcome:). Was thinking of pushing to devel, but it was 8 commit behind for some reason, so decided for master.
The architecture-os name is fine. It can be any name there I believe. As long as there is a folder. It currently finds the target folder, then any other folder on first depth level in there, and checks for executables. It could also go recursively deeper into it, but then it finds executables that are from pulled crates, so that is a bad idea.
For non native executables, I don't know either. My docker is broken for some reason so I can't test it at the moment.
Looking forward to the rewrite:), I was looking at your style and was like "yep this person has a lot more experience with rust than me"

Hey! Sorry for forgetting to publish your PR in over 3 months 💀.
I fixed up the remaining edge cases and it's in the new version 0.6.0. A simple cargo install cargo-clean-all should update you to the latest stable version


Information inconclusive from a client (as in Windows 10 computer) perspective

The information on this page is inconclusive. It describes a security setting affecting the "SMB server" component. This means on a Windows 10 computer it should affect the computer only if it serves as a "SMB server" - so provides e.g. file shares to other Windows 10 computers.
However on the page is a warning that this setting should be tested carefully because it "will prevent some clients from successfully authenticating to some servers in your environment". In this sentence "servers" would always be interpreted as actual Windows Server servers, like Domain Controllers and File Servers, not Windows 10 computers (= clients).
But if the setting is applied to a Windows 10 client, how would that affect authentication to any servers that client is trying to access? It should not, as this setting is only affecting the SMB server-component. Am I right?
I therefore think it should be made clearer if this setting - when applied to a Windows 10 computer - indeed will also affect connections to other servers (as in e.g. a file server), or only connections to that specific Windows 10 computer (from other computers).

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2bbdaa9a-f5a1-ce45-bba1-b895287b96f6
Version Independent ID: 33e69051-dec8-8137-f854-0b2e3766f62a
Content: Microsoft network server Server SPN target name validation level (Windows 10) - Windows security
Content Source: windows/security/threat-protection/security-policy-settings/microsoft-network-server-server-spn-target-name-validation-level.md
Product: w10
Technology: windows
GitHub Login: @Dansimp
Microsoft Alias: dansimp

@EckeD thank you for reaching out. I'm busy researching this, but in the meantime please have a look at this article and let me know if this helps at all - https://docs.microsoft.com/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3

@EckeD  We appreciate any feedback that improves the content in the Microsoft docs but we haven't had any response from you so we are going to close this issue.
Please feel free to re-open this issue if there is a specific content change you can suggest to improve the docs. Thank you.

@EckeD  We appreciate any feedback that improves the content in the Microsoft docs but we haven't had any response from you so we are going to close this issue.
Please feel free to re-open this issue if there is a specific content change you can suggest to improve the docs. Thank you.


pptx_painter: does not work without meta['sets']['spec']

Probably related to: #543
pptx_painter assumes that the meta has a spec in the sets object. Related to that, there are assumptions about the meta and pptx layout/structure that will only be true when facing an Omnibus template scenario.

no changes in pptx_painter
preparing template:
add meta['sets']['spec'] with data from "project.py"

@nitsrek i'm closing this - sounds like it doesn't need a fix. If not please re-open.


ls -CF should generate tab and not space

Not far from
https://github.com/uutils/coreutils/issues/3624
export C="./target/debug/coreutils "
rm -rf e
mkdir -p e/a2345 e/b
printf 'a2345/\tb/\n' > exp

${C}ls -CF e > out
diff -u out exp

tested by GNU:
bash util/run-gnu-test.sh  tests/ls/stat-dtype.sh

https://github.com/uutils/coreutils/pull/5397 might be a start

This should be added to uutils-term-grid. I'm not a big fan of it myself, but we could support it, as long as formatting with only spaces is still possible.

I am wondering what is the use case to replace spaces by tabs in the terminal in general...

Slightly less throughput of bytes maybe? I don't really know. The GNU docs just say "efficiency" (https://www.gnu.org/software/coreutils/manual/html_node/General-output-formatting.html).

Hello. Never contributed to anything before, and this seems like something I could do. How do I start?

Cool! This would first need to be implemented in the uutils-term-grid crate (which is in another repository), so that's where you can start. I would like to confirm with the other maintainers that we actually want this though. I guess that if we want to be fully compatible, we should. @sylvestre @cakebaker what do you think?

Yeah,we should do it

Alright! @5igh5 so we should first fix up uutils-term-grid so that it has an option for using tabs (with an option to specify how many spaces are replaced by a single tab). Then we can release that and use it in ls.

@tertsdiepraam @sylvestre
Add Tab option #24

So the issue in uutils-term-grid is solved then?

@5igh5 sorry but why do you think it is fixed ? :)

Isn't that the purpose of this PR? https://github.com/uutils/uutils-term-grid/pull/24

so... i should go ahead and create my own version of it?


Save State [Question]

Very interested in this project but wondering if there's anything similar to v86's emulator.save_state functionality: ex so there can be some level of persistence?

SGTM. Bochs seems to support saving/restoring simulation so we can use that feature.

Yes this is quite useful/important how difficult is it to implement the Bochs option in c2w sessions?


Fix DigitalOcean service and Add Status.io and Docker

DigitalOcean status page is now using statuspage.io so the class now extends the model StatusPagePlugin.
Status.io was added as a plugin (model StatusIOPlugin) so services powered by them can now be easily added. Their own status page was added as a service (named StatusIO) and also Docker was added.
Status.io works through a JSON API. If you use their service you will be assigned a page id and can create your own service only extending the StatusIOPlugin class and setting the value for the statuspage_id property. By default it requests the status from the status.io website, but if you have your own URL you can set it on the status_url property.

Thank you, merged!


"Spotty/Patchy" noise effect in L515

Required Info

Camera Model
L515

Firmware Version
<IP_ADDRESS>

Operating System & Version
Win10

Platform
PC

SDK Version
2.40.0

Language
{C/C++ }

Segment
AR

Issue Description
Hi everyone,
I am currently trying to use the L515 to detect near surface interactions of a user's hand. For this I build a basic background model to compare against consisting of an average+std-dev of 5s of data at 1024x768@30 from the LiDAR. I tried a working distance between 1.1m and 2.5m.
With the background in place I capture another depth frame of the same scene without changing anything and compare the newly acquired depth values to the previously (meaning a couple seconds beforehand) acquired background.
The issue (which is shown in the attached image) is that a major portion of the depth values is very noisy compared to the acquire background. Furthermore, the noise can not be described as white noise since it is happening in various spots rather than uniformly across the image.
The scene is from a white wall in my office with no lights turned on. There are windows where sunlight can enter.
Image legend:

White:  Error (can be ignored)
Black: below 1 StdDev from BG
DarkGrey: Within 1-2 StdDev from BG
Grey: Within 2-3 StdDev from BG
LightGrey: Above 3 StdDev from BG

Some pixels are also further away then the background by more than 2 StdDev but are not shown in this visualization.

Interpretation: Noise Level could be fine: 1 StdDev is ~68% of all pixels. But why is it patchy/spotty
Questions:

Where doe the patches/spots come from?
Is this a known physical effect?
Are there other background models better suited for LiDAR data?

Thanks for all the work you guys do!
Best,
Faaux

Looking at the noise distribution it works out, meaning it fits the expected percentage. The weird issue for me is the "spottiness" of the whole noise.

Another day and more information.
I was able to reproduce the test in a completely dark room with lights on and off. All scenarios show the same behavior.

Hi @Faaux
What specific settings, presets, etc for this setup/configuration?
You ask about background model, I'm trying to better understand what you are trying to accomplish.
You taking depth frames over a 5s interval and averaging the depth data, why add std-dev?

Hi @RealSenseSupport,
I am using the "Short Range" preset with no additional modifications. Resolution can be 640x480 or 1024x768, it does not change the observed effect.
The goal for me is to observe near surface interactions of object and hands. For this I build a background model, modelled as mean and std-dev for each depth pixel over period of time. I do this to estimate the noise level, which later on is used to determine if something is close to the surface and give an accuracy estimation. If I see that I have 9mm std-dev I can for example invalidate this pixel or react appropriately.
During this testing I found that the noise pattern seen above is observed. I was assuming to see something like white-noise, maybe even speckle or other noise patterns. When I saw these "Spots" I was wondering where they come from because I cant explain them and not model them either.
Spots are especially dangerous for me in the following scenario:
Estimating how far a finger is held above the surface. If a random "spot" lies on the finger the estimated depth will definitely be wrong by >1 std-dev. I also cant average the finger depth because it is a whole "spot" across the finger and not individual fingers pixels which are noisy. Naively I would have assumed white noise which can be averaged out when taking enough pixels into account. With regions of noise this is not as simple.
Since I cannot explain the "spot" phenomenon its hard for me to offer an explanation of why this is happening or how I could model it. Are there internal averaging mechanism at different resolutions or other assumptions that could lead to averaged regions? Maybe detector changes depending on the amount of reflected light that change the depth measurement in a specific region? I am assuming that it is internal L515 behavior because the same effect is seen in a (nearly) completely dark room (using short range preset)

Thanks for the explanation of your setup.
I think may be environmental related or reflectivity related.  The spots look like our the device isn't getting IR reflection from those spots.  If there is ambient light in the room or region or if the reflectivity of the hand, object or table/wall is not high.
We do have in the Depth Quality Tool the ability to check the reflectivity of an object or scene.  There is also the option within the RealSense Viewer to check the max usable range to help determine the max range the camera can see within the current ambient light environment.  Some suggestions or settings to maybe look at:  Controls - Invalidation bypass, reduce resolution to 320x240


Fix TestUserValidator

https://github.com/XTLS/Xray-core/runs/4017048502?check_suite_focus=true
TestUserValidator randomly fail because the time.Now() in test is slightly later than the base time in validator. If it happened to land on another second, the verification on the edge of 120 seconds will fail.
Fix it by referencing the base time in validator.

Codecov Report

Merging #1381 (109857e) into master (77b8817) will decrease coverage by 0.10%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1381      +/-   ##
==========================================
- Coverage   39.51%   39.41%   -0.11%
==========================================
  Files         597      589       -8
  Lines       34874    34778      -96
==========================================
- Hits        13782    13709      -73
+ Misses      19598    19573      -25
- Partials     1494     1496       +2

Impacted Files
Coverage Δ

proxy/vmess/validator.go
80.59% <100.00%> (ø)

transport/internet/http/errors.generated.go
0.00% <0.00%> (-100.00%)
:arrow_down:

testing/servers/tcp/tcp.go
81.81% <0.00%> (-5.46%)
:arrow_down:

testing/scenarios/common.go
73.07% <0.00%> (-4.62%)
:arrow_down:

common/log/logger.go
77.94% <0.00%> (-4.42%)
:arrow_down:

transport/internet/udp/hub.go
73.61% <0.00%> (-4.17%)
:arrow_down:

transport/internet/system_listener.go
50.00% <0.00%> (-4.00%)
:arrow_down:

transport/internet/websocket/connection.go
16.51% <0.00%> (-3.67%)
:arrow_down:

transport/internet/system_dialer.go
46.83% <0.00%> (-2.54%)
:arrow_down:

transport/internet/kcp/connection.go
69.61% <0.00%> (-2.21%)
:arrow_down:

... and 15 more

Continue to review full report at Codecov.

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

Directly expose the variable only for testing is usually not the best solution. Perhaps it is better to use something like function GetBaseTime().


Count minimum value not working for dates

Confirmation link

Deployed to beta.
Confirmation link passes.
Updated wiki docs: https://github.com/HXLStandard/hxl-proxy/wiki/Count-rows-filter


[WIP] Free Plans Filter

Pull Request Test Coverage Report for Build 1675

37 of 95 (38.95%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.4%) to 88.522%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

storage/postgres/visibility.go
0
11
0.0%

api/filters/free_plans.go
31
78
39.74%

Totals

Change from base Build 1652:
-1.4%

Covered Lines:
3139

Relevant Lines:
3546

💛  - Coveralls


Add HikariCP implementation of the ConnectionPool

We want users to have an option of HikariCP connection pool in addition to ZIO SQL native one.
This should be a wrapper over HikariDataSource that would implement zio.sql.ConnectionPool interface.
Should be implemented in a separate sbt module (eg. jdbc-hickaricp), so that it can be optionally imported and not "pollute" the dependencies of the main module.

I'd like to work on this


Issue 758

update wis2box-webapp once https://github.com/wmo-im/wis2box-api/pull/78 is approved/merged:
1.add "loadTemplatesFromAPI" function to replace static call to API dynamic call
2.remove "plugin-list.json" related part
3.add watch function to monitor
test pass:
when user click "ADD A PLUGIN",select "Plugin Name" to "CSV data converted to BUFR", template return by dynamic API.

I checked that it works functionally:

However looking at the code, I noted that you added a "watch"-function, I don't think this is required.  It is sufficient to load the templates once at startup

The function onMounted lists all actions taken on pageLoad:

To avoid confusion, I would like to see "loadTemplates" and "loadMappings" being called "onMounted"

@maaikelimper Thanks for reviewing, I remove "watch" part and rename new function to avoid confusion.
It works correctly as below:


add an 'id' attribute and include version in the URL.

@bf4 https://github.com/json-api/json-api/issues/1220
Implementing this will require putting this schema version at http://jsonapi.org/schema/1.0 and doing the same for http://jsonapi.org/schema/1.1 and so on as new versions roll out.  I note the current unversioned 1.0 schema is at http://jsonapi.org/schema.

Closing due to lack of interest


Improve error reporting of Mono builds and the code structure of hostfxr and Godot plugin initializations

Issues
Error reporting
After compiling a Mono build with option module_mono_enabled=yes, these errors are printed during execution.
This is an end-user issue caused by not generating Mono Glue as described in modules/mono/README.md.
Those errors provide no troubleshooting steps and no useful debugging information.
The specified runtimeconfig.json [/home/roland/Git/godot/bin/GodotSharp/Api/Debug/GodotPlugins.runtimeconfig.json] does not exist
ERROR: hostfxr_initialize_for_runtime_config failed with code: -2147450733
   at: initialize_hostfxr_for_config (modules/mono/mono_gd/gd_mono.cpp:201)
ERROR: Parameter "load_assembly_and_get_function_pointer" is null.
   at: initialize_hostfxr_and_godot_plugins (modules/mono/mono_gd/gd_mono.cpp:274)
ERROR: Parameter "godot_plugins_initialize" is null.
   at: initialize (modules/mono/mono_gd/gd_mono.cpp:403)

initialize_hostfxr_and_godot_plugins(bool &)
This function, as the name suggests, initializes both hostfxr and Godot plugins, the latter depending on the former.
There are no good reasons for those two functions to be merged together into one, as it violates the "do one thing" principle.
Resolution
Error reporting
In the same situation as before, these errors are now generated.
They provide clear troubleshooting steps, and useful debugging information.
WARNING: Mono glue not found. Consider running the next commands from the Godot source root and recompiling using `mono_glue=yes`:
<godot_binary> --generate-mono-glue ./modules/mono/glue
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir ./bin
     at: initialize_hostfxr (modules/mono/mono_gd/gd_mono.cpp:267)
ERROR: Could not initialize hostfxr.
   at: initialize_hostfxr (modules/mono/mono_gd/gd_mono.cpp:270)
ERROR: Could not initialize Godot plugins due to hostfxr being uninitialized.
   at: initialize_godot_plugins (modules/mono/mono_gd/gd_mono.cpp:284)
ERROR: Could not initialize GDMono due to Godot plugins being uninitialized.
   at: initialize (modules/mono/mono_gd/gd_mono.cpp:410)

Another issue that was faced by some is the accidental reversal of the two commands needed to generate Mono Glue.
For this reason, a warning to modules/mono/build_scripts/build_assemblies.py has been added.
WARNING: Mono glue not found.
Consider running the command `<godot_binary> --generate-mono-glue ./modules/mono/glue` from the Godot source root and recompiling using `mono_glue=yes`.

initialize_hostfxr_and_godot_plugins(bool &)
The function has been divided into initialize_hostfxr(bool &) and initialize_godot_plugins(load_assembly_and_get_function_pointer_fn).
The latter depends on the input of the former, the resulting behaviour remaining intact.
The original function supported both tools enabled and disabled, so do those new functions.
Some names have been changed to reduce redundancy while maintaining clarity.

I think the change to split the initialize_hostfxr_and_godot_plugins method is not very useful if we always use them together anyway. I agree with the "do one thing" principle but I don't think we need to follow it that closely, specially since this is not public API.

I see where you're coming from. Even though this change is not necessary, it is only beneficial as it improves readability and extensibility (which was important for quality error reporting). Analyzing the backtrace while debugging also yields more useful information.


collapse [markdown] cells in .py files

I guess that by enabling this feature, the clutter in the file could be smaller

I don't believe this is possible using VS code's API. It seems like it should be (as they provide collapsible ranges for code) but not sure we could do this without overwriting the typescript grammar.

Dupe of #5227


Mass Block Editing

This is a sampling of the current situation with WorldEdit running inside of Sponge:

I just started Warmroast and did an edit with ~110k blocks to get this sampling.
Block Workers
I've heard that we should be using BlockVolumeWorkers? However, correct me if I'm wrong, but their implementation seems to just be a wrapper around void setBlock(int x, int y, int z, BlockState block);
I've also heard some arguments for speeding the edit up by creating BlockStates off the main thread. Personally, I think that's pointless. We're constructing the BlockState inside of what is identified as com.sk89q.worldedit.sponge.SpongeWorld.setBlock() and as you can see, there is a hit of .4%, which is incredibly low -- assuming the only penalty there was the creation of the BlockState.
Additionally, please keep in mind that mod authors do not currently have to abide by any multi-threading standards, so they are free to do whatever they like when constructing a block state. We cannot make an guarantees about the retrieval of a BlockState in a multi threaded environment, and we shouldn't try to.
Unavoidable Hits
There's an unavoidable hit in the net.minecraft.world.World.markAndNotifyNeighbors() method. There's really not a way to work around having this hit, it's just what Minecraft needs to do to make blocks function properly.
Avoidable Hits
Sponge CauseTracking
As it stands, we're taking a HUGE hit from cause tracking. We need a way to completely avoid the main event bus, and CauseTracker implementation, because it's just going to murder servers. Perhaps some of this is improved in @gabizou's refactor -- I'm not sure?
Lighting (Needs fixed)
Minecraft isn't made to have large amounts of blocks change after the initial chunk creation. In fact, base chunk generation operates on top of a ChunkPrimer object so that it doesn't have to incur the penalties of lighting considerations, and physics updates.
We're currently hitting a "normal" block change method, and assuming that it will clean up our mess; long story short, it doesn't. It's costing CPU time, and it's not working, WorldEdit leaves behind many "dark patches" and light sources which did not properly update the light map around them.
As a note on the previous paragraph, Mojang uses this function for structure generation, but that's during the population phase which also includes lighting population, and even then, these structures are much smaller than what many WorldEdit users would like to create.
We need a better way to change a fairly large number of blocks, and then inform Minecraft that we've invalidated the lighting. One which is performed at the end of an edit so as to prevent lighting updates from performing duplicate and unnecessary work.
This could also allow WorldEdit's "fast mode" to actually be fast. Currently, despite not triggering physics updates, it is forced to trigger the incorrect lighting updates, because there is no way to disable this functionality via method arguments.

@DarkArc
Are you using the setBlock methods on Extent that take a Cause object? I'll speak with blood and we'll accommodate a way to do lighting only after block changes are done throughout the tick. This has the potential to be a pretty crazy performance boost.

Yes this is with the setBlock method that takes a Cause.
This is where our abstraction hits Sponge:
https://github.com/sk89q/WorldEdit/blob/feature/sponge-new/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java#L141
---- On Sat, 14 May 2016 09:08:37 -0700<EMAIL_ADDRESS>wrote ----
@DarkArc
Are you using the setBlock methods on Extent that take a Cause object? I'll speak with blood and we'll accommodate a way to do lighting only after block changes are done throughout the tick. This has the potential to be a pretty crazy performance boost.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

@DarkArc
So talking with @bloodmc some, basically this will require some "plumbing" to WE to get it as performant as possible but basically:

User applies schematic/Executes some batch command
Calculate all coordinates that will be affected
Generate the Block Snapshots via a worker thread.
Run restore on those snapshots back on the main thread

Further remarks:

A restore triggers no ChangeBlockEvent OR Capture. For WE's case, you will DEFINITELY want to do this.

I don't think Snapshots are the best route here.
The implementation for Snapshots is basically just setBlock, except the CauseTracker is told that blocks are being restored:
https://github.com/SpongePowered/SpongeCommon/blob/master/src/main/java/org/spongepowered/common/block/SpongeBlockSnapshot.java#L166-L196
All we're going to save from doing the generation on a separate thread is... well nothing. In fact, it's going to cost more overall CPU time building up this SpongeBlockSnapshot object, which is immediately discarded. Then there's the cost of creating a new thread, and related synchronization, or buffering mechanics. Additionally, as I said previously, there are concerns with doing this async as well because there is no guarantee that creating the block state is a thread-safe operation.
It's already been shown that generating the BlockState is relatively cheap, it's the overhead of cause tracking, and lighting causing problems.
If we could get a similar method setBlockSilently() for instance, which performed the same operation as the restore method, that would be preferable. The restore method could then call world.setBlockSilenty() thus removing the incurred duplicated code. Snapshots are great for when you need to restore back to a particular point in time, but I see no gain using them, when we already have the information we need built up.
I read IRC chat a bit, and if you need all of these changes grouped, that can be arranged. We can add a flush method to WorldEdit with minimal invasion, and have that get called at the end of our operation to pass all the blocks along for that SpongeWorld instance.
However, with the numbers, I can't get behind the idea that creating BlockStates async will be worth while. Honestly, I think the best route is just to bypass events, and tracking with a setBlockSilently or betterNamedMethod method and see where that leaves us, because if for no other reason, the memory -- and corresponding GC -- overhead of grouping (or creating lots of BlockSnapshots) will be significant.
Note: Another additional method may be needed for changing the tile entity data, if that's being tracked somehow, though this is significantly less of a problem as most edits are composed of what I would call "primitive" blocks.

BlockState's are definitely thread safe as they get generated when the game starts so there is no "re-creation" of a BlockState.
As for BlockSnapshot's, this is what we use for most block events and are what most plugins expect to see in any event that changed a block. The only reason why I said to use restore is because that is the only way you are going to bypass tracking and events currently. Now lets say we introduced a new "BulkEdit" event that could be handled in the following ways
Option 1 - Not friendly to rollback plugins
    public boolean setBlockBulk(Map<BlockState, Vector3i> bulkBlockList, boolean notifyNeighbors, boolean checkLight, Cause cause) {
        checkArgument(cause != null, "Cause cannot be null!");
        checkArgument(cause.root() instanceof PluginContainer, "PluginContainer must be at the ROOT of a cause!");

        final CauseTracker causeTracker = this.getCauseTracker();
        causeTracker.setPluginCause(cause);
        BlockBulkEditEvent event = SpongeEventFactory.createBlockBulkEditEvent(cause, bulkBlockList);
        SpongeImpl.postEvent(event);
        if (event.isCancelled()) {
            causeTracker.setPluginCause(null);
            return false;
        } else {
             // some flag to disable ChangeBlockEvents
             for (Map.Entry<BlockState, Vector3i> mapEntry : bulkBlockList.entrySet()) {
                 BlockPos pos = VecHelper.toBlockPos(mapEntry.getValue());
                 checkBlockBounds(pos.getX(), pos.getY(), pos.getZ());
                 setBlockState(pos, (IBlockState) mapEntry.getKey(), notifyNeighbors ? 3 : 2);
             }
             causeTracker.setPluginCause(null);
             return true;
        }
    }

Option 2 - supports rollback plugins
    public boolean setBlockBulk(List<Transaction<BlockSnapshot>> blockTransactions, boolean notifyNeighbors, boolean checkLight, Cause cause) {
        checkArgument(cause != null, "Cause cannot be null!");
        checkArgument(cause.root() instanceof PluginContainer, "PluginContainer must be at the ROOT of a cause!");

        final CauseTracker causeTracker = this.getCauseTracker();
        BlockBulkEditEvent event = SpongeEventFactory.createBlockBulkEditEvent(cause, blockTransactions);
        SpongeImpl.postEvent(event);
        if (event.isCancelled()) {
            return false;
        } else {
             // some flag to disable ChangeBlockEvents
             causeTracker.setPluginCause(cause);
             for (Transaction<BlockSnapshot> blockTransaction : blockTransactions) {
                 BlockSnapshot blockSnapshot = blockTransaction.getFinal();
                 BlockPos pos = VecHelper.toBlockPos(blockSnapshot.getPosition());
                 checkBlockBounds(pos.getX(), pos.getY(), pos.getZ());
                 setBlockState(pos, (IBlockState) blockSnapshot.getState(), notifyNeighbors ? 3 : 2);
             }
             causeTracker.setPluginCause(null);
             return true;
        }
    }

With option 1, we would only be passing the BlockState and position via the bulk event of what would be the final result if the event wasn't cancelled. Plugins such as Prism would be forced to generate a BlockSnapshot for every one of those positions during the event so they could rollback if required. This goes back to my original reasoning of why BlockSnapshot is extremely important as it was designed for rollbacks. As an example, a player may accidentally use WE to set 500,000 blocks not realizing that they wiped out an entire town in the process. Going with option 1, you would have to revert to a backup or have built-in restore support which would require taking a snapshot to begin with.
With option 2, you give us a list of block transactions which would contain the original state of the block position as well as what you want it to become. We would then pass this list of transactions via the bulk event and a plugin like Prism could simply take the original list and serialize it for rollback purposes(avoiding the need to generate a BlockSnapshot) and thus saving on resources.
In the end, no matter what way you look at it, I think Option 2 is the best for most cases as many server administrators will want that "rollback" capability.

Threading
I don't see what you're talking about in reference to block states.
This function is defined by the Block class, can be overridden, and is called when getting a block state via meta, which is what we currently do.
    public IBlockState getStateFromMeta(int meta)
    {
        return this.getDefaultState();
    }

That said even if you get a BlockState with the IBlockState method:
    <T extends Comparable<T>, V extends T> IBlockState withProperty(IProperty<T> property, V value);

There is no guarantee that this withProperty is going to be a thread-safe method, and no guarantee that moded blocks are going to use the two default implementations whether it be BlockState, or ExtendedBlockState.
tldr; I don't feel that there is a strong enough contract here, or a great enough need, to utilize another thread for BlockState/BlockSnapshot construction.
BlockSnapshots
As for rollback, well, we do have built in "rollback" support via the undo command. That said, I do see the merit of having the TileEntity changes -- for logging plugins -- accompany the data, so I will work towards using BlockSnapshots.
Events
I both understand and respect your reasoning here, but I would at least advise against putting this on ChangeBlockEvent.Pre. That will trigger any ChangeBlockEvent listener, and while they may be expecting large numbers of blocks, most will not be expecting what WorldEdit can/will throw at them. A separate MassChangeBlockEvent may be more appropriate, that way there's no risk of someone accidentally opting in.
I think it's fair to say, many administrators are happy with WorldEdit and similar being an admin-only tool, and thus would be okay with edits coming across it not following the standard behaviour, especially if it means their servers run faster.

I made the change to BlockSnapshots (minus TileEntity data being applied w/ the snapshot restore):
https://github.com/sk89q/WorldEdit/commit/3188bc303195a3b1228604918537ef67f4489eee
Here's what our updated sampling picture looks like:

As you can see while the restore function cut the utilization in half, the Sponge builder registry has a slow spot, and brought our utilization to about what it was before.
This is actually a relatively easy fix -- from both sides. The cause of this slow down is the argument checking looking for the CanonicalName of the builderClass. This name calculation gets ran even when the request for a builder hasn't failed.
public <T extends ResettableBuilder<?, ? super T>> T createBuilder(Class<T> builderClass) {
        checkNotNull(builderClass, "Builder class was null!");
        checkArgument(this.builderSupplierMap.containsKey(builderClass), "Could not find a Supplier for the provided class: " + builderClass.getCanonicalName());
        return (T) this.builderSupplierMap.get(builderClass).get();
    }

I fixed it on the WorldEdit side (though I think there's a fair case to redesign that validation) in https://github.com/sk89q/WorldEdit/commit/8c927c7eab4925660c87bc176c57b9b0e0bc1101 by resetting an existing builder, which brought our sampling to the following:

Which removes Sponge itself from being the bottleneck.

@DarkArc
When do you think you would have WE up and working on Sponge? We're fully ready to keep making changes on our end to help you.

@Zidane it depends on what you mean by up and working. We have builds now that support Sponge Vanilla and Sponge Forge, with WorldEdit CUI and chunk regeneration being the only missing features.
http://builds.enginehub.org/job/worldedit?branch=feature%2Fsponge-new
The performance changes I've been making are going into a branch of what will likely become WorldEdit 7. That's still a ways off, but that's when we should be able to drop the need to go to NMS, and have an updated type system.
I'll probably back port some of my performance changes, like using BlockSnapshots to the sponge-new branch/builds soon.

Here's my two cents.
DarkArc mentioned that MutableBlockWorkers are currently just a wrapper, and don't offer a performance boost.
Would it be reasonable to take many of these performance optimizations and make them available to BlockWorkers? As far as I'm aware, the performance issue is only with very large numbers of block changes, so changing how setBlock works is probably not exactly needed. In addition, sponge would be able to process the change as a bulk operation, potentially reducing the overhead with the cause tracker. Optimizations to lighting and block notification could be thrown in too.
If MutableBlockWorkers are supposed to be performant for bulk operations, I say we should make it so.


Love to see https://ethereum.stackexchange.com/ added

As the title suggests is it possible to also aggregate data from https://ethereum.stackexchange.com/ (or is this already being done?)
Thanks - great tool!!!

Hmmm yes we need to think about how to support those. @hackyguru do you have an idea?


ardupilot: add messages to configure ADSB and provide vehicle info

WIP

I don't see squawk anywhere?

My bad.  It was in multiple places and it was a "do this later" thing which didn't get done.  I've added "squawk".

And I have a bit of a concern over having to send a full emitter config which on some hardware requires actually shorting a pin to ground in order for the transponder to take the command, and doesn't really make sense to resend that full config message when changing smaller bits of state.

The two messages suggested here are basically high-rate/low-rate, rather than "configure" and "status" as I've named them.  The naming is general intent rather than anything else, and naming them HighRate and LowRate seems wrong....
I was imagining we might push the low rate message maybe every 10 seconds or when fields change, that sort of thing, and the higher-rate message at maybe 10Hz.
I was imagining that the AP_Periph device would be storing all of this information for passing to the device as required.
AFAICS a directly-attached MXS gets this same information at intervals, rather than on command.  So when you press the button I expect it's writing to persistent storage data which it's already received.
In terms of "smaller bits of state", I don't think we want to have too many messages here - there's a flash and memory cost for each type of message we send/receive.

AFAICS a directly-attached MXS gets this same information at intervals, rather than on command.

This is rather more of a bug rather then a good thing. Particularly the installation message shouldn't be sent out like that. Point of fact is that on that hardware if you haven't grounded a physical pin on the device to put it in maintenance mode the message isn't even accepted. If it's going to ignore the message anyways we shouldn't be sending it.
In general I agree about having to generally mirror information out at different rates. Somestuff you have in the low rate message feels much more high rate to me (ie squawk/callsign/transmit modes/emergency), but as long as we push it out upon change (and maybe slightly faster after it changes) then I'm fine with it.

AFAICS a directly-attached MXS gets this same information at intervals, rather than on command.

This is rather more of a bug rather then a good thing. Particularly the installation message shouldn't be sent out like that. Point of fact is that on that hardware if you haven't grounded a physical pin on the device to put it in maintenance mode the message isn't even accepted. If it's going to ignore the message anyways we shouldn't be sending it.

This is true, but having it sent constantly - even at a very low rate - means that to configure the hardware-locked parameters is just a matter of shorting the pin, and doesn't require any further co-operation from the flight controller.  Further, this is more of a device-agnostic approach to the problem.  Sending the callsign once every 5 or 10 seconds (or whenever the data changes) shouldn't break the bank.

In general I agree about having to generally mirror information out at different rates. Somestuff you have in the low rate message feels much more high rate to me (ie squawk/callsign/transmit modes/emergency), but as long as we push it out upon change (and maybe slightly faster after it changes) then I'm fine with it.

Yes, I was thinking it would get pushed out on change.  CAN's delivery mechanism should  mean it doesn't need to be sent at a higher rate to guarantee delivery, but that could be done, of course.
In the particular task we're looking at the location, cog and ground-relative velocities are expected to come from the FIX2 message.  Should we omit them from this message?  That has the unfortunate consequence that if your GPS is serially-connected to the flight controller the ADSB unit wouldn't have all the information it requires.  Perhaps this should be configured on the peripheral.

In general I agree about having to generally mirror information out at different rates. Somestuff you have in the low rate message feels much more high rate to me (ie squawk/callsign/transmit modes/emergency), but as long as we push it out upon change (and maybe slightly faster after it changes) then I'm fine with it.

Yes, I was thinking it would get pushed out on change. CAN's delivery mechanism should mean it doesn't need to be sent at a higher rate to guarantee delivery, but that could be done, of course.
It could get lost of course, but since we should be sending out a new message pretty rapidly if you are content to always broadcast it then I can be convinced it will work, without any real noticeable problems.

Not sure I'm following, would this be both low rate and on change, or just on change? If it's just on change then there's a decent chance to drop it, if you are looking at both then I agree it will be enough to keep the system feeling setup correctly.

In the particular task we're looking at the location, cog and ground-relative velocities are expected to come from the FIX2 message. Should we omit them from this message? That has the unfortunate consequence that if your GPS is serially-connected to the flight controller the ADSB unit wouldn't have all the information it requires. Perhaps this should be configured on the peripheral.

I'm not quite following here. I'm looking at the exact setup you've described of the GPS being serially connected to the flight controller, and having the flight controller broadcast the information. Notionally I'd think we'd want to rate limit this though, if we are running 10Hz GPS we don't necessarily need to be updating the ADS-B as fast. Although it wouldn't be terrible if we did.

Not sure I'm following, would this be both low rate and on change, or just on change? If it's just on change then there's a decent chance to drop it, if you are looking at both then I agree it will be enough to keep the system feeling setup correctly.

low rate and on-change.

In the particular task we're looking at the location, cog and ground-relative velocities are expected to come from the FIX2 message. Should we omit them from this message? That has the unfortunate consequence that if your GPS is serially-connected to the flight controller the ADSB unit wouldn't have all the information it requires. Perhaps this should be configured on the peripheral.

I'm not quite following here. I'm looking at the exact setup you've described of the GPS being serially connected to the flight controller, and having the flight controller broadcast the information. Notionally I'd think we'd want to rate limit this though, if we are running 10Hz GPS we don't necessarily need to be updating the ADS-B as fast. Although it wouldn't be terrible if we did.

I was assuming some form of certified GPS on the CAN bus, rather than something coming via (and possibly being interpreted by) the autopilot.  Never mind.
But back to the question, then.  Should we be including GPS information in the high-rate message if the same information is expected to be on the bus in FIX2?  Same now seems to be true of magnetic heading and perhaps airspeed data.  Perhaps we include the data in the new VehicleStatus but the device could choose to rely on FIX2?


BREAKING CHANGE: update Confirm to Modal v1 API

This PR updates the Confirm addon to use the Modal v1 API.  It is currently broken.
active => open
onHide => onClose

Feels like this should've been caught with a test. Can you add just a basic "pass open, confirm is visible on page" similar to the Modal? I try to avoid testing duplicate functionality, but open is actually a prop on Confirm so it makes sense that a test would cover its usage.

Absolutely agreed, on my list. IMO no public API ought to be untested.

Current coverage is 100% (diff: 100%)

Merging #634 into master will not change coverage

@@           master   #634   diff @@
====================================
  Files         119    119
  Lines        1890   1890
  Methods         0      0
  Messages        0      0
  Branches        0      0
====================================
  Hits         1890   1890
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last update 3fb0ca7...035454d

Released in<EMAIL_ADDRESS>


Add adobe-air as dependency for pandora.

Thank you for the contribution. It was merged directly as 9e73107e83cf94128499dac0084c331fa9dd0140 to keep commit history cleaner. Your contribution is still credited to you.


Address nvim v0.9 treesitter deprecation warning

To address the following warning from nvim v0.9 when parsing the jsonc devcontainer file:
vim.treesitter.parse_query() is deprecated, use vim.treesitter.query.parse_query() instead. :help deprecated
This feature will be removed in Nvim version 0.10

ah. actually, parse_query() is also deprecated
i changed it to that and then I got a deprecation warning about parse_query() and to use .parse()
sorry, should have mentioned that

heres the warning message I get when using parse_query()
vim.treesitter.query.parse_query() is deprecated, use vim.treesitter.query.parse() instead. :help deprecated
This feature will be removed in Nvim version 0.10


What are the issues with asynchttpserver?

Hi
I noticed that the doc for asynchttpserver says;

This HTTP server has not been designed to be used in production, but for testing applications locally. Because of this, when deploying your application you should use a reverse proxy (for example nginx) instead of allowing users to connect directly to this server.

I was wondering what are the issues with asynchttpserver, that the nim maintainers consider it not fit for production?
Also, considering that prologue is built on top of this server, how is prologue planning to tackle these issues?

Apologies for this. This question is not relevant for this repo.
Had too many tabs open and mixed up the repos....


Clean up unused variables

Is your feature request related to a problem? Please describe.
Often, when dragging new blocks, they create variables. After a while, there are quite a few that aren't used.
Describe the solution you'd like
A button somewhere to remove unused variables.
Describe alternatives you've considered
I manually delete them.

Closing old bugs.


use ssl protocol send file  failed

I write 2 demo test netty ssl.
The first demo, I didn't use the SSL protocol.The second demo I use the SSL protocol.
this is the client code.Send the file to the server
This is my handler:
 public void channelActive(ChannelHandlerContext ctx) throws Exception {
        //Globle.channel = ctx;
    	//Thread.sleep(10000);                                (1)
    	System.out.println(ctx.channel().toString());
        System.out.println(ctx.channel().localAddress() + "channelActive"+'-'+ new Date());
        System.out.println("start" + new Date());
        String fileUrl = "C:/work/setup/ubuntu-14.04.4-desktop-amd64.iso";
        FileControl fileControl = new FileControl(ctx);
        fileControl.sendNotice();
        fileControl.sendFile(fileUrl);
        System.out.println("end" + new Date());
    }

public void sendFile(String fileUrl) {
        // 开始执行
        RandomAccessFile raf = null;
        try {
            raf = new RandomAccessFile(fileUrl, "rw");
            ChunkedFile chunkedFile = new ChunkedFile(raf);
            channel.writeAndFlush(chunkedFile).addListener(new ChannelFutureListener() {
                @Override
                public void operationComplete(ChannelFuture future) throws Exception {
                    future.channel().close();
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

When I use the SSL protocol ,I found that sending a large file to server.The server receives the file handler will only trigger channelActive and channelInactive without triggering channelRead events
If I send a small file，it is OK.
But If (1) location using 10 seconds delay, send a small file will fail
Netty version
netty-all-5.0.0.Alpha1.jar
JVM version (e.g. java -version)
jdk1.7.0_67

netty 5.0 is not supported. please use netty 4.1 and report back with any updates.

Yse , You are right. I use  netty-all-4.1.6.Final.jar  can upload large file。but I find that the file is not  incomplete， missing 8 KB。I try to upload small file also miss 8Kb。if I do not  use the SSL protocol, there is no this problem。

https://github.com/mrsWangxing/netty-ssl-send-large-file/tree/master   is my test demo

I don't have time to dig into this code at the moment. If you could reduce it to a Netty unit test that would be very helpful.

ok ,I close this issues。

I tested several times. If I send a 8 KB TXT file,the server  will receive is an empty file .
I also  find that the first 8Kb bytes will send failure.
I hope you will have time to determine if this is the program I wrote problem or a problem with netty

Thank you!

@mrsWangxing is it still an issue with 4.1.7?

@johnou yes

If you have time,  you can look at my demo. thanks.
https://github.com/mrsWangxing/netty-ssl-send-large-file/tree/master is my test demo

If you still believe this is a Netty issue then lets leave it open. Have you narrowed down the problem to be on the client or the server via tcpdump or Wireshark?

<IP_ADDRESS>  is client,<IP_ADDRESS> is server .I use wireshark to monitor their card respectively.Their monitoring data are the same.I do not know much about network knowledge, I don't know whether it can determine the netty issue.

Until now I also didn't find the real reason。Later, I changed a kind of writing, it can work normally,I do not know why.My guess is that the original writing  can not work well in netty4 environment.


Private Methods

Hi,
Is it possible to declare "private" methods with Astronomy ?
Private method should only be called from other Astronomy methods.
I would like to do so in order to separate some internal logic which should not be used outside of the class.
If there is not, is it possible considering adding it ?
I suppose the method should be undefined if called outside of another method, ie not be available like this:
var obj = new Class();

class.method(); // Not working (undefined or do nothing)
class.method2(); // This call class.method() internally and is working perfectly

I suppose a way of achieving so would be to add some keyword for declaring public or private method, ie:
export const MyClass = Class.create(
{
    name: "MyClass",
    collection: MyCollection,
    /* Skipping fields declaration which is irrelevant for now */
    publicMethods:
    {
        // Public methods goes here
    },
    privateMethods:
    {
        // Private methods goes here
    },
    /* Skipping events / behaviors which are irrelevant for now */
}

I also thought about nesting the function inside an object in order to set is privacy, name or whatever but I suppose this would be a break-compatibility change and is not my intent.
Please, let me know if there is any workaround about this :).

There is no such thing like private class method in JavaScript so it's not possible to implement it in Astronomy. There are only some workarounds which make function private in a scope of the file in which given function will be used. But there is not way of doing it in a way how it's done let's say in C++.


M2 Nano - USB power

I know this is not a meerk40t issue but i'm desparate to find a solution to my problem. Having problems getting a M2 Nano to work after replacing a Moshi MS10105 in a K40. I initially tried to connect outside the K40 with only a USB cable to see if computer would detect it: no USB device found by Windows 10, even using usbdeview utility, tested on three different PCs. Tried Zadig driver installer as per K40 Whisperer instructions, no go. Connected power lines from the K40 power supply, still no detection. Latest 2019 v.9 version of the board has missing components from previous 2018 v.9 next to USB connector but seller on eBay says it is normal with this "improved" version. Can the board run "standalone" from USB to install drivers or does it need power from the K40 (5 volts?)? Am I missing anything?
Any thoughts?
Thanks!

No; it can't run standalone on 5 volts from the USB port. I have a few extra M2 Nano boards here in my desk, and they don't communicate at all without the full 24v machine power.

Great, thank you for the reply. I'll reconnect everything and start troubleshooting again. Power connections to the Nano is pretty simple so I don't think I screwed up that part. It'll test it without any other connections.

Tested this one last time to be sure. USB power doesn't present power on the 5V power connector.
Feeding 5V into the 5V power connector input; and connecting the USB port still doesn't wake up the controllers. It really does need that 24V power as well, to communicate. As soon as it boots it will self home; so having end-stops connected is also reasonably important at that stage of testing.


Post UAT UI Iteration 1 - Update Slack Setup

On the Installation Guide we need to update the Slack Setup section with a "step 11" under point 4 reading, "right clicking the actual app that was added to the workspace, then 'open app details' and from there '+ add app to channel'".


detect/flowvar: adds test for flowvar persistence

Ticket
Redmine ticket: https://redmine.openinfosecfoundation.org/issues/7197

LGTM :)

We should tackle this after the dataset postmatch cf https://github.com/OISF/suricata-verify/pull/2093


add a summary

like boom + a warning about the fact that it's not accurrate

how long one scenario takes

a warning about the fact that it's not accurrate

Can you expand on what exactly is not accurate?

anything server measurement done on the client side (like "request per second") will be inaccurate due to

the network bandwidth and congestion
other processes running on the client

The same test run from my home will be 10x slower than when launched from my office fiber connection/ the only accurate measure is done on the server side.


fix misc issues before orc format support

Raise this PR for hour
fix misc issues before orc format support, including typos, bugs, license

+1


Update assertion arguments to expected, actual order for series exercise

Changed test name to be more indicative of what is tested
The assertion arguments were in the wrong order which makes the error messages confusing. If I had a failing test I'd see a message similar to "Expected 'your answer' but got 'correct answer'". This will put that back in order. Additionally I change the class name of the test since it doesn't seem to be related to a sieve.

Thanks @dstockto!


Support hospitalizations in data pipeline

Description
Dashboard data pipeline now fetches and filters hospitalization forecasts in addition to deaths and cases.
Changes

Pull all daily hospitalization forecasts (ahead of 1 to 28)
Generalize valid target date/forecast date filters to apply to hospitalizations
Generalize save_score_cards and evaluate_chu to apply to hospitalizations
Calculate and save hospitalization forecast scores

Implications
This exacerbates existing memory issues since we're loading more forecasts and reference data. Memory issues will be addressed separately in changes to evalcast.

After incorporating docker changes in #125, this updated pipeline runs as expected.


Fix comment around use of existing ISO_DEVICE

The comment is misleading and should reference detecting the "wrong" partition instead of the "proper" partition, which is the whole reason for using ISO_DEVICE if it's already set.

Will recreate clean PR


Many versions of ImageMagick

While I was checking out ImageMagick on whether it needed to be updated, I found several versions.

Site
Version

http://www.imagemagick.org/download/www/binary-releases.html
<IP_ADDRESS>

http://legacy.imagemagick.org/script/binary-releases.php
6.9.3-10

http://www.imagemagick.org/script/binary-releases.php
7.0.1-1

The repository follows the first link and it seems like it's a deprecated site for the legacy version of the program. I was wondering if this needs to be updated to the latest legacy version or the latest modern version.

I would go for version 7 link, since that's what their main website points users to.


Add missing fields to NfTokenObject

NfTokenObject is supposed to represent the NFTs returned from the account_nfts RPC, however it only contains the NFTokenID and URI fields. The response contains some other fields that we should add to NFTokenObject

This is now fixed via #432


Docs(Postman): Add EDC request to colleciton

Description
Add each collection for EDC
Setup each assets , policy and contracts
EDC connection from CR to BPDM
EDC connection from CR to CR Sharing  Apis
https://github.com/eclipse-tractusx/vas-country-risk-backend/issues/61
Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[x] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[x] Copyright and license header are present on all affected files

Approved and testes on E2E


No tables are being logged to except for the tracker_sessions table

I went through the guide for installing tracker, but for some reason the only table being logged to is tracker_sessions.
I enabled all of trackers logging features, demonstrated in the config file below. I have tried adding all tables to my applications database and creating a separate database just for tracker. Both of these configurations are yielding the same results. No matter how I change my configuration the only table being written to is the tracker_sessions table.

/app/vendor/pragmarx/tracker/src/config/config.php
 true,

	/**
	 * Robots should be tracked?
	 */
	'do_not_track_robots' => true,

	/**
	 * Which environments are not trackable?
	 */
	'do_not_track_environments' => [
		// defaults to none
	],

	/**
	 * Which routes names are not trackable?
	 */
	'do_not_track_routes' => [
		'tracker.stats.*',
	],

	/**
	 * The Do Not Track Ips is used to disable Tracker for some IP addresses:
	 *
	 *     '<IP_ADDRESS>', '<IP_ADDRESS>'
	 *
	 * You can set ranges of IPs
	 *     '<IP_ADDRESS>-<IP_ADDRESS>'
	 *
	 * And use net masks
	 *     '<IP_ADDRESS>/32'
	 *     '<IP_ADDRESS>/<IP_ADDRESS>'
	 */
	'do_not_track_ips' => [
		'<IP_ADDRESS>/24' /// range <IP_ADDRESS> - <IP_ADDRESS>
	],

	/**
	 * Log every single access?
	 *
	 * The log table can become huge if your site is popular, but...
	 *
	 * Log table is also responsible for storing information on:
	 *
	 *    - Routes and controller actions accessed
	 *    - HTTP method used (GET, POST...)
	 *    - Error log
	 *    - URL queries (including values)
	 */
	'log_enabled' => true,

	/**
	 * Log SQL queries?
	 *
	 * Log must be enabled for this option to work.
	 */
	'log_sql_queries' => true,

	/**
	 * If you prefer to store Tracker data on a different database or connection,
	 * you can set it here.
	 *
	 * To avoid SQL queries log recursion, create a different connection for Tracker,
	 * point it to the same database (or not) and forbid logging of this connection in
	 * do_not_log_sql_queries_connections.
	 */
	'connection' => 'tracker',

	/**
	 * Forbid logging of SQL queries for some connections.
	 *
	 * To avoid recursion, you better ignore Tracker connection here.
	 *
	 * Please create a separate database connection for Tracker. It can hit
	 * the same database of your application, but the connection itself
	 * has to have a different name, so the package can ignore its own queries
	 * and avoid recursion.
	 *
	 */
	'do_not_log_sql_queries_connections' => [
		'tracker'
	],

	/**
	 * Also log SQL query bindings?
	 *
	 * Log must be enabled for this option to work.
	 */
	'log_sql_queries_bindings' => true,

	/**
	 * Log events?
	 */
	'log_events' => true,

	/**
	 * Which events do you want to log exactly?
	 */
	'log_only_events' => [
		// defaults to logging all events
	],

	/**
	 * What are the names of the id columns on your system?
	 *
	 * 'id' is the most common, but if you have one or more different,
	 * please add them here in your preference order.
	 */
	'id_columns_names' => [
		'id'
	],
	/**
	 * Do not log events for the following patterns.
	 * Strings accepts wildcards:
	 *
	 *    eloquent.*
	 *
	 */
	'do_not_log_events' => [
		'illuminate.log',
		'eloquent.*',
		'router.*',
		'composing: *',
		'creating: *',
	],

	/**
	 * Do you wish to log Geo IP data?
	 *
	 * You will need to install the geoip package
	 *
	 *     composer require "geoip/geoip":"~1.14"
	 *
	 * And remove the PHP module
	 *
	 *     sudo apt-get purge php5-geoip
	 *
	 */
	'log_geoip' => true,

	/**
	 * Do you wish to log the user agent?
	 */
	'log_user_agents' => true,

	/**
	 * Do you wish to log your users?
	 */
	'log_users' => true,

	/**
	 * Do you wish to log devices?
	 */
	'log_devices' => true,

	/**
	 * Do you wish to log HTTP referers?
	 */
	'log_referers' => true,

	/**
	 * Do you wish to log url paths?
	 */
	'log_paths' => true,

	/**
	 * Do you wish to log url queries and query arguments?
	 */
	'log_queries' => true,

	/**
	 * Do you wish to log routes and route parameters?
	 */
	'log_routes' => true,

	/**
	 * Log errors and exceptions?
	 */
	'log_exceptions' => true,

	/**
	 * A cookie may be created on your visitor device, so you can have information
	 * on everything made using that device on your site.	 *
	 */
	'store_cookie_tracker' => true,

	/**
	 * If you are storing cookies, you better change it to a name you of your own.
	 */
	'tracker_cookie_name' => 'please_change_this_cookie_name',

	/**
	 * Internal tracker session name.
	 */
    'tracker_session_name' => 'tracker_session',

	/**
	 * ** IMPORTANT **
	 *   Change the user model to your own.
	 */
	'user_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\User',

	/**
	 * You can use your own model for every single table Tracker has.
	 */

    'session_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Session',

    'log_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Log',

	'path_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Path',

	'query_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Query',

	'query_argument_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\QueryArgument',

	'agent_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Agent',

    'device_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Device',

    'cookie_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Cookie',

	'domain_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Domain',

	'referer_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Referer',

	'route_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Route',

	'route_path_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\RoutePath',

	'route_path_parameter_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\RoutePathParameter',

	'error_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Error',

	'geoip_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\GeoIp',

	'sql_query_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\SqlQuery',

	'sql_query_binding_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\SqlQueryBinding',

	'sql_query_binding_parameter_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\SqlQueryBindingParameter',

	'sql_query_log_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\SqlQueryLog',

	'connection_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Connection',

	'event_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\Event',

	'event_log_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\EventLog',

	'system_class_model' => 'PragmaRX\Tracker\Vendor\Laravel\Models\SystemClass',

	/**
	 * Laravel internal variables on user authentication and login.
	 */
	'authentication_ioc_binding' => 'auth', // defaults to 'auth' in Illuminate\Support\Facades\Auth

    'authenticated_check_method' => 'check', // to Auth::check()

    'authenticated_user_method' => 'user', // to Auth::user()

    'authenticated_user_id_column' => 'id', // to Auth::user()->id

    'authenticated_user_username_column' => 'email', // to Auth::user()->email

	/**
	 * Laravel Alias, create one? Which name?
	 */
	'create_tracker_alias' => true,

	'tracker_alias' => 'Tracker',

	/**
	 * Enable the Stats Panel?
	 */
	'stats_panel_enabled' => true,

	/**
	 * Stats Panel routes before filter
	 *
	 * You better drop an 'auth' filter here.
	 */
	'stats_routes_before_filter' => '',

	/**
     * Stats Panel template path
     */
    'stats_template_path' => '/templates/sb-admin-2',

    /**
     * Stats Panel base uri.
     *
     * If your site url is http://wwww.mysite.com, then your stats page will be:
     *
     *    http://wwww.mysite.com/stats
     *
     */
    'stats_base_uri' => 'stats',

    /**
     * Stats Panel layout view
     */
    'stats_layout' => 'pragmarx/tracker::layout',

    /**
     * Stats Panel controllers namespace
     */
    'stats_controllers_namespace' => 'PragmaRX\Tracker\Vendor\Laravel\Controllers',
];

I'm currently having the same issue. Did you figure it out?

I had to remove <IP_ADDRESS>/24 from the do_not_track_ips option to get logging to work on my dev box.

@QuantumSuicide  No I haven't.
@rtconner  I tried removing that no luck. Thanks for the suggestion.

Are you still experiencing this on master? Does it happen on "~1.0@dev" too (laravel5 branch)? Please comment here and I'll reopen.


MacOSX 10.11.6 install: last step fails

Expected Behavior
Clean installation after steps in Mac installation description are followed
Actual Behavior
last steps doesn't work (the '$ pip install -r requirements.txt')
see log:
(PokemonGo-Bot) Yann:PokemonGo-Bot Analysis$ pip install -r requirements.txt
-bash: /usr/local/bin/pip: "/Applications/MEDIA/Programs/Pokebot/PokeMonBot/neu: bad interpreter: No such file or directory
Steps to Reproduce
every time.
Other Information
OS: X10.11.6
Git Commit: (c21fad0e476a2ab77e8ec6eb898c03b1c3dbf3dd)
Python Version: (Python 2.7.12)

@Casual-User lol. Remove that $ symbol and do it xD

I have tried the same thing, only I get:
Command "python setup.py egg_info" failed with error code 1 in /Users/prestonbrown/PokemonGo-Bot/src/pgoapi/

@prestonbrown are you trying to run the bot ? If yes , do this python pokecli.py

No. I am trying to pip install.

Running python pokecli.py gives me:
  File "pokecli.py", line 38, in <module>     from pgoapi.exceptions import NotLoggedInException, ServerSideRequestThrottlingException, ServerBusyOrOfflineException ImportError: No module named pgoapi.exceptions
After looking around on the issue logs I found this thread.
This is the only response on that page:
"things have changed. You gotta rm -rf pgoapi and do the pip install again."
So now I am stuck on the command:
and pip install -r requirements.txt
Because I get the error:
Command "python setup.py egg_info" failed with error code 1 in /Users/prestonbrown/PokemonGo-Bot/src/pgoapi/

@leovarmak: please... the $ is the last key of the terminal's output, and not my own input. I just cited this step out of the description, not pasted the $ itself. Otherwise I wouldn't have had success wit the four earlier steps either ;-)

@Casual-User Sorry :D . Try this once and post a screenshot if you have an error sudo pip install -r requirements.txt

@leovarmak
Tried this and for whatever reason I got this (full log below).

(PokemonGo-Bot) Yann:PokemonGo-Bot Analysis$ sudo pip install -r requirements.txt
Password:
sudo: unable to execute /usr/local/bin/pip: No such file or directory

After that response I double checked my pip install but: first, it was there as it should be and second, I got this response when I tried to re-install:

Yann:Python Install Analysis$ python get-pip.py
Requirement already up-to-date: pip in /usr/local/lib/python2.7/site-packages

Hmmm. Still don't know what could cause the hassle

Just try this once in the PokemonGo-Bot folder pip

I got the very same "No such file or directory" comment.
So I git-pulled everything again into a new folder and voilà, only have to fill out the json file again, since I got (as the last line) > pokecli.py: error: argument -a/--auth_service is required.
I still don't know why that happened, but having some stacked and iterated Pokemongo-bot folders, builts and images might have contributed to bad path recognitions... Thanks so far!

@Casual-User Did you just enter pip ?

That usual happens when you have multiple repo based on pokemon go

@leovarmak Yeah, I just did 'pip'. And the multiple repo thing might be the case here.
But since it seems I overcame that hurdle, I'm now too stuck @prestonbrown's problem with the very same error-report of:

Yann:PokemonGo-Bot Analysis$ python pokecli.py -cf ./configs/config.json
Traceback (most recent call last):
File "pokecli.py", line 38, in
from pgoapi.exceptions import NotLoggedInException, ServerSideRequestThrottlingException, ServerBusyOrOfflineException
ImportError: No module named pgoapi.exceptions


Analyzer does not recognize conditional property checks to be null safe

This tracker is for issues related to:

Analyzer

If you aren't sure, file the issue here and we'll find the right home for it.
In your issue, please include:

Dart SDK Version : 2.14.2 (stable) (Wed Sep 15 12:32:06 2021 +0200) on "windows_x64"
Windows 10

Before null safety you could use conditional properties to check for null and the desired value like the following:
final list = null;

if (list != null && list.isNotEmpty)
// Using conditional property, does not work with null-safety because analyzer still thinks list is nullable
if (list?.isNotEmpty == true)

Using the conditional property you can check for empty and null with one statement and its null safe.
But after migrating to null safety the analyzer does not recognize this as nullsafe and instead i have to convert these statements back to classical null checks or use ! or ? modifiers.

This is a duplicate of dart-lang/language#1224, please follow/discuss the feature on that issue.


kubescape: 2.2.5 -> 2.2.6

Diff: https://github.com/kubescape/kubescape.git/compare/refs/tags/v2.2.5...v2.2.6
Changelog: https://github.com/kubescape/kubescape/releases/tag/v2.2.6
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

1 package built:

kubescape


add slowmode command

Description
reduce time to set slowmode per channel (set slowmode for all text channels at the same time)
Type of change

[x] New feature (non-breaking change which adds functionality)

Screenshot

Checklist:

[x] I have run pnpm format and my code don't have any linting issues

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation

Will check but you should limit min, max so user don't input thing like -1, 99999999.

Ohh, I forgot 😂


There is an issue with starting

Any update on this?

I am seeing the same issue.

Yes, you must have updated your react-navigation dependency, its code has changed slightly.
You can either use the upgraded-dependencies branch, with this issue fixed, or fix it yourself in your app, just take a look at this specifically at the counterView and colorView files, you'll see the change you have to make

getting the warning and always seems Activity indicator after above solution from this specifically at the counterView and colorView file.

I followed all the steps in the Getting started document and the setup guide. Sadly, the app didn't start. Same error as other people. I wanted this project to save me some time but after spending some time trying to fix all the errors, I gave up. This projects is a good idea but it doesn't run.

It is a known issue now that react-navigation changed its parameters. I've addressed it, short term, in #212

It's pretty straightforward to fix one's app if you look at kusti8's PR

rolling back the r-n version fixed it for me: npm install<EMAIL_ADDRESS>

yarn install


Upon checkout app is stuck on loading screen

This bug has been fixed: there was a . missing between $ and post, so JavaScript couldn't parse it.


Implemented API title expansion

Fixes #45
BREAKING CHANGE ExpandOptions is required for all ListOptions that initialize themselves without using the named parameter idiom.
Recommended fix:  insert StartIndex and MaxResults before the fields.

I no longer like this implementation.  I'm going to change ExpandOptions to be added to the list options for each type, rather than to the ListOptions.


RDMsetup script  - load subject level dataframe for affective measures

we have a trial-by-trial measures for each participant in the large gain and loss rdm datasets so we have a row per participant (phase 1 and phase 2 measures in one row)

this has been done in the RDManalysis.Rmd script. HRB will be moving this processes to a new script so that its available more generally (not just in the rdm analysis).

this has been done in the RDManalysis.Rmd script. HRB will be moving this processes to a new script so that its available more generally (not just in the rdm analysis).


fix(_clone): refFrom and refTo assignment wrong

var len = refFrom.length;
var idx = 0;
while (idx < len) {
  if (value === refFrom[idx]) {
    return refTo[idx];
  }
  idx += 1;
}
refFrom[idx + 1] = value;
refTo[idx + 1] = copiedValue;

idx is already equal to refFrom.length.
refFrom[refFrom.length + 1] = value;
refTo[refFrom.length + 1] = copiedValue;

Obviously, is wrong

Obviously, is wrong

Hi @nishino-tsukasa, thanks for the PR!
Can you help me understand what is wrong about it. Is there a test that can expose what the bug is? This PR doesn't seem to change any of the existing tests, and it isn't based on a bug report, so I am struggling to understand what this fixes.

Obviously, is wrong

Hi @nishino-tsukasa, thanks for the PR!
Can you help me understand what is wrong about it. Is there a test that can expose what the bug is? This PR doesn't seem to change any of the existing tests, and it isn't based on a bug report, so I am struggling to understand what this fixes.

From a functional point of view, it's not a bug, because test cases can pass.
I think this is a "semantic" bug. These two arrays should not be sparse arrays.
eg.
// test case: clones deep object
it('clones deep object', function() {
  var obj = {a: {b: {c: 'ramda'}}};
  var clone = R.clone(obj);
  obj.a.b.c = null;
  eq(clone, {a: {b: {c: 'ramda'}}});
});
// print refFrom
[
  empty item,
  { a: { b: {c: 'ramda'} } },
  empty item>,
  { b: { c: 'ramda' } },
  empty item,
  { c: 'ramda' }
]

It's confusing.

Nice catch.  Thank you!


Remove node_modules, bump moment.js to latest

tested locally, seems ok

@imuchnik says ok to merge


HTEX forced scale in chooses blocks in a strange order

Describe the bug
I'm unclear if this causes problems in practice, but I noticed this in the scaling in code for HTEX:
HTEX picks blocks to kill in order, using this sort:
        sorted_blocks = sorted(block_info.items(), key=lambda item: (item[1][1], item[1][0]))

First it picks blocks with smallest idle time, then blocks with a longer idle time.
However, active blocks have 0 idle time and appear at the start of this sorted_blocks list, ahead of actually idle blocks.
This looks like scale_in(force=True) will kill active blocks (and hence, active parsl tasks) in preference to idle blocks.
I think (but I have not done a proper audit) that this default force mode is only used when completely finished with all of the blocks in an executor, and all blocks are idle - so in current parsl, this won't cause a problem.
htex.scale_in has a tangle of logic in this call - if it is misbehaving, it might be better to tidy up the misbehaving code and accept that force will kill arbitrary task-running blocks without preference for idle ones.
To Reproduce
Add a print statement that outputs the sorted_blocks list in high throughput executors .scale_in() method. Run scale in test. Observe the ordering.

related to this, it looks like block_info will only contain blocks which have got far enough to have at least one manager register - blocks which have not made it that far will not be scaled in, I think. This can leave blocks alive if they haven't registred in time, I think.


merge updated styles into master

I like where the styles are right now and want to bring them in to master.


displayName is not set for the component of "@yamada-ui/progress"

script: component-display-name
package: @yamada-ui/progress
Description
The component "@yamada-ui/progress" uses forwardRef, but displayName is not set, making it difficult to see the display in React Developer Tools.
Additional Information
Set displayName and __ui__ after each component definition.
For example, like this.
const Component = forwardRef((props, ref) => {
  ...
})

Component.displayName = 'Component'
Component.__ui__ = 'Component'

Replace 'component' with the name of the component. For example, for a Select component, it is 'Select'.
__ui__ is an identifier required for internal use by Yamada UI. Be sure to set it together with displayName.

can i do this issue?


Re-enable websockets-snap and threepenny-gui

Checklist:

[X] Meaningful commit message - please not Update build-constraints.yml

[X] At least 30 minutes have passed since Hackage upload

[X] On your own machine, in a new directory, you have successfully run the following set of commands (replace $package with the name of the package that is submitted, $version is the version of the package you want to get into Stackage):
stack unpack $package
cd $package-$version
stack init --resolver nightly
stack build --resolver nightly --haddock --test --bench --no-run-benchmarks

Supersedes #3461.

Merged, thanks

Thanks, @juhp! :)


Uncomments Jammy Full Stack details

Summary

This was already added on the stacks page, but commented out. I've uncommented it.
Checklist

[x] I have viewed, signed, and submitted the Contributor License Agreement.
[ ] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[ ] I have added an integration test, if necessary.
[x] I have reviewed the styleguide for guidance on my code quality.
[x] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

I don't think that this is totally accurate around PHP and Ruby support.

The stack can say that it is ideal for supporting those types of applications even though the buildpacks don't support the stack yet.

Here's the thing. I'm not gonna remember to update this documentation when PHP and Ruby complete their Jammy support.  Would you like to volunteer?

I think that the argument saying it is ideal to support those languages is fine for me.