Cannot update parameters of existing application in Marathon 1.4.0

Hi guys,
using Marathon 1.4.0 on Mesos 1.1.0, we're unable to update parameters of existing applications. We're using Docker on our Mesos slaves to run our applications. Each Docker image is tagged with it's git commit, so if we push out a new release and want to deploy it, we simply update the git commit inside the app definition at container.docker.image using a PUT request (we send the full application definition along).
Since Marathon 1.4.0, this now longer works. The previous PUT requests result in status code 422:
curl -w"\n" -f -XPUT -H"Content-Type: application/json"<EMAIL_ADDRESS>http://mesos-master1.domain:8080/v2/apps/some-api/production

curl: (22) The requested URL returned error: 422 Unprocessable Entity

A PATCH request works though, but only if we send it directly to the Marathon leader. When sending it to one of the other nodes in a HA setup, no deployment is triggered.
This is our version detail:
{
  "name": "marathon",
  "version": "1.4.0",
  "buildref": "unknown",
  "elected": true,
  "leader": "mesos-master1.domain:8080",
  "frameworkId": "61322be0-8756-418c-a1b2-a27e5c8763e1-0000",
  "marathon_config": {
    "master": "zk://<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181/mesos",
    "failover_timeout": 604800,
    "framework_name": "marathon",
    "ha": true,
    "checkpoint": true,
    "local_port_min": 10000,
    "local_port_max": 20000,
    "executor": "//cmd",
    "hostname": "mesos-master1.domain",
    "webui_url": null,
    "mesos_role": null,
    "task_launch_timeout": 300000,
    "task_reservation_timeout": 20000,
    "reconciliation_initial_delay": 15000,
    "reconciliation_interval": 60000,
    "mesos_user": "root",
    "leader_proxy_connection_timeout_ms": 5000,
    "leader_proxy_read_timeout_ms": 10000,
    "features": [],
    "mesos_leader_ui_url": "http://mesos-master1.domain:5050/"
  },
  "zookeeper_config": {
    "zk": "zk://<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181/marathon",
    "zk_timeout": 10000,
    "zk_session_timeout": 10000,
    "zk_max_versions": 50
  },
  "event_subscriber": null,
  "http_config": {
    "http_port": 8080,
    "https_port": 8443
  }
}

OS Info:
Linux mesos-master1 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64 GNU/Linux

Going from PUT to PATCH is not a problem for us, but the "need to send to leader" thing is a little odd. Until now we we're thinking that Marathon proxies everything to the master node itself.

Duplictes: https://github.com/mesosphere/marathon/issues/5211

Fixed on 1.4 via e1b79523741bf1c266b953eba1bcf8783f819c3a


ciri: segmentation fault on tips_requester shut down by CTRL-C

2019-07-08 16:14:52: tips_requester:   INFO: Shutting down tips requester thread
Segmentation fault

Can't reproduce, but there's a segmentation fault on iota_api_http_destroy

I think they were the same crash. Not seeing any crash since the iota_api_http_destroy one has been fixed.


Please enable DMARC on your multibit.org domain

I know this might not be the best place to put this, but I just wanted to let you know that DMARC can help you avoid phishing scams with your domain.
The steps you should follow are:

Enable DKIM and SPF
Add a _dmarc.multibit.org TXT DNS value that reports to you and check which emails would pass
Enable strict rejection of emails that don't pass DMARC evaluation.
Learn more here: http://dmarc.org/

Thanks for letting us know. I've replicated this issue on the website repo which is more appropriate for this kind of issue so I'll close it here.


Strategy to init WorkbenchModule

At first, WorkbenchFX is really great. Thank you for that.
The case: In my WorkbenchModule I add a ToolbarItem to the ModuleToolbar. Based on v1.0.0 I have two possibilities: Add this code to the constructor or override 'init(Workbench workbench)'.
The point is, I need to use the workbench object. Only the 'init' method provides it. But using this method calls my code (to fill the toolbar) multiple times while using the application (the reason is clear for me). And this will add my toolbaritems again and again.
Based on this behaviour I have to check if the method was called the first time, only then I execute the code.
Ok, this is simple. But it would be more intuitive, to have a support for this.
Proposal: class 'WorkbenchModule' provides a further empty method (to override), which is called only once after init. Means, even if init is called again, based on the known state, the new method is not called again.
What do you think?

Hi @ryppo!
Thanks for the praise, we're glad you like it! 👍
We thought about adding a method like that, but we had issues coming up with a clear and self-explanatory name and even more importantly, we couldn't come up with a use case that made sense.
You correctly identified the two possibilities however! We intended to have ToolbarItems added in the constructor actually, since like you mentioned, the init() method isn't guaranteed to only run once. This was perfectly acceptable for us, as we couldn't think of any reason why someone would need the Workbench for a ToolbarItem.
Could you please elaborate your use case in a bit more detail? I would be interested in knowing what kind of use case would require a ToolbarItem to require a Workbench object.
I think what would be a better approach than to use init() and to check whether the ToolbarItems were already added. If you have a look at most of the controls we use that require the Workbench, like for example the NavigationDrawer, you will see that we don't require the Workbench object in the constructor. Instead, we use an ObjectProperty<Workbench> and you could do the same in your ToolbarItem, calling toolbarItem.setWorkbench(getWorkbench()) in the init() method. After that, we usually either apply a listener / binding to it or whenever possible we simply use getWorkbench() instead of referencing the Workbench object directly, if calls are guaranteed to happen after setWorkbench() was called.
While I agree that this is a bit more of a complex solution, I think it's quite a clean solution, since it also allows you to dereference the Workbench object in the destroy() method, allowing you to react to this with the property of the Workbench in your ToolbarItem and to clean up there as well.
Please tell me what you think and I'm looking forward to hearing about your use case. If it makes sense, I think we could consider adding it.

Hi @martinfrancois ✌
your deep explaination of the design suggestions are very helpful to understand it.
Indeed, the current implementation of 'WorkbenchModule' brought me an NPE - at the beginning. Because I was using 'getWorkbench()' too early. Anyway, I saw the source code and changed my implementation.
Back to the current case.
Using the great JPro framework (version 2018.1.6), there is a special implementation necessary to provide a 'FileChooser' behavior to the 'Button' (in 'ToolbarItem'). You need to use the 'WebAPI' feature 'makeFileUloadNode'. There is just this issue to get the current 'WebAPI'. For this there is a feature 'WebAPI.getWebAPI(Scene)'. And here is the use case: The 'Scene' is not available from 'WorkbenchModule', but from 'Workbench'.
Okay, this is really a special case. Initially I thought to provide the WebAPI within the 'WorkbenchModule' constructor. But I think this is not good code. Because generally this object is available in 'WorkbenchModule' - just a little bit late.
This explains, why I create the 'ToolbarItem' in 'init' method, instead of in the constructor.
Another solution would be, if the 'Scene' is known in constructor of 'WorkbenchModule'.
I hope my explanation is not too complex 😁

Hi @ryppo ✌
I'm glad my explanations helped with your understanding!
I see, although I have to admit I'm not sure I really understood what the problem is.
If I understood your problem correctly, would an approach like this work? (Pseudocode)
class MyModule extends WorkbenchModule {
  ToolbarItem button;
  MyModule() {
    super("My Module", ...);
    button = new ToolbarItem(...);
    getToolbarControlsLeft(button);
  }
  @Override void init(Workbench workbench) {
    WebAPI.makeFileUloadNode(button, WebAPI.getWebAPI(workbench.getScene())); // I don't know what you actually want to do here, this is a placeholder to show you what I think you could use
  }
}

If my proposal doesn't work for a certain reason, please provide me with the concrete code you had to use in your implementation, so I can better understand why it is needed.

Hi @martinfrancois
thank you, this is one of the possible useful approaches - and it's a quite better minimal solution :-)
Just to have as good code as possible, I like searching for improvements.
To explain: In your example the most code is executed only once, as expected. But the code in init is called more often than necessary. And reason is only the availability of the Workbench.
Of course, I don't want to break the design. My question is answered. Thank you.

Hi @ryppo!
 I definitely see what you mean. We definitely discussed this, but we thought the additional complexity definitely outweighs the advantages you get by having this opportunity, as most of the times the calls being made in init() that are being called multiple times are not an issue at all. However, I will still leave the option open to include something like this in the future, if there is a plausible use case that would have a significant benefit from only running at the first initialization of the module.
I'm glad your question is answered! If a use case comes up in which it would make a significant difference, don't hesitate to open up an issue!


allow to replace also underscores with spaces

good for constants like 'HELLO_WORLD'

Thanks @oshai! That is actually a really good idea. I'll try to integrate it during the weekend.

Thanks! I added one comment.


debugPC cause text unreadable while using nvim-dap

nvim-dap use the debugPC for DapStopped highlight. The c0369bf case the text unreadable while using nvim-dap.

Sorry, duplicated with #288


i18n(zh-cn): Update testing.mdx

Description (required)
Update testing.mdx
Related issues & labels (optional)

https://github.com/withastro/docs/pull/9240

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File
Note

zh-cn/guides/testing.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


refactor: improve methods

Add logic for formatting spaceID
Replace let with cost as these variables are never being reassigned a new value
Add breathing spaces in concatenations
Add comment for TODO

Is it cool now? @jofftiquez or need more improvements? I'm gonna merge this now to the main branch.

I will now merge this to the dev branch. @jofftiquez


Add skeleton for sql sbom generation

Modify the script to have the ability to generate sboms for sql server images, just like for windows other images

/cc zmarano

/cc dorileo


Update LeMUR nodes + AssemblyAI SDK + configure integration in user agent

This PR does the following:

Update the AssemblyAI LeMUR nodes to accept input_text and have new editors.
Update the AssemblyAI SDK to the latest version.
Configure Rivet as the integration in our user-agent which gives us insight into how much usage comes from Rivet.
Update documentation links and add UTM tag to attribute referral traffic from Rivet docs.

Cool, thanks!


Add of the mandatory Upload-Offset in the PATCH server response

In the tus protocol v1.0.0, is specified that the
The Server MUST acknowledge successful PATCH requests with the 204 No Content status. It MUST include the Upload-Offset header containing the new offset.
In the different examples, the server responses did not include the Upload-Offset header. I added the header in the examples.

Hi, thanks for your contribution!
I remember that we decided that not all examples need to include all protocol aspects, just to keep them readable and so that people can more easily digest the essence of what is explained.
That said, I can't find a snippet in the protocol clarifying that (that should be there). Also I'm second guessing both my memory and this decision. It seems to me now that the core protocol should at least be implemented, just to avoid confusion. Also, an extension such as Checksum does feature the Upload-Offset header.
I won't merge your PR before getting some feedback from core (unfortunately our leader is on a 2 week holiday atm), but you definitely raised a good question - and if they agree we'll merge this!

Just got word from @Acconut

Examples must follow the core protocol and the specific extension. Since upload-offset and tus-resumable are defined in core they must be included in every example else it's otherwise noted.

So merging this - thanks again!


Update test for go 1.6

Fixes #105

@maximilien any concerns with this change?

Looks good. Merging. Thx


Manual reconnect

This is kind of a feature request. Is there any way to manually trigger a reconnect attempt instead of waiting for the timeout defined by the retry strategy?
Many thanks,
Chris

In your retry strategy you can return 0 to immediately try again or undefined top stop the retry strategy. I would not recommend trying to reconnect immediately but wait at least 100ms and look at the reason why the connection failed. You can always just write logic into your application to do connection attempts manually.
You can keep track of the connection status through the events if you desire so. I don't think the current implementation lacks any feature going on the description of your issue.
Let me know if we can be of any help.

How do I trigger a manual reconnect?

The easiest way would be to rewrite logic into the retry strategy which satisfies your needs.

But once I have returned 5000 for instance, I have to wait 5000 until I can reconnect. There is no way to do it any time earlier, right?

When the retry delay is running, the internal function does not allow to be called since it could result in multiple connection attempts.
Could you elaborate on your use case? I am having trouble understanding the use case for your problem.

If you consider using redis to store express session tokens, it would be quite helpful if you for instance trigger a reconnect whenever a request comes in or every n-th request instead of not having the login working for a certain amount of time specified by the retry_strategy. I assume a manual attempt could just clear the setTimeout in case it leads to a successful connection, no?

You could implement an Exponential backoff strategy to have faster reconnects but honestly, in normal production ready environments the use case you describe should not really be a problem. It might be worth the effort to find out why your Redis server drops connections so many times when it becomes an apparent problem.

Yeah, I agree. I'll have to invest some time in finding the cause for this. Maybe a manual reconnect is not needed at the moment.


unable to to join https://react-table-slack.herokuapp.com/

Is the slack account active?
I got "Failed! account_inactive" error message when I tried to join.

The new slack organization signup is located here: https://react-chat-signup.herokuapp.com/ :)

is this still working ?

We now use https://spectrum.chat/react-table
Tanner Linsley
On Apr 20, 2019, 4:08 AM -0600, gardezii<EMAIL_ADDRESS>wrote:

is this still working ?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.


Null* times MarshalJSON and UnmarshalJSON

Hi Samuel,
In my first pull request for types, I've added wrappers around sql.Null* types, but later we removed these wrappers to use directly sql.Null* types. But sql.Null* types don't have MarshalJSON and UnmarshalJSON  methods, which makes json data handling a problem. Also types.NullTime does not have such methods.
Is it OK to add wrappers for sql.Null* types again for MarshalJSON and UnmarshalJSON methods?
If it is OK I'll create a pull request for json compatibility to all(types.Null*, sql.Null*), if not I'll create a pull request for json compatibility to only our types(types.Null*).

Hi derkan,
I'm on holiday, I'll get back in two weeks  and will not review anything before. I've no computer with me. And need to do anything except dev tasks ;)
But I think you can add types if needed. Take all your time to write docs, tests, ... as I'm not available. I'll try to review this near mid august.
Sam.

As the PR was merged ( https://github.com/samonzeweb/godb/pull/19 ), can I close this issue ?

Yes please.
Thanks!


peertube: limit threads used for compression step

Description of changes
This explicitly sets fd's thread count to $NIX_BUILD_CORES, to limit the number of CPU cores as requested by Nix.

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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/)
24.11 Release Notes (or backporting 23.11 and 24.05 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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Should this check enableParallelInstalling, and if disabled, serially run fd? i don't really see it documented anywhere in what situations it should be checked.

Should this check enableParallelInstalling, and if disabled, serially run fd? i don't really see it documented anywhere in what situations it should be checked.

Yeah, we probably should adhere to enableParallelInstalling. If you grep through nixpkgs, you can find hooks that depending on this variable set the number of jobs to $NIX_BUILD_CORES.

Should this check enableParallelInstalling, and if disabled, serially run fd? i don't really see it documented anywhere in what situations it should be checked.

Not really. enableParallelBuilding is set on a package level unlike NIX_BUILD_CORES and also has a different purpose usually (work around broken build systems).


renderToString memory leak

We are using the marty express middleware using koa and we noticed we were seeing a pretty severe memory leak and we narrowed it down to the renderToString method.
https://github.com/martyjs/marty-express/blob/master/index.js
We narrowed it down further to the render function in the application context.
https://github.com/martyjs/marty-lib/blob/master/modules/application/applicationContainer.js
We are still investigating to see if we can pinpoint the issue.  Here is a dump of our memory using node-memwatch and it looks like every time we render on the server side that all the data and react that is rendered is being stored in memory.
{ before: { nodes: 336157, size_bytes: 47598312, size: '45.39 mb' },
  after: { nodes: 1673271, size_bytes: 132722624, size: '126.57 mb' },

  { what: 'Array',
    size_bytes: 22434376,
    size: '21.4 mb',
    '+': 419078,
    '-': 2494 },
 { what: 'Closure',
    size_bytes: 9829296,
    size: '9.37 mb',
    '+': 136753,
    '-': 235 },
  { what: 'ReactCompositeComponentWrapper',
    size_bytes: 5507528,
    size: '5.25 mb',
    '+': 52957,
    '-': 0 },
  { what: 'ReactDOMComponent',
    size_bytes: 4026912,
    size: '3.84 mb',
    '+': 41947,
    '-': 0 },
  { what: 'ReactDOMTextComponent',
    size_bytes: 123040,
    size: '120.16 kb',
    '+': 1538,
    '-': 0 },
  { what: 'ReactElement',
    size_bytes: 6812856,
    size: '6.5 mb',
    '+': 94624,
    '-': 1 },
  { what: 'system / Context',
    size_bytes: 9230736,
    size: '8.8 mb',
    '+': 129776,
    '-': 148 }

Investigating

I've created a branch of the chat example to try and replicate this issue which i'm running with node 0.12 and using memwatch-next to logging out heap stats. If I run while true; do curl http://<IP_ADDRESS>:5000/; done for a while it seems a lot of memory is being used although it does eventually get cleared.
current base: 59760792 ; estimated_base: 59760792 ; usage_trend: 0
current base: 217834864 ; estimated_base: 217834864 ; usage_trend: 0
current base: 595563440 ; estimated_base: 595563440 ; usage_trend: 0
current base: 38304768 ; estimated_base: 38304768 ; usage_trend: 0
current base: 123842328 ; estimated_base: 123842328 ; usage_trend: 0
current base: 396223208 ; estimated_base: 396223208 ; usage_trend: 0
current base: 760554800 ; estimated_base: 760554800 ; usage_trend: 0
current base: 45458816 ; estimated_base: 45458816 ; usage_trend: 0
current base: 117148952 ; estimated_base: 117148952 ; usage_trend: 0
current base: 387706512 ; estimated_base: 144204708 ; usage_trend: 0
current base: 751897880 ; estimated_base: 204974025 ; usage_trend: 2.8
current base: 942412424 ; estimated_base: 278717864 ; usage_trend: 6.6
current base: 45609824 ; estimated_base: 255407060 ; usage_trend: 4.3
current base: 119092240 ; estimated_base: 241775578 ; usage_trend: 2.5
current base: 391581752 ; estimated_base: 256756195 ; usage_trend: 4.3
current base: 731904968 ; estimated_base: 304271072 ; usage_trend: 10

Still not sure why this is happening though, will look a bit more

thanks for the quick reply.  I will go take a more thorough look at the example and try switching back to node 0.12.  I'm on the latest version of iojs currently.  Were you seeing a similar trend with the heap diff as above? var hd = new memwatch.HeapDiff();
Attached is what it looks like on my servers.

Closing this as it turns out it was caused by a dangling event handler that we failed to unmount, sorry about that.  It caused a massive leak within Marty, we are looking into ways to possibly add an error or warning in Marty to notify us when we make these mistakes.


server: error logging

Currently we are only logging and recording metrics for internal server errors
with exact code 500. This commit now ensures that 5xx errors are logged
and the metrics recorded.

@ondrejbudai are we still having issues with the CI?

Yeah, sorry, I need to figure out what to do with it if we cannot merge https://github.com/osbuild/image-builder/pull/274 for a long time.

Needs a rebase, that will fix the CI.


Not working properly

With the new update, the extension stopped working as well as the previous version.
For example, with Light theme  chosen will not adapt to almost any site, and with the dark theme in some sites with a light theme, like Twitter or youtube, the tabs are remaining dark

@AonDuine That’s what it’s meant to work, for now. In v1.3.1 the two options “Light mode” and “Dark mode” are actually the previous “Force light mode” and “Force dark mode”. That’s because allowing the tab bar to turn bright from dark (or vice versa) causes problem when view websites with auto dark mode, e.g. developer.mozilla.org.
For instance, in the previous version, you got a bright tab bar on Wikipedia, and a dark one on Twitch. If you switch from Wikipedia to developer.mozilla.org, the website switches to light mode; if you switch from Twitch to developer.mozilla.org, it turns to dark mode again. That’s because Firefox detects color scheme by looking at the current tab bar theme (color of the text, I think), and websites with auto dark mode can easily get confused and be very flashy.
This is the issue I’m still struggling with: I can’t figure out how to override the color scheme (dark/light) of Firefox, without it keeps looking at the tab bar theme. For now, to prevent flashing, the only thing I can do is only giving “Force light mode” and “Force dark mode”, a.k.a “Light mode” and “Dark mode”. I’m thinking about giving back the options “Prefer light mode” and “Prefer dark mode” but marked as “experimental”.
Thank you for filing the issue. I’m still working on it.

@AonDuine Solved the problem. Everything works again.


Refactoring IntelliJ and android-studio

Refactor the code by identifying the common implementations of the tool commandlets "IntelliJ" and "android-studio" and remove duplicates

PR #339 was merged but this is not really completed:

[ ] Introduce an abstract class IdeaBasedIdeToolCommandlet between IdeToolCommandlet and its current implementations Intellij and AndroidStudio. There might come support for additional such IDEs to IDEasy in the future (PyCharm, WebStorm, etc.).
[ ] Extract common functionalities to the new abstract base class.

[ ] IMHO plugin installation is the same for all IDEA/JetBrains IDEs except for some parameterization of the download URL and the IDE folder name in the plugins folder.
[ ] IDEA_PROPERTIES mechanism is the same for all IDEA/JetBrains IDEs only the name of the environment variable differs. The Variable value differs per workspace. Therefore setting it once in postInstall with a fixed workspace name is buggy. We need to "export" this property via ProcessContext for each call of that IDE. Also it seems an existing flaw that we use the same-filename for different IDE products: See android-studio and IntelliJ. As both files have different content, they also must have different filenames as otherwise one overrides the other.
[ ] The getBinaryName() problem is the same for all IDEA/JetBrains IDEs. The current solution is still not nice. I would prefer a postInstall hook that creates a simple wrapper bash script if the default command is not already present. So create bash script studio that only calls studio64.exe $*, etc.


Fix typos

Found via codespell -S .git -L crate,bu,vew,astroid,ser,dne,pring

Thank you!

Could you bump the minor version in ./coredb-cli/Cargo.toml, ./crates/pgmq/Cargo.toml? That should get the CI checks to pass.
The merge conflict in crates/pgmq/src/query.rs looks like its just a comment that has been removed from main.

The merge conflict in crates/pgmq/src/query.rs looks like its just a comment that has been removed from main.

I don't see any merge conflict?

:tada: :tada: :tada: :tada: :tada:


Make secp256k1 optional

This change makes secp256k1 an optional dependency so that
applications requiring chain parsing but not doing any validation nor
signing do not have to compile secp256k1. This is a breaking change
because dependencies of this crate must fix their feature settings but
apart from that they don't need to do anything.
There are two things which may be surprising: moving of some modules and
removing secp256k1/serde from use-serde. The former one is explained
in the doc of src/util/psbt_no_key/mod.rs. The latter is due to
inability to avoid compiling secp256k1 when not needed. (electrs hit
this)
Closes #526

Compile times on my machine after the change:
$ time cargo build --no-default-features
...

real	0m18.578s
user	0m25.393s
sys	0m2.141s

$ time cargo build --features=secp256k1
...

real	0m29.741s
user	1m7.488s
sys	0m5.765s

$ time cargo build --release --no-default-features
...

real	0m21.474s
user	0m50.332s
sys	0m2.200s

$ time cargo build --release --features=secp256k1
...

real	0m42.318s
user	2m19.932s
sys	0m5.932s

IMO secp should be on by default

@elichai I'm personally not very happy about default features as users sometimes forget to turn them off when not needed. Forgetting to turn it on is impossible, since compiler will let you know very quickly. :)
But if other agree with you, I will add it to deafults.

Targeting 0.27. It may be that we want to split the crates up more to achieve this same goal.

Targeting 0.27. It may be that we want to split the crates up more to achieve this same goal.

Is the intended design described somewhere?

Is the intended design described somewhere?

No, I'll try to open a tracking/discussion issue today.

No, I'll try to open a tracking/discussion issue today.

@Kixunil here is my proposal https://github.com/rust-bitcoin/rust-bitcoin/issues/550

@Kixunil here is my proposal https://github.com/rust-bitcoin/rust-bitcoin/issues/550

Note that with https://github.com/rust-bitcoin/rust-secp256k1/pull/289, while compile times won't change, release binaries should entirely drop any secp functions that are unused.


Feature request: Diagram editor improvements

Rework

[x] Handle the case where elements shown in diagram are removed or changed (i.e. properties/classes/tagged-values/associations/etc.) - Related to #335 - We need to create an auto-heal mechanism that scans all diagrams in the graph and fix them, also, rerender them upon completion (See https://github.com/finos/legend-studio/pull/351):

[x] When we delete an element (association and class)
[x] When we delete a property
[x] When we delete a supertype
[x] When we change a property type

[x] Make diagram resize box indicator more apparent, we should change the cursor to indicate resizability (we can even expand resize ability to allow resizing from the sides and any corners) - See https://github.com/finos/legend-studio/pull/349
[x] Zoom should take into the current position of the current instead of zooming from the centre of the diagram - https://github.com/finos/legend-studio/pull/350

New features

[ ] Support association (we need to also consider how the auto-heal work with association and https://github.com/finos/legend-studio/issues/282)
[ ] Support deleting property, class, inheritance, etc. (not just class view) -> potentially by setting up some hotkeys like Shift+Delete or do some right-clicking action
[ ] https://github.com/finos/legend-studio/issues/128
[ ] https://github.com/finos/legend-studio/issues/127
[x] When we do a single click to select a class view, the class view should be shown on the side bar to allow edit information like hideProperties, hideStereotypes, etc. (and potentially when we improve the model to accept line width, and color, etc.) - See #350
[x] Allow aligning elements in the diagram - https://github.com/finos/legend-studio/pull/350
[x] Show tool panel and hotkey guide for diagram viewer (right now we don't really display the hotkeys cheatsheet anywhere) - See https://github.com/finos/legend-studio/pull/340
[x] Support right-clicking on a class view and hit execute? (https://github.com/finos/legend-studio/pull/584)
[x] Show class supertypes and subtypes (https://github.com/finos/legend-studio/pull/361)

To be considered

[ ] Introduce theme/color-scheme to diagram and make it more customizable
[ ] Allow searching for class/property in the diagram and have it zoomed in
[ ] Allow modifying color of diagram - this requires changes in the model of diagram
[ ] Allow specifying a function to dynamically change color of the diagram class view
[ ] DISCUSS? Remove the usage of offset in relationship view
[x] Allow inline editing for class and property directly on the diagram - Implemented in https://github.com/finos/legend-studio/pull/349 but later remove as we deem it not too useful (we are encroaching the realm of auto-layout but that needs a lot of discussion)

I'll just close this and will bring back it in forms of smaller separate issues when there's interest again.


What does this do, docs unclear

Interesting project but Im a little lost on what it is trying to achieve, in the faq  it says:
The ha-bridge has helpers to build devices for the gateway for the Logitech Harmony Hub, Vera, Vera Lite or Vera Edge, Nest & HAL and the ability to proxy all of your real Hue bridges behind this bridge.
That sentence is a little hard to parse, could someone try to reword that? Another point of confusion is that it says it emulates Phillips hues api, what is the reason for this, is this because many devices already integrate with that so its an easy place to hook in at, or is it something else?
Anyway ideally i would like to control thermostats other than the nest with my harmony. The harmony only talks to the nest but Im hoping i can emulate the nests api with this and redirect it to my thermostat. Is that a use case for this project or have i got the wrong idea.
Thanks

"Emulates Philips Hue api to other home automation gateways such as an Amazon Echo or Google Home. The Bridge handles basic commands such as "On", "Off" and "brightness" commands of the hue protocol. This bridge can control most devices that have a distinct API."
Since the Harmony Hub can talk to a Philips Hue, it can talk to this ha-bridge. The helpers are on the UI to build the proxy devices for those types of automation systems as the helpers list the available devices on those systems. You can build custom devices that talk HTTP, HTTPS, TCP or UDP to control any device that has a sessionless API to call.

Ok so if my device roughly fits into the api of Phillips hue I can use if as an adaptor layer. Interesting stuff. Does it have to be Phillips hue that Alexa thinks it's controlling. Also where can I learn about the api of hue under the hood

So, the path for this is:
                                    +------------------------+        +-----------------------+
+---------------+         | H A  +----------------+  |       | A +------------------+ |
| Harmony Hub |----->| U P  | ha-bridge core |   |--->| P | Device to control | |
+---------------+         | E I   +----------------+   |       | I +-------------------+ |
                                    +------------------------+       +------------------------+

Cool that's awesome, any tips on how to reverse engineer the api for my thermostat, it's by netatmo.
One other question how can a light bulb api be adapted to a thermostat. There seems to be a huge mismatch in concepts and functionality.

Here ya go, google is your friend: https://dev.netatmo.com/dev/resources/technical/introduction

@LukeDefeo I think you are getting distracted by the api side of things, the core concept of ha-bridge is really very simple (but very powerful).
Typical Hue use
You purchased and installed a Philips Hue Starter Kit (bridge and bulbs) in your home.
Now you can turn the lights on and off with your phone as well as the Hue Dimmer Switch stuck to your wall. Great.
Hue and Echo use
You then buy and Echo and out of the box it can detect and control the same bulbs you control with the app. This is built in to the Echo and you do not need to use the Hue Skill for basic control.
You can say "Alexa, turn off the living room lights" and "Alexa, dim the living room lights to 40%" and she will. Super.

This means you can create a voice controlled switch for pretty much anything as long as you can do it with a computer :)
Can you see the attraction and power now? :)

@digiltd Great write up! might put that as the intro in the README....

@digiltd
Wow, perfectly put!

Thanks @digiltd That is a nice write up and that should deffo go in place of the sentence i quoted in my initial issue.
I presume you chose HUE as your facade API since its a fairly popular product that many other smart home controller hubs have integrations with so it covers a lot of ground?
Ill read into HUEs api to see how it might map to my problem.

In your first post you don't actually mention using an Echo or Home device.
Are you looking to use the Harmony Remote to control the Netamo thermostat via ha-bridge?
I just had a quick look at my Harmony and it does indeed see all the "fake bulbs" i have set up. It also lets me control them. However the experience is super crappy, no fault of the bridge, it is super crappy even for its intended purpose (controlling the lights). I would it would be very tricky to try and use it to control a thermostat.
Do you have Hue bulbs to have a play with the Hue controls on the Harmony? If not then I recommend getting ha-bridge setup so you can create a "fake bulb" for the Harmony to detect.  Then we can close this issue.

sure

@digiltd Thanks man, you are helping out a lot

@digiltd I put your scenario explanation in the FAQ. Closing

Ah, just spotted that. I had already added a page on the wiki expanding on what I wrote here. Unless you have any objections I will remove the bit from the FAQ and replace with a link to the wiki page :)

What ever makes the most sense. Just put out the 4.3.0 release


Research: Evaluate if go workspaces can help reduce duplications and make dependencies between our sub modules easier to handle

Goal
POC to reduce dependency hell by using a go.work file
Details
Currently, we do have some pieces of code that are shared between different modules of the lifecycle toolkit (e.g., functions for generating KLT resource names that are needed in both the operator and the scheduler). These are either duplicated in the modules where we need them, or imported as a dependency from the other module (e.g., the KeptnMetric CRD structs that are imported into the lifecycle operator from the metrics operator, or the cert-manager library that is used in both operators).
To make our lives easier, we should look into using go workspaces to move common functionalities into its own module, and to make imports between modules within the repo/workspace easier and avoid overhead by renovate PRs whenever one of the submodules that is required by others is changed.
As a reference, we can look into how flagd uses this concept - here they have a core module that is imported by other submodules in the repo.
Note that we will likely need to adapt our Dockerfiles for making this work, as we will need to copy the folders containing the imported submodules into the container, so the docker build needs to be executed in the parent directory of the built artifact, as opposed to the directory of the artifact itself. Similarly, Makefiles and workflows need to be adapted.

After looking into this, I have my doubts about go workspaces fitting our needs here.
In a PoC I tried to make use of that concept, but immediately ran into dependency issues, as some of the transitive dependencies introduces by the metrics-operator (e.g. the ones introduced by importing sigs.k8s.io/custom-metrics-apiserver) were not the same as the ones in the other operators. However when using go workspaces, dependency versions need to be the same for all submodules in the workspace.
This is also a blocker when it comes to the scheduler, as we require different versions of some dependencies here.
Finally, the best practice regarding go workspaces seems to be to only use it for local development (e.g. as highlighted in the this article, or discussed here), and it seems to be discouraged to actually use it for building any production images.


Extra whitespace in the x-syntax

Laravel Version: 8.18.1
PHP Version: 7.4.13
Database Driver & Version:

Description:
Expected output of welcome.blade.php:
OK
Current output:
O K
As you can see from files below, the compiler adds extra-whitespace.
Extra whitespace defined there:
https://github.com/laravel/framework/blob/f185be865a/src/Illuminate/View/Compilers/ComponentTagCompiler.php#L233
Is there some way to get rid of that?
Steps To Reproduce:
welcome.blade.php:
O<x-text />

components/text.blade.php
K

If I try to manually remove it by using @component directive:
O@component('components.text')@endcomponent
The result will be an error.
So, it seems like I must add whitespace:
O @component('components.text')@endcomponent
Result:
O K

Please see https://github.com/laravel/framework/issues/34931


Feature request: Mapping to cycle through directories

Being able to switch tools on the fly with <TAB> is a lifesaver. It reduces the combinatorial explosion of possible mappings (assuming you don't like to type Grepper ....). I've found that in my workflow there are 3 options I change quite often:

Tool
Directory
Side option (-side)

But being a vimmer I use mappings for common use cases, so I've got 8 different mappings of grepper (4 directory options * 2 side options). However the mental load to be aware which mapping to use beforehand is too much imo. I'd rather type the command. It'd be really useful if I could cycle through g:grepper.dir in the prompt like I do with g:grepper.tools. I also think other people might benefit from this? Since changing directories to grep in is a common use case.

Thanks for the suggestion. I'll see if there a viable ways to do that.

In the prompt you can now toggle the -dir and -side flags via <c-d> and <c-s>.
You can change the default mappings with :h g:grepper.prompt_mapping_dir and :h g:grepper.prompt_mapping_side.

Thank you so much! I like the default mappings. They are intuitive. <c-s> doesn't conflict with readline bindings and readline <c-d> can be safely be overriden here since it doesn't apply to the prompt.


[Auth] Implement identity linking

Feature request
Is your feature request related to a problem? Please describe.
Implement new identity linking feature: https://supabase.com/docs/reference/javascript/auth-getuseridentities

already implemented for kotlin - https://supabase.com/docs/reference/kotlin/auth-linkidentity

Thanks @grdsdev  -
you gotta jump onto claude ai -
I'm cranking out AI code by prompt engineering.
https://github.com/johndpope/MusicControlNet
https://github.com/johndpope/emote-hack


Identify framework - other than bootstrap

Framework:
Bulma - confirmed

Bulma seems to be very similar to Bootstrap - probably a good choice for ease of learning


Module Login not Persist

Hi  !
Log in site works .
I have ACL module in Yii2 with login form.
Login validation return true in Yii::$app->user->login($user,$expire); (/acl/default/login) but not persist between pages.
Help ?
att,

Please use forums for questions. GitHub is for issues and feature requests. Thanks!


Reorder "Getting started" articles, remove differing link titles, rename "Getting > {Best practices => Cluster sizing, multi-tenancy and autoscaling}"

What does this PR do?
Apart from the title, I'm changing make dev to run hugo locally, since we found in chat that the current Docker-based workflow doesn't work. Running it locally is faster and easily works with file watching.
What does it look like?
This matches the drafted order of "Getting started", renames one article, but otherwise doesn't introduce major changes yet. I've used multiples of 10 so we can easily add more articles in between if needed. Some numbers are missing as placeholder for the articles that we want to add soon. Here's the current order with my changes:
λ grep -r weight: src/content/getting-started/*/*index.md | awk '{print $NF " - " $1}' | sed -E 's|src/content/getting-started/([^/]+).*|\1|' | sort -n
20 - cloud-provider-accounts
40 - kubectl-gs
50 - sizing-multi-tenancy
60 - app-platform
70 - ingress-controller
80 - exposing-workloads
90 - persistent-volumes
100 - observability
110 - rbac-and-psp
120 - operations
130 - ca-certificate
140 - network-policies
150 - capa-wlcluster-creation
160 - capz-cluster-creation

Any background context you can provide?
https://github.com/giantswarm/roadmap/issues/2393
Have you maintained the front matter?
No, since content doesn't change.

Fails the checker


Implementing Time Picker Controller.

I think adding a time-picker along with date-picker seems very natural. Added some usages for DatePicker and TimePicker APIs as well.

@Meghaditya overall, looks great! I just had one minor comment about the default time format.
Also, please update your branch with the latest changes in master. Once those are done, I'll merge this pull request.

I made the changes as per the comment. please review.

Looks good! Can you squash your commits. Once you do that, I'll merge to master.

squashed.

I still see the same commits. Did you force push your branch?


[Build Android] Task :app:mergeDebugNativeLibs FAILED

Same code, updated this package, ran npx react-native-clean-project, cleaned node_modules, uninstalled app. Error when running npm run android:
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > More than one file was found with OS independent path 'lib/x86/libc++_shared.so'. If you are using jniLibs and CMake IMPORTED targets, see https://developer.android.com/studio/preview/features#automatic_packaging_of_prebuilt_dependencies_used_by_cmake

rn version: 0.63.4
package version: 0.5.3

@SrBrahma check installation steps in docs

Thanks for the quick answer (and as always, also for the lib!)!!
I think there should be a tip about that in README, for other previous version users.


Remove unused urlize

- Summary
urlize is not used in the code base, remove to reduce volume of code to maintain.

@biilmann, did you have a use in mind for urlize?
@erquhart, is there a reason we shouldn't remove urlize now, then re-add if/when it is needed.


add unit tests for highlights

Builds on #14 to highlight or when used as a keyword, plus adds some unit tests for the highlights (see the unit testing docs here)
I also have a maintenance commit here for updating the tree-sitter-cli, but I can drop that out if you prefer.

@the-mikedavis awesome, thanks!


Cloud Computing Book

Don't add copywrited material, Contribute for helping, not for swags.
Read CodeofConduct.


Don't include the test folder in the npm package

Currently the test folder in jsdom 0.2.10 weighs in at 36 MB. Most of that is due to a file named gmon.out that must have been included by accident. By excluding the test folder we can get jsdom down to 756 KB + the dependencies.

So you're not going to land it? (drat)


Click on item search button

As a user, I want to input text and then click on the search button on navbar to search for relevant content items
AC:

When inputting search keywords in the input field, the field display the corresponding keywords
Click on the Search button (may be implemented as a magnifier glyphicon), the user is redirected to the index page (or another page with filtered items depending on the implementation)
User sees only the relevant content items

Note: Relevancy may mainly be determined by string.contain

Can someone explain me how this one is different to #21 ? They both relate to the search of content and display of content based on the search. What happens if two different people work on these two tasks and we will have two solutions to the search function?


[SPARK-38803][K8S][TESTS] Add minio tag for K8s IT

What changes were proposed in this pull request?
This PR aims to add the minio tag. Skip minio related test only when specified -Dtest.exclude.tags=minio
Why are the changes needed?
In some cases (such as resource limited case), we don't want to execute minio related test.
Does this PR introduce any user-facing change?
No, test only
How was this patch tested?
IT passsed
$  build/sbt -Phadoop3 -Pvolcano -Pkubernetes -Pkubernetes-integration-tests -Dtest.include.tags=minio -Dspark.kubernetes.test.deployMode=minikube -Dspark.kubernetes.test.namespace=default "kubernetes-integration-tests/testOnly"
[info] KubernetesSuite:
[info] - Launcher client dependencies (47 seconds, 498 milliseconds)
[info] - SPARK-33615: Launcher client archives (50 seconds, 562 milliseconds)
[info] - SPARK-33748: Launcher python client respecting PYSPARK_PYTHON (52 seconds, 375 milliseconds)
[info] - SPARK-33748: Launcher python client respecting spark.pyspark.python and spark.pyspark.driver.python (54 seconds, 755 milliseconds)
[info] - Launcher python client dependencies using a zip file (52 seconds, 44 milliseconds)
[info] VolcanoSuite:
[info] - Launcher client dependencies (1 minute, 13 seconds)
[info] - SPARK-33615: Launcher client archives (49 seconds, 703 milliseconds)
[info] - SPARK-33748: Launcher python client respecting PYSPARK_PYTHON (51 seconds, 952 milliseconds)
[info] - SPARK-33748: Launcher python client respecting spark.pyspark.python and spark.pyspark.driver.python (1 minute, 3 seconds)
[info] - Launcher python client dependencies using a zip file (2 minutes, 10 seconds)

Sorry, Yikun. -1 for this intention. Tests about minio is important for usage with hadoop. You could refer this issue https://issues.apache.org/jira/browse/SPARK-38652

+1, LGTM. I have a discussion with @Yikun offline. Tag minikube can exclude DepsTestSuite and PVTestsSuite, and tag minio can exclude DepsTestSuite. DepsTestSuite works or not are shown below.

DepsTestSuite
tag: minikube
tag: minio

not work
excluded
excluded

work
not excluded
not excluded

not work
excluded
not excluded

not work
not excluded
excluded

@dcoliversun Thanks, this pr only add a tag, skip minio related test only when specified -Dtest.exclude.tags=minio

Replaced by https://github.com/apache/spark/pull/36096


Python 3 - mitmproxy.contentviews

Please check if .decode() are in the right places.

There are a few test files for which all tests already pass. Should I add them to tox.ini in this pull itself?

Yes, please add them - this allows us to detect regressions as soon as possible.
Thanks!

Done!

Merged - Thanks!


vscode datalog: spurious 'unbound variable in head' errors when nested

These errors shouldn't be there:

Not sure why this isn't finding them: https://github.com/vilterp/datalog-ts/blob/4a79913676dd5f672010b7e788ed55946226eb3e/languageWorkbench/languages/dl/dl.ts#L68-L71

Wait a sec, it's not even finding this?

wtf


Missing wizard_generator.py file

Hi, thank you so much for the effort you are putting into this repo!
The Instructdial/datasets/wow.sh script runs a python file called wizard_generator.py, but there isn't such a file in this project. Is it possible that wizard_generator.py simply hasn't been committed to the repo? Or do we need to download the script from another project?

@prakharguptaz Hi,
I got the same error when processing the data. Could you help fix the problem? Many thanks!

Sorry missed this issue. The file we used is from https://github.com/nlpxucan/ZRKGC/blob/master/ZRKGC/preprocess/wizard_generator.py
I pushed a commit with the file


Error message when copying dates and sources to all queries

It works if you do a hard refresh

allowing the user to click off of a newly created query with no name and/or no media causes some problems. We used to disallow this, but perhaps we now allow it in order to take advantage of this copy all capability. Clicking back and forth causes a few bugs I'm digging into. Associated with the copying of other data too


[4.3 dev 5] Help menu is not displayed correctly

Tested versions
this happens in 4.3 dev 5, before this the problem was not observed
System information
Godot v4.3.dev5 - Windows 10.0.19045 - Radeon RX 560 Series (Advanced Micro Devices, Inc.; 31.0.14001.45012) - Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz (4 Threads)
Issue description
When you click on the help menu, the menu does not look the same, also if you click outside the menu area, the button will still remain highlighted
4.3 dev 4:

4.3 dev 5:

Steps to reproduce
click on help menu
Minimal reproduction project (MRP)
.

Sounds related to native menus, so:

https://github.com/godotengine/godot/pull/89273

CC @bruvzg


Since onhold doesn't happen 'naturally' in Magento, it's a state explicitly given by an admin', this will cause unwanted or unexpected behavior.
For us it's currently a showstopper causing us not to deploy the new version.
I would suggest wrapping it in a feature flag. would be happy to discuss it with @rikterbeek and @dverkade
on slack or something.
https://github.com/Adyen/adyen-magento/commit/8859848f6aca565c9994725ac079f42ce2adf8e6

Hi @sandermangel,
Thanks for letting us know. The order is parked but the order is actual paid for this can happen in some edge case scenario. Why don't you want to un-hold the order becasue then it remains on hold but the payment went through. We could move to slack if it becomes to complex but would you be able to answer some of my questions here ?
Regards,
Rik
Adyen

@rikterbeek as discussed the solution, I went ahead and made a PR https://github.com/Adyen/adyen-magento/pull/832

Hi @sandermangel,
Thanks! this one is merged :)
Regards,
Rik
Adyen


Improvement notes

Really like current progress. Couple of format points:

[x] Could we rename function procedural macros: Dir instead of DirHelper, Str instead of StrHelper. I know this is to help user display info, but I think it is quite inplicit that it is going to help in some ways.

[x] Could we split Str and Repr as they are two distinct function in python.

[x] Could we namespace the #[skip] in the likes of serde: https://serde.rs/attr-skip-serializing.html as it might create confusion when using multiple procedural macro. We can name it: #[special_method(skip)] or something else. See also: https://internals.rust-lang.org/t/add-skip-attribute-to-various-derives/17411/21

Thanks for the suggestions! I have implemented all of them, see the example.

Thanks!
I wouldn't merge them together to be honest as it isn't really in the philosophy of rust. See:
        #[derive(Eq, PartialEq, Ord, PartialOrd)]

or
#[derive(Add, Sub, Mul, Div, ..., Copy, Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd)]

People in rust likes to be expressive.
But I also think it might be confusing to derive them all as there is so many special method in python that it could might be confusing in terms of expectation


i2c needs pullups

internal pullups too weak for faster rates.  also would be good to have 5V and 3V3 options.

implemented

superseded by #16 (included pullups in design)


flattenTree throws error if tree is a leaf

See the following code inside flattenTree:
  const hyperplanes = utils
    .range(nNodes)
    .map(() => utils.zeros(tree.hyperplane!.length));

When a tree is created in makeEuclideanTree, if the number of vectors is not greater than the leaf size, tree.hyperplane is undefined. I see the typescript code checks for that with a Non-null assertion operator, but the transpiled JS code does not:
    var hyperplanes = utils
        .range(nNodes)
        .map(function () { return utils.zeros(tree.hyperplane.length); });

Perhaps there is a problem with the typescript configuration?

fwiw, I think the type compilation issue is the same thing mentioned in https://github.com/PAIR-code/umap-js/pull/27:

Separately, it looks like the TS on that line has a non-null constraint exactly at that point, so it seems like there might be a type bug somehow too. I'm not sure if that's relevant point out, and I didn't look at that further but here's a link if that rings any bells.

That sounds right. Doesn't look like the solution to #27 addressed it though. I'm sorry I don't know enough about Typescript to offer a pull request.

Thanks for bringing this up and sorry for the delay in getting back to you (was just on paternity leave for the last few months). Anyway, I've glanced quickly at it and the issue makes sense if tree.hyperplane is undefined - It's a simple enough fix but I'd just like to be sure I can reproduce it correctly. Mind letting me know under what conditions you're encountering the error?


Implement JpqlSerializer for JpqlSome

Backgrounds

In Kotlin JDSL 3.0.0, the Query objects no longer know how to draw themselves as SQL String.
The Query object is drawn in JPQL String by JpqlSerializer.

Requirements

Please implement  JpqlSerializer that draws JpqlSome as a SQL String.
Please implement a unit test for the implemented class.

Contribution

Please check if there is an assignee in this issue. And if it don't have an assignee, please change the assignee to yourself.
Please check the commit convention through the commitlint.config.js file. The commit  convention also described in the PR template.
When you use intellij, please set the code style through the .editorconfig file.
Please create the PR for develop/3.0.0 as the base branch.
If you have any questions, please leave comment in Kotlin-JDSL Discord Channel in LINE Open Source

Hi @jbl428 I have modified the JpqlSerialiser test to reduce repetition and make it a more safer test.
Please check it out and if you have any questions, leave a comment in this issue or on Discord

@shouwn
I looked at the code, and it seems very useful. :)
If you don't mind, may I create some test files for the JpqlSerializers you've implemented?

@jbl428 Sure!
It would be very helpful if you could make the test code.
If you make the test code and find something I've implemented incorrectly, please feel free to fix it, and if you find anything weird, feel free to leave a comment!

This issue is closed by #402


Add pkgconfig file back to CMake

This makes the necessary changes to have the existing lib3MF.pc.in file built in CMake again (as removed here https://github.com/3MFConsortium/lib3mf/commit/a32e2179e47e17601fb87e898f5a010b71238d98#diff-af3b638bc2a3e6c650974192a53c7291L147-L148)
I've also changed the casing of lib3MF to lib3mf on the pc file as the package name is lower case and so is the .so file.
Fixes #224
And here's a test script for building with pkgconfig
set -e
# from repo root
mkdir build
cd build
mkdir usr
cmake -DCMAKE_INSTALL_PREFIX=usr -DLIB3MF_TESTS=0 ..
make -j
make install

(
    cat <<EOF
#include "Bindings/C/lib3mf.h"
int main(){}
EOF
) > test.cc
flags=$(PKG_CONFIG_PATH=./usr/lib/pkgconfig pkg-config --cflags --libs lib3mf)
g++ $flags test.cc
LD_LIBRARY_PATH=./usr/lib ./a.out && echo 'SUCCESS' || echo 'FAIL'
LD_LIBRARY_PATH=./usr/lib ldd a.out

Thank you very much @aconz2 !


means of "new_scan" and "quality" yields of iter_measures() method ?

1- "new_scan" is always False in txt file. What does that mean ?
2- What is the range of "quality" ? . What does it mean literally ? How can i improve it ?
"quality" always  is one of either 0 or 15 for every scan.
Yields
------
new_scan : bool
True if measures belongs to a new scan
quality : int
Reflected laser pulse strength
angle : float
The measure heading angle in degree unit [0, 360)
distance : float
Measured object distance related to the sensor's rotation center.
In millimeter unit. Set to 0 when measure is invalid.
'''

Those values are reported directly by sensor, so please consult slamtec documents for their meaning since it may vary for different sensor models. Raw serial stream is decoded in this function if you are interested.


Blosc compressor: numThreads serialization fix

Fixes #14
As described in the accompanying issues, changes in 0.4.0 are causing the addition of the key numThreads to the compression map under .zarray when using blosc.
This serialization change causes compatibility issues with the expectations of numcodecs - see https://numcodecs.readthedocs.io/en/stable/blosc.html#numcodecs.blosc.Blosc. A formal specification of the blosc codec and its supported configuration values is available in the Zarr v3 specification https://zarr-specs.readthedocs.io/en/latest/v3/codecs/blosc/v1.0.html#blosc-codec-version-1-0. Although it's not 100% clear whether this dictionary should be considered as extensible, the number of threads used for compression is a writing concern which is fully independent of the reading/decompression mechanism (which might very well used different number of threads) so it seems incorrect to serialize it in the first place.
Tracking down the source of the issue with @melissalinkert, it was found to be introduced in #4 more specifically via the getNumThreads getter method which seems to be serialized under .zarray through the jackson-databind ObjectMapper API. 43cf7f3b4e14627b272faf25bb00b457267a1b4c proposes to remove the getter which suffices to fix the issue while retaining the initial feature.
Opening for initial feedback, it is pretty clear that both the feature and the blosc serialization logic were missing some minimal unit tests which would be great to introduce as part of this PR so that we don't create inadvertent regressions in the future.

:+1: for the fix (Thanks, @sbesson!)
:+1: for the annotation if it works (Thanks, @melissalinkert) so that downstream users don't break (cc: @pedson) though I am confused why this didn't show up for them...

though I am confused why this didn't show up for them...

As I was wondering why this issue hadn't been reported earlier, I found out the compression constructors are not as strict as in numcodecs. At present, any extra key/value can be passed to the factory method/constructor:
Compressor compressor = CompressorFactory.create("zlib", "level", 4, "foo", "bar");

Support or not for unspecified key/value pairs in the compressor key of the JSON is likely a decision that should be enforced at the Zarr specification level. Based on my reading of the current specs,:

the Zarr v2 specification contains minimal information about the compression format and the supported codecs
the Zarr v3 specification substantially improves things by providing a official list of the supported codecs and individual specification pages - see https://zarr-specs.readthedocs.io/en/latest/v3/codecs.html
neither specification defines whether extra parameters not specified in the Configuration Parameters section MAY, MIGHT NOT or MUST be stored under the compressor key

Given the impact, I would propose to focus the scope of this PR on fixing the serialization issue so that the latest version of the library generates Zarr arrays which metadata is compatible with the assumptions of the other reference libraries.

Last commits should implement @melissalinkert suggestion of using the @JsonIgnore annotation which is definitely more elegant than my removal. They also expand the scope of various unit tests to systematically test all core compressions and add a new unit test that specifically test the serialization/deserialization of blosc-compressed arrays.
a723e05 should fail on top of 0.4.0 but passes with the changes above.
While adding new classes came across some inconsistencies/nomenclature questions:

camel case vs snake case for new classes
boilerplate and generally copyright for this fork
the above points at some missing metadata e.g. organizationName and inceptionYear in the top-level POM in case we would like to update headers across the board

Starting the 0.4.1 🚋


mmdetection升到版本3后 一些import位置改到哪里了 有文档说明吗

2.0版本的时候是这个from mmdet.core import distance2bbox, multi_apply, bbox_overlaps, reduce_mean, filter_scores_and_topk, select_single_mlvl, bbox2distance
3.0版本这些在哪里呢

@sharp-xiang We don't have such a detailed API migration document available here. However, you can directly search our API documentation to find the information you need.

@sharp-xiang We don't have such a detailed API migration document available here. However, you can directly search our API documentation to find the information you need.

thanks

@sharp-xiang We don't have such a detailed API migration document available here. However, you can directly search our API documentation to find the information you need.

thanks

May I ask if you have solved this problem? I am also facing the same problem. Thank you


[bug] v2 Event system: AnyLabel isn't handled correct

Describe the bug
The new event system, which primarily relies on targets to work, has some major flaws when it comes to handling these targets. Specifically targets of the kind AnyLabel, which is the default when just adding a string as target in both emitTo and listen.
For example, if a listener is set with the target "main", and emitTo("main", "eventName", "payload") is run, the listener will not be triggered.
I have tried to trace this behavior back to the source, and have stumbled upon this snippet from the implementation of the emit_to function in Rust.
// https://github.com/tauri-apps/tauri/blob/12ffc19ce08eeafdedc65207f312432aa2cf9c84/crates/tauri/src/manager/mod.rs#L590-L606
match target {
  // if targeting all, emit to all using emit without filter
  EventTarget::Any => self.emit(event, payload),

  // if targeting any label, emit using emit_filter and filter labels
  EventTarget::AnyLabel {
    label: target_label,
  } => self.emit_filter(event, payload, |t| match t {
    EventTarget::Window { label }
    | EventTarget::Webview { label }
    | EventTarget::WebviewWindow { label } => label == &target_label,
    _ => false,
  }),

  // otherwise match same target
  _ => self.emit_filter(event, payload, |t| t == &target),
}

Here, target is the target set in emit_to. When this is of the kind AnyLabel, the code will enter the second match, where it checks for t which is the listener target. It checks if t is of kind Window, Webview or WebviewWindow, none of which apply to AnyLabel by which it will return false when the listener is initialized without a specific kind.
If a kind has been specified for emit_to, it will go to the bottom line, and only match the same targets. Again, if the listener is initialized without a specific kind, and therefore gets the kind AnyLabel, it will not trigger the listener.
Reproduction
No response
Expected behavior
As far as I understand it, the expected behaviour would be to let AnyLabel serve as a "wildcard" for both emitTo and listen. So if any of the two are of the kind AnyLabel, any event with a label would be served between the two.
Full tauri info output
[✔] Environment
    - OS: Windows 10.0.22631 x86_64 (X64)
    ✔ WebView2: 130.0.2849.56
    ✔ MSVC: Visual Studio Community 2022
    ✔ rustc: 1.82.0 (f6e511eec 2024-10-15)
    ✔ cargo: 1.82.0 (8f40fc59f 2024-08-21)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-x86_64-pc-windows-msvc (default)
    - node: 20.15.1
    - yarn: 4.5.1
    - npm: 10.7.0
    - deno: deno 2.0.4

[-] Packages
    - tauri 🦀: 2.0.6
    - tauri-build 🦀: 2.0.2
    - wry 🦀: 0.46.3
    - tao 🦀: 0.30.5
    - @tauri-apps/api : 2.0.3
    - @tauri-apps/cli : 2.0.5

[-] Plugins
    - tauri-plugin-dialog 🦀: 2.0.3
    - @tauri-apps/plugin-dialog : 2.0.1
    - tauri-plugin-fs 🦀: 2.0.3
    - @tauri-apps/plugin-fs : 2.0.1
    - tauri-plugin-process 🦀: 2.0.1
    - @tauri-apps/plugin-process : 2.0.0
    - tauri-plugin-http 🦀: 2.0.3
    - @tauri-apps/plugin-http : 2.0.1

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../dist
    - devUrl: http://localhost:4321/
    - framework: Svelte
    - bundler: Rollup

Stack trace
No response
Additional context
I would be willing to work on a PR fixing this issue, but I would like to discuss the exact issue and expected behavior in depth before starting to change things in the event API.

@Mikkel-T thank you for the detailed bug and tracing, please feel free to open a PR.

I will definitely be doing so! But before I start, I would like to ensure that my implementation is going to align with the intended behaviour.
From my understanding, there are two main scenarios to consider:

Emitter emitting an event to an AnyLabel target
Listener listening to an AnyLabel target

There are currently four target kinds that support a label: Window, Webview, WebviewWindow and AnyLabel.
Expected behavior
For the first scenario, I expect that an event emitted to a target of kind AnyLabel should invoke listeners associated with any of the specified kinds. For example:
emitTo({kind: "AnyLabel", label: "main"}, "event", "payload");

// The following listeners should be invoked by this event:
listen("event", () => {}, {target: {kind: "Window", label: "main"}});
listen("event", () => {}, {target: {kind: "Webview", label: "main"}});
listen("event", () => {}, {target: {kind: "WebviewWindow", label: "main"}});
listen("event", () => {}, {target: {kind: "AnyLabel", label: "main"}});
listen("event", () => {}, {target: "main"}); // Default is AnyLabel

For the second scenario, I believe that a listener initialized with a target of kind AnyLabel should be invoked when receiving an event from any of the specified kinds:
listen("event", () => {}, {target: {kind: "AnyLabel", label: "main"}});

// The following events should invoke this listener:
emitTo({kind: "Window", label: "main"}, "event", "payload");
emitTo({kind: "Webview", label: "main"}, "event", "payload");
emitTo({kind: "WebviewWindow", label: "main"}, "event", "payload");
emitTo({kind: "AnyLabel", label: "main"}, "event", "payload");
emitTo("main", "event", "payload"); // Default is AnyLabel

Could you please confirm if my understanding is correct? I want to ensure that I’m on the right track before proceeding with a PR.


Add configuration option for changing the default web interface port

Hello,
I'm interested in running firezone on my home infrastructure, and I already have a reverse proxy set up for HTTP and HTTPS traffic, so my outbound port 443 is already tied up. I understand that port 443 can be changed in the nginx config included with firezone, but it would be very handy to include a configuration option to change this port easily.
Thanks!

Hi @millerjs2
You should be able to change this in the main configuration file. See this line:
default['firezone']['nginx']['ssl_port'] = 443

Closing this issue. Please open a new one if that doesn't work for you.
Thanks!


EPS and  Bitcoin Core version v0.19.1-satellite0.1.2

Hi,
Is the latest EPS tested with the blockstream modified version of Core v0.19.1 ?
I get the following message when I try to start the server:
INFO:2020-09-03 12:12:19,062: Starting Electrum Personal Server <IP_ADDRESS>
INFO:2020-09-03 12:12:19,062: Logging to /tmp/electrumpersonalserver.log
ERROR:2020-09-03 12:12:19,067: JsonRpcError({'code': -18, 'message': 'Requested wallet does not exist or is not loaded'},)
ERROR:2020-09-03 12:12:19,067: Wallet related RPC call failed, possibly the bitcoin node was compiled with the disable wallet flag
Right now I have the latest version node software for the satellite setup and EPS-<IP_ADDRESS>
Thanks.

Options used to compile:
with wallet   = yes
with gui / qt = yes
with bip70  = no
with qr     = yes
with zmq      = yes
with test     = yes
with prop   = no
with fuzz   = no
with bench    = yes
with upnp     = yes
use asm       = yes
sanitizers    =
debug enabled = no
gprof enabled = no
werror        = no
target os     = linux
build os      =
CC            = gcc
CFLAGS        = -g -O2
CPPFLAGS      =   -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2  -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS
CXX           = g++ -std=c++11
CXXFLAGS      =   -fstack-reuse=none -Wstack-protector -fstack-protector-all  -Wall -Wextra -Wformat -Wvla -Wswitch -Wformat-security -Wredundant-decls  -Wno-unused-parameter -Wno-implicit-fallthrough   -g -O2 -march=native
LDFLAGS       = -pthread  -Wl,-z,relro -Wl,-z,now -pie
ARFLAGS       = cr

The relevant error is Requested wallet does not exist or is not loaded
So check that the wallet file configured in the config.ini file is the same as the one configured in bitcoin.conf.
That error message about compiling without the wallet flag is wrong in this case, I'll change the message to something more helpful.

I left the config.ini  "wallet_filename ="  field blank and tried to startup, got a different message:
INFO:2020-09-03 20:03:01,189: Starting Electrum Personal Server <IP_ADDRESS>
INFO:2020-09-03 20:03:01,189: Logging to /tmp/electrumpersonalserver.log
ERROR:2020-09-03 20:03:01,196: ValueError("JsonRpcError({'code': -5, 'message': 'A function is needed within P2SH'},)",)
ERROR:2020-09-03 20:03:01,196: Descriptor related RPC call failed. Bitcoin Core 0.20.0 or higher required. Exiting..
Thanks.

You need Core version 0.20. Does blockstream's fork have a version of 0.20 ?
A possible alternative is to downgrade to the older version of EPS: https://github.com/chris-belcher/electrum-personal-server/releases/tag/eps-v0.2.0 But you miss out on some features doing this.

Unfortunately the blockstreams fork is still v0.19 https://github.com/Blockstream/bitcoinsatellite/releases
Cheers for the link.


Potential Issue with version 0.6.1's fix for M1 GPU compatibility.

snntorch version: 0.6.1
Python version: 3.10.9
Operating System: Windows 10 Pro
PyTorch version: 1.11.0

Description
The recent MPS compatibility fix in snntorch==0.6.1 seems to have issue which was traced back to snntorch/_neurons/neurons.py line 462. "Attribute error: _SpikeTensor has no attribute 'is_mps'. did you mean 'is_mlc'?" was raised during forward pass using model(data). Reverting back to snntorch==0.6.0 solved the issue. Maybe the documentation could be updated to set requirement for PyTorch>=1.13.0 or some dependency fix can be implemented for MPS at neuron.py line 462.
def _SpikeTorchConv(*args, input_):
    ...
    elif arg.is_mps:
              arg = arg.to("cpu")
    ...

What I Did
After constructing a spiking neural network such as the one in Tutorial 5, I ran a single iteration to test validity of the network:
spk_rec, mem_rec = net(data). Issue is reproducible by using  torch==1.11.0 instead of torch==1.13.1 on the exact google Colab notebook for tutorial 5.
Full traceback obtained using Tutorial 5 while using torch==1.11.0.
AttributeError                            Traceback (most recent call last)
[<ipython-input-17-7e073b45e7bb>](https://localhost:8080/#) in <module>
----> 1 spk_rec, mem_rec = net(data.view(batch_size, -1))
      2 print(mem_rec.size())

4 frames
[/usr/local/lib/python3.9/dist-packages/torch/nn/modules/module.py](https://localhost:8080/#) in _call_impl(self, *input, **kwargs)
   1108         if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
   1109                 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1110             return forward_call(*input, **kwargs)
   1111         # Do not call functions when jit is used
   1112         full_backward_hooks, non_full_backward_hooks = [], []

[<ipython-input-12-3a0d4c093035>](https://localhost:8080/#) in forward(self, x)
     22         for step in range(num_steps):
     23             cur1 = self.fc1(x)
---> 24             spk1, mem1 = self.lif1(cur1, mem1)
     25             cur2 = self.fc2(spk1)
     26             spk2, mem2 = self.lif2(cur2, mem2)

[/usr/local/lib/python3.9/dist-packages/torch/nn/modules/module.py](https://localhost:8080/#) in _call_impl(self, *input, **kwargs)
   1108         if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
   1109                 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1110             return forward_call(*input, **kwargs)
   1111         # Do not call functions when jit is used
   1112         full_backward_hooks, non_full_backward_hooks = [], []

[/usr/local/lib/python3.9/dist-packages/snntorch/_neurons/leaky.py](https://localhost:8080/#) in forward(self, input_, mem)
    154
    155         if hasattr(mem, "init_flag"):  # only triggered on first-pass
--> 156             mem = _SpikeTorchConv(mem, input_=input_)
    157         elif mem is False and hasattr(
    158             self.mem, "init_flag"

[/usr/local/lib/python3.9/dist-packages/snntorch/_neurons/neurons.py](https://localhost:8080/#) in _SpikeTorchConv(input_, *args)
    460         if arg.is_cuda:
    461             arg = arg.to("cpu")
--> 462         elif arg.is_mps:
    463             arg = arg.to("cpu")
    464         arg = torch.Tensor(arg)  # wash away the SpikeTensor class

AttributeError: '_SpikeTensor' object has no attribute 'is_mps'

This is a good catch - thanks!
Increasing the pytorch version requirement is a good idea, though might be painful to those stuck on old cuda versions.
One idea is to remove the if/elif statement and unconditionally put the tensor on CPU.
I'll also check for a few other places where mps might throw an error, and I'll make things backwards compatible.
Will comment here once I have a solution pushed!

Ran into the same issue.

Just made a patch and have pushed it to PyPi.
You won't need to update your PyTorch version for snntorch==0.6.2 onwards.
Thanks again for flagging this!

Cool! Thank you for the speedy patch!


"Client Cert" option Unavaliable

It appears that since this page was written, ui has changes. When attempting to
"Change the Gateway credentials to Client cert and select your certificate from the dropdown."
there is no option 'Client cert'. Thus i cannot setup mutual authentication.

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

ID: b9db9c9e-e856-8035-70f1-8c0b5608d55f
Version Independent ID: 3b800621-f33e-36b6-5ce9-a809dd227e52
Content: Secure back-end services using client certificate authentication - Azure API Management
Content Source: articles/api-management/api-management-howto-mutual-certificates.md
Service: api-management
GitHub Login: @mikebudzynski
Microsoft Alias: apimpm

Documentation

UI as seen in portal

I have tried changing the API Management to premium tier, and there is still no option available. I have also tried this on two different instances.
Al already have a client certificate added:

Hi @VladimirAkopyan - Thank you for your feedback! We will review and update as appropriate.

@VladimirAkopyan
To be able to select cert authentication to the backend services, you need to click on the pencil icon in the backend section - as shown in the documentation. Not on the API settings, which you have attached to the Issue.
If you're still having troubles, please open a support ticket.
#please-close

Apologies about this, found it now. The pencil was off the edge of my screen


Use closest instead of matches for event delegation

Description
The event delegation examples could encourage better practices and protect against a very common mistake in event delegation.
This PR changes the element being delegated from a span, which is not normally a clickable element, to a button, which is normally a clickable element and is naturally accessible.
This PR also changes how delegated targets are detected. Consider that the delegated target may contain child elements, such as a button containing an svg, span, or strong element. For example, target.matches('button') would fail to detect a button if an svg within that button was clicked, while target.closest('button') would correctly detect the button. And if the button did not contain children, then target.closest('button') would still correctly detect the button.
This project looks really fun. Thanks for creating it!
What does your PR belong to?

[x] Questions / Answers
[x] Website
[ ] General / Things regarding the repository (like CI Integration)

I think its Questions / Answers, but they’re seen on the website. (Perhaps CONTRIBUTING.md could be more clarifying about this.)
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[x] Enhancement (non-breaking improvement of a question)

This is safely an enhancement, but it might be a bug fix. You decide, because the existing span examples did not account for scenarios where a delegated span had children.
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] I have checked that the changes are working properly
[x] I have checked that there isn't any PR doing the same
[x] I have read the CONTRIBUTING document.

Thank you for the PR
Could you edit questions/event-delegation.md instead? (as the .json file is automatically generated)

@atomiks, oh that makes so much more sense. Commit amended. I was only avoiding the README.md and index.html files, and never even noticed this!

merged after reviewing and confirming. Great suggestion!


make colab notebooks runnable as tests

That will help us avoid breaking notebooks, especially once we have CI going!

I would like to take this on. It seems that it is possible to execute notebooks using the jupyter package. This would require adding jupyter as a requirement for testing, along with other packages that may be mentioned in the notebooks, e.g., mathplotlib. The test take about 10 seconds per notebook.

It seems that maml.ipynb has failed at least once due to timeout.


[BUG] Continuous SSL exceptions post upgrade from 2.11 to 2.15

Describe the bug
I had a working cluster free of errors, however post upgrade to 2.15 (also tested 2.16) I'm getting a ton of the following error on worker nodes:
[2024-08-12T16:48:40,662][ERROR][o.o.h.n.s.SecureNetty4HttpServerTransport] [opensearch-0] Exception during establishing a SSL connection: java.net.SocketException: Connection reset
java.net.SocketException: Connection reset
	at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) ~[?:?]
	at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) ~[?:?]
	at org.opensearch.transport.CopyBytesSocketChannel.readFromSocketChannel(CopyBytesSocketChannel.java:156) ~[transport-netty4-client-2.16.0.jar:2.16.0]
	at org.opensearch.transport.CopyBytesSocketChannel.doReadBytes(CopyBytesSocketChannel.java:141) ~[transport-netty4-client-2.16.0.jar:2.16.0]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) [netty-transport-4.1.111.Final.jar:4.1.111.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) [netty-transport-4.1.111.Final.jar:4.1.111.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689) [netty-transport-4.1.111.Final.jar:4.1.111.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652) [netty-transport-4.1.111.Final.jar:4.1.111.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.111.Final.jar:4.1.111.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) [netty-common-4.1.111.Final.jar:4.1.111.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.111.Final.jar:4.1.111.Final]
	at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]

This message is always identical and I cannot pinpoint it to a specific action performed by OpenSearch. The only thing that's also repeatedly logged is:
[INFO ][o.o.j.s.JobSweeper       ] [opensearch-0] Running full sweep

But I feel it's a long shot.
I did not see this problem on 2.11 and this only started appearing after upgrading. Has anyone else experienced this? Is there any direction you could recommend me to go other than verifying certificates (already done, none expired, CAs are there, as well as the keys etc). Is there perhaps a way to connect the SSL exception with a specific task that caused it? Was it communication from a specific node? From master node maybe? Was it in regards to snapshots or whatever?
Any help is highly appreciated!
Related component
Other
To Reproduce

Setup a working cluster on 2.11 with Security plugin
Upgrade the cluster to 2.15
Check worker node logs for SSL exceptions

Expected behavior
No SSL exceptions post upgrade
Additional Details
Plugins
Security plugin
Screenshots
If applicable, add screenshots to help explain your problem.
Host/Environment (please complete the following information):

Docker image based OpenSearch 2.15

Additional context
Add any other context about the problem here.

@blueish-eyez the problem with sslExceptionHandler shoudl be fixed in 2.18.0 but it may not get rid of the this exceptions in the logs, fe I could reproduce (by simulation) those on 2.11.0:
[2024-09-10T19:45:25,650][ERROR][o.o.s.s.h.n.SecuritySSLNettyHttpServerTransport] [21140679ffc1] Exception during establishing a SSL connection: java.net.SocketException: Connection reset
java.net.SocketException: Connection reset
        at sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394) ~[?:?]
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426) ~[?:?]
        at org.opensearch.transport.CopyBytesSocketChannel.readFromSocketChannel(CopyBytesSocketChannel.java:156) ~[transport-netty4-client-2.11.0.jar:2.11.0]
        at org.opensearch.transport.CopyBytesSocketChannel.doReadBytes(CopyBytesSocketChannel.java:141) ~[transport-netty4-client-2.11.0.jar:2.11.0]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) [netty-transport-4.1.100.Final.jar:4.1.100.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) [netty-transport-4.1.100.Final.jar:4.1.100.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689) [netty-transport-4.1.100.Final.jar:4.1.100.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652) [netty-transport-4.1.100.Final.jar:4.1.100.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.100.Final.jar:4.1.100.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.100.Final.jar:4.1.100.Final]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.100.Final.jar:4.1.100.Final]
        at java.lang.Thread.run(Thread.java:833) [?:?]

By any chance, did you (re)configure logging on your clusters? One notable difference between 2.11.x and 2.15.x is that transports are now in different package.

@reta thanks for the update. Logging is configured at info level and I believe this was the baseline. No specific packages have elevated / suppressed messaging (except for testing that suggested @zane-neo in the first response, that however did not show any relevant messages around SSL exceptions). For the time being I can set org.opensearch.http.netty4.ssl to FATAL until I can get the 2.18 image to test with

FYI: we see the same exceptions (currently running 2.17, didn't check when the exceptions were introduced in the logs).
A very simple way to reproduce - and how we noticed the exceptions in the first place: try the Nagios check_http plugin.
# /usr/lib/nagios/plugins/check_http -H opensearch-host01.int.lan --port=9200 --ssl --certificate=15
OK - Certificate 'opensearch-host01.int.lan' will expire on Sun 17 Nov 2024 06:05:05 AM GMT +0000.

Running the check will immediately trigger an exception. We didn't change anything in our monitoring and the check_http script wasn't updated for a long time either.

@rlueckl thanks, could you reproduce it with docker setup? I cannot, the log is clean:
$ docker run -it -p 9200:9200 -p 9600:9600 -e OPENSEARCH_INITIAL_ADMIN_PASSWORD=_ad0m#Ns_ -e "discovery.type=single-node"  opensearchproject/opensearch:2.17.1

$ /usr/local/nagios/libexec/check_http  -H localhost --port=9200 --ssl --certificate=15
SSL OK - Certificate 'node-0.example.com' will expire in 3410 days on 2034-02-17 12:03 -0500/EST.

Hi @reta,
which version of check_http are you using? I've tested the docker image on my workstation but could not reproduce the issue, but my Linux Mint has a slightly older version of check_http than the servers.
check_http 2.3.1 (workstation) -> docker 2.17.0 (workstation) -> no exception
check_http 2.3.1 (workstation) -> docker 2.17.1 (workstation) -> no exception
check_http 2.3.1 (workstation) -> deb install 2.17.0 (server) -> no exception
check_http 2.3.3 (server) -> deb install 2.17.0 (server) -> connection reset exception
check_http 2.3.3 (server) -> docker 2.17.x (workstation) -> can't test, firewall between the server and my workstation.
The last test would be interesting if you could test with check_http 2.3.3 and the docker image to see if there's an exception. Unfortunately I'm somewhat limited because of our company firewalls and can't test this case.

Hi @reta,
which version of check_http are you using?

Thanks @rlueckl
$ /usr/local/nagios/libexec/check_http  --version
check_http v2.4.11 (nagios-plugins 2.4.11)

I will try this configuration now, will update you shortly:

check_http 2.3.3 (server) -> deb install 2.17.0 (server) -> connection reset exception

Interesting. I can't reproduce the exception with 2.3.3 from my workstation, but running the check locally on the server I get the exception.
check_http 2.3.3 (server) -> deb install 2.17.0 (server) -> connection reset exception
check_http 2.3.3 (workstation) -> deb install 2.17.0 (server) -> no exception

I encountered the same error, and after checking, I found the following:

The error occurs sporadically 0 to 3 times per hour, but only on the master node.
The error happens regardless of the version (OpenSearch 2.13.0, 2.14.0, 2.16.0).
The error does not occur when the elasticsearch-exporter:v1.8.0 is stopped.

https://forum.opensearch.org/t/ssl-exception-connection-reset-error-on-master-nodes/22281/5


Prettier line width

:(

@TrySound ?

I usually split my screen in 2 and only ~100 may fit into it.


git remote or branch?

I am confused by your instructions in the git backup section:

you will have to make your notebook a git repository and set notebookbackup branch to the git remote you want to backup to

this statement seems to suggest we create a branch called notebookbackup
then:

$ git init
$ git remote add notebookbackup <GIT_REMOTE_URL>

this command will create a remote named notebookbackup -- do we create both a branch and a remote?  Is something missing (or assumed left to the reader), or is there a typo?
Thanks

Yes, it is supposed to be "remote" there. This is a typo. Thanks for pointing it out.


Update docs and website dir structure

Changes

Now has 'www' directory at root level for the website (was 'docs').
The 'docs' directory now only contains Markdown docs.
Docusarus config looks in '../docs' for the docs.

This is deployed with now.sh to https://next-auth-docs.now.sh
@LoriKarikari Have added the new provider docs you made to the nav menu!
@dvanoni Thanks for doing this and for the research into options, this looks like a great setup!
Appreciate being able to use next-auth-docs.now.sh, so thanks for that too. I've used Vercel + now.sh to deploy and works great.
I tried setting up a team, but yeah can see it will cost me per user too, and I don't think we need that, as nice as it would be, so just used my personal account for now.
PS: Happy to consider moving this repo to a GitHub org at some point if we want more flexibility around permissions.

Update: This worked fine locally, but links seem to not work fine deployed to https://next-auth-docs.now.sh now so I think I messed something up, going to investigate :-)
(I thought it just wasn't working on the preview for some other reason.)

I have had to move the docs folder back to www/docs.
Having it in a separate folder works fine locally, but with now.sh when you deploy a subdirectory it seems like it doesn't check out any other files outside that directory (that's a shame but I can live with that).
The docs are deployed just fine to https://next-auth-docs-igdjx6er7.now.sh
The next-auth-docs.now.sh domain is showing the old deployment (e.g. https://next-auth-docs.now.sh/getting-started doesn't work), I've checked the dashboard and the settings are right; I think that's an issue with Vercel. Maybe it will fix itself.
@ndom91 RE: next-auth.js.org - Just had a look I think we need to make the DNS for it point at alias.zeit.co to work with the way now.sh works. :-)

Ah yeah that makes sense. If we point it at alias.zeit.co we still have to setup 'next-auth.js.org' as a custom domain in the now.sh dashboard I think.
Otherwise, good stuff. Glad to see it working :)


Bug: [minio] _healthcheck calls for nested wait_container_is_ready resulting in long wait time

Describe the bug
MinioContainer._healthcheck is decorated with wait_container_is_ready and calls  get_exposed_port which is also decorated wait_container_is_ready. This results in a default wait time of 120*120=14400 seconds...
As a workaround I set the testcontainers_config.max_tries manually:
import pytest
from testcontainers.core.config import testcontainers_config

@pytest.fixture(scope="session", autouse=True)
def config_testcontatiners():
    testcontainers_config.max_tries = 10

if this workaround works, it means the container is coming up successfully but the healthcheck is reporting a false negative result. this means the healthcheck for minio is broken. can you confirm which os/arch/python/docker/tc you're using?
this script takes about 2 seconds to run on my mac:
python -m venv .venv && . .venv/bin/activate
pip install testcontainers[minio]

from testcontainers.minio import *

with MinioContainer() as m:
    client = Minio(
      f"localhost:{m.get_exposed_port(9000)}",
      access_key="minioadmin",
      secret_key="minioadmin",
      secure=False
    )

    client.make_bucket("abc")
    print(client.list_buckets())

run output
(.venv) $ time python script.py
using host tcp://<IP_ADDRESS>:57980
WARNING:root:DOCKER_AUTH_CONFIG is experimental, see testcontainers/testcontainers-python#566
using host tcp://<IP_ADDRESS>:57980
INFO:testcontainers.core.docker_client:using host tcp://<IP_ADDRESS>:57980
Pulling image testcontainers/ryuk:0.7.0
INFO:testcontainers.core.container:Pulling image testcontainers/ryuk:0.7.0
Container started: 22927a92f547
INFO:testcontainers.core.container:Container started: 22927a92f547
Waiting for container <Container: 22927a92f547> with image testcontainers/ryuk:0.7.0 to be ready ...
INFO:testcontainers.core.waiting_utils:Waiting for container <Container: 22927a92f547> with image testcontainers/ryuk:0.7.0 to be ready ...
Pulling image minio/minio:RELEASE.2022-12-02T19-19-22Z
INFO:testcontainers.core.container:Pulling image minio/minio:RELEASE.2022-12-02T19-19-22Z
Container started: 580c1203767b
INFO:testcontainers.core.container:Container started: 580c1203767b
Waiting for container <Container: 580c1203767b> with image minio/minio:RELEASE.2022-12-02T19-19-22Z to be ready ...
INFO:testcontainers.core.waiting_utils:Waiting for container <Container: 580c1203767b> with image minio/minio:RELEASE.2022-12-02T19-19-22Z to be ready ...
Waiting for container <Container: 580c1203767b> with image minio/minio:RELEASE.2022-12-02T19-19-22Z to be ready ...
INFO:testcontainers.core.waiting_utils:Waiting for container <Container: 580c1203767b> with image minio/minio:RELEASE.2022-12-02T19-19-22Z to be ready ...
Waiting for container <Container: 580c1203767b> with image minio/minio:RELEASE.2022-12-02T19-19-22Z to be ready ...
INFO:testcontainers.core.waiting_utils:Waiting for container <Container: 580c1203767b> with image minio/minio:RELEASE.2022-12-02T19-19-22Z to be ready ...
[Bucket('abc')]

real	0m1.855s
user	0m0.258s
sys	0m0.054s

the nested calls are fine - you do need to wait for all of that before getting mapped ports

but shouldn't the total timeout be 120 seconds? the nested calls should have awareness of how much time passed since the container was started.

that could be improved, i agree, but in general it doesn't introduce new errors


Multipack-Build fails randomly without error logs

I have a project using the multipack build to create both a python (+twisted) and node (only for compiling static js) but it randomly doesn't work. If I push I get this:
project|master ⇒ git push deploy
Counting objects: 128, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (118/118), done.
Writing objects: 100% (128/128), 428.56 KiB | 0 bytes/s, done.
Total 128 (delta 47), reused 10 (delta 1)
remote: Cloning into '/tmp/tmp.kFDIIMzXXz'...
remote: warning: You appear to have cloned an empty repository.
remote: done.
remote: HEAD is now at 64525a5... latest project core
remote: Cloning into 'project'...
remote: -----> Building project using buildstep...
remote: wait for image...
remote: 0
remote: -----> Installing ENV in build environment ...
remote: wait for image...
remote: 0
remote:        Fetching custom buildpack
To dokku@188.xx.203.xx:project
 ! [remote rejected] master -> master (shallow update not allowed)
error: failed to push some refs to 'dokku@188.xx.203.xx:project'

Apparently, logs don't show any errors in builds. So, How can I even figure out what is going on or why the project isn't building?
Additionally, here are my  .env:
export BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git#6e7909438

and my .buildpacks:
https://github.com/heroku/heroku-buildpack-python.git#v52
https://github.com/heroku/heroku-buildpack-nodejs.git#v60

You are using pretty old version with old buildpack :)
Try installing latest release.


fix: Removed superfluous "namespace" parameter.

The "/input-artifacts-by-uid/{uid}/{nodeId}/{artifactName}" endpoint does not accept a namespace parameter. Therefore, this parameter is making the swagger file invalid.
Fixes swagger.json file

Wrong approach. You must fix _.primary.swagger.json and then run make pre-commit -B.

Eventually superseded by #8886


Fix audio data in pagination of audio datasets

Currently pagination is only enabled for testing purposes on arabic_speech_corpus but times out because the "transform to list" step that writes the audio files to disk takes too much time.
Currently it writes both MP3 and WAV - but we should find which one is faster and only write this one.
This is not super high prio for now though, since there aren't a lot of audio dataset with pagination

keep open

keep open

So it's technically fixed but not enabled for all the datasets yet because most of them need to be converted to parquet (job failed because of OOM). Will re-run them once #1759 is deployed

Will re-run them once https://github.com/huggingface/datasets-server/pull/1759 is deployed

Done

Awesome ! Though after more digging I found that while the endpoint does work now, it's still too slow: 10sec to convert the audio data. We'll have to find a more clever way. For example I can simply not convert anything (if it's wav, keep it as wav - if it's mp3, keep it as mp3)

Done.