Trinity crash

What is wrong?
Trinity crashed, logs are unclear as to why it shutdown.
https://gist.githubusercontent.com/pipermerriam/f33802d8d8890af3c6c7a128e2745e75/raw/a272bab381ed7b2c8dc68573cc3ac53058ca4c8b/trinity-strange-crash.log
How can it be fixed
Still need to try and diagnose...

I don't have the answer, but this seems like the critical bit:
   DEBUG  08-31 17:48:55        peer  Malformed message from peer ETHPeer <Node(0xcd7c@<IP_ADDRESS>)>: CMD:BlockHeaders Error: MalformedMessage('Malformed %s message: %r',)
   DEBUG  08-31 17:48:55        peer  Disconnecting from remote peer; reason: bad_protocol
   DEBUG  08-31 17:48:55     service  Cancelling ETHPeer <Node(0xcd7c@<IP_ADDRESS>)>
   DEBUG  08-31 17:48:55     service  <ResponseCandidateStream(ETHPeer <Node(0xcd7c@<IP_ADDRESS>)>, <class 'trinity.protocol.eth.commands.BlockHeaders'>)> finished: Cancellation requested by ETHPeer:PeerPool:Server:MainnetFullNode token

That first debug log happens right before re-raising the exception. So I guess the exception is somehow bubbling all the way up to somewhere it shouldn't, and causing a shutdown. If we find where that catch-all exception is, we should definitely log at the exception level to get the full stack trace.

BTW, I see the message is not formatted correctly, I'll fix that in the next PR I'm working on.

This caught my attention
   DEBUG  08-31 17:48:55     service  Cancelling ETHPeer <Node(0xcd7c@<IP_ADDRESS>)>
   DEBUG  08-31 17:48:55     service  <ResponseCandidateStream(ETHPeer <Node(0xcd7c@<IP_ADDRESS>)>, <class 'trinity.protocol.eth.commands.BlockHeaders'>)> finished: Cancellation requested by ETHPeer:PeerPool:Server:MainnetFullNode token
    INFO  08-31 17:48:55   discovery  stopping discovery
   DEBUG  08-31 17:48:55     service  ETHPeer <Node(0x473b@<IP_ADDRESS>)> finished: Cancellation requested by Server:MainnetFullNode token

It's curious that the Server token gets triggered immediately after that peer's .cancel() method is called (which calls peer.cancel_token.trigger()). It suggests a bug in the cancelling of chained tokens, or maybe something is keeping a reference to the server's cancel_token instead of chaining it to create their own

@carver These two line indicate the exception has been caught in Peer._run(), which then calls .disconnect() and .cancel()

DEBUG  08-31 17:48:55        peer  Malformed message from peer ETHPeer <Node(0xcd7c@<IP_ADDRESS>)>: CMD:BlockHeaders Error: MalformedMessage('Malformed %s message: %r',)
DEBUG  08-31 17:48:55        peer  Disconnecting from remote peer; reason: bad_protocol

More logs: https://gist.githubusercontent.com/pipermerriam/f33802d8d8890af3c6c7a128e2745e75/raw/1a9019afccd98647c32bbe3f31e4599e69f8a6d3/trinity-discovery-crash.log
This validates @gsalgado thoughts here https://github.com/ethereum/py-evm/issues/1234#issuecomment-418193499
Specifically this section which indicates that the ResponseCandidateStream is part of the cancellation chain that causes the DiscoveryService to halt.
 83    DEBUG  09-03 15:45:26     service  <ResponseCandidateStream(ETHPeer <Node(0x97b6@<IP_ADDRESS>)>, <class 'trinity.protocol.eth.commands
    .BlockHeaders'>)> finished: Cancellation requested by ETHPeer:PeerPool:Server:MainnetFullNode token
 84    DEBUG  09-03 15:45:26     service  <p2p.discovery.DiscoveryService object at 0x7f1a719e6da0> finished: Cancellation requested by Respon
    seCandidateStream:ETHPeer:PeerPool:Server:MainnetFullNode token
 85     INFO  09-03 15:45:26   discovery  stopping discovery

The chain of tokens that caused the discover cancellation has the

Also, this might indicate that we need to do something to fix the cancel token chaining API because honestly, I've had trouble sometimes figuring out what the right order should be.  Maybe we need something like  token.create_child_token() rather than actually combining two tokens and thus, having to figure out the right ordering.

Not yet confirmed but this may have been a local error on my machine.  I had a version of asyncio-cancel-token installed from source locally which I'd been mucking around with a few weeks ago.  Running experiment now to see if it is fixed.

The log lines from https://github.com/ethereum/py-evm/issues/1234#issuecomment-418220374 indicate that the token was correctly chained by ResponseCandidateStream, but when it was triggered it ended up cancelling one of the parent tokens in the chain, which doesn't seem to happen (https://github.com/ethereum/asyncio-cancel-token/pull/9), so it's very possible this was all caused by your locally modified version of asyncio-cancel-token

One thing that is not right is for ResponseCandidateStreamExchangeManager to keep a direct reference to the cancel token passed onto it (https://github.com/ethereum/py-evm/blob/master/trinity/protocol/common/managers.py#L200), as that means it will always cancel its parent when terminating but that is a decision that belongs to the parent.

ExchangeManager isn't a service, it keeps the cancel token so that it can hand the token to the ResponseCandidateStream on init. It doesn't otherwise use _cancel_token.

Closing until I can reproduce with a fresh virtual environment.

I am pretty sure that I'm now seeing this in the v0.1.0-alpha.15 release running on one of our VPS instances.  Should know for sure pretty soon.

I've confirmed this bug is not isolated to my machine.  Encountered during light sync in a VPS node, I expect I'll see it in full sync too.

More info:
Looks like DiscoveryProtocol retains a direct link to the Server cancel token
https://github.com/ethereum/py-evm/blob/v0.2.0-alpha.32/trinity/server.py#L150-L151
https://github.com/ethereum/py-evm/blob/v0.2.0-alpha.32/p2p/discovery.py#L145
Which is then triggered when the DiscoveryService cleans up, calling proto.stop() which triggers the token
https://github.com/ethereum/py-evm/blob/v0.2.0-alpha.32/p2p/discovery.py#L819-L820
https://github.com/ethereum/py-evm/blob/v0.2.0-alpha.32/p2p/discovery.py#L397-L399

I can reproduce it when running in light mode.
As for the fact that DiscoveryProtocol retains a direct link to the Server cancel token, it is indeed something that ought to be fixed, but that token is only triggered when DiscoveryProtocol.stop() is called, and we still don't know why DiscoveryService is terminating

check out my branch piper/weird-crash-thing for some additional logging output that I've injected to try and diagnose this.  I still haven't been able to see the crash with that logging enabled.

For anyone trying to reproduce it does appear that running in light mode is more likely to trigger this.

GOT IT!!!!!
   DEBUG  09-04 18:00:00     service  STACKTRACE:
Traceback (most recent call last):
  File "/home/piper/projects/py-evm/p2p/service.py", line 126, in run
    await self._run()
  File "/home/piper/projects/py-evm/p2p/discovery.py", line 780, in _run
    await self.maybe_connect_to_more_peers()
  File "/home/piper/projects/py-evm/p2p/discovery.py", line 800, in maybe_connect_to_more_peers
    self.proto.get_nodes_to_connect(self.peer_pool.max_peers))
  File "/home/piper/projects/py-evm/p2p/peer.py", line 838, in connect_to_nodes
    await self.start_peer(peer)
  File "/home/piper/projects/py-evm/p2p/peer.py", line 742, in start_peer
    await self.ensure_same_side_on_dao_fork(peer)
  File "/home/piper/projects/py-evm/p2p/peer.py", line 864, in ensure_same_side_on_dao_fork
    timeout=CHAIN_SPLIT_CHECK_TIMEOUT,
  File "/home/piper/projects/py-evm/trinity/protocol/les/exchanges.py", line 62, in __call__
    timeout,
  File "/home/piper/projects/py-evm/trinity/protocol/common/exchanges.py", line 83, in get_result
    timeout,
  File "/home/piper/projects/py-evm/trinity/protocol/common/managers.py", line 233, in get_result
    async for payload in stream.payload_candidates(request, tracker, timeout=timeout):
  File "/home/piper/projects/py-evm/trinity/protocol/common/managers.py", line 104, in payload_candidates
    yield await self._get_payload(timeout_remaining)
  File "/home/piper/projects/py-evm/trinity/protocol/common/managers.py", line 151, in _get_payload
    payload = await self.wait(future, timeout=timeout)
  File "/home/piper/projects/py-evm/p2p/cancellable.py", line 19, in wait
    return await self.wait_first(awaitable, token=token, timeout=timeout)
  File "/home/piper/projects/py-evm/p2p/cancellable.py", line 41, in wait_first
    return await token_chain.cancellable_wait(*awaitables, timeout=timeout)
  File "/home/piper/python-environments/evm/lib/python3.6/site-packages/cancel_token/token.py", line 150, in cancellable_wait
    "Cancellation requested by {} token".format(self.triggered_token)
cancel_token.exceptions.OperationCancelled: Cancellation requested by ResponseCandidateStream:LESPeer:PeerPool:LightServer:MainnetLightNode token

OperationCancelled escaping during the Dao fork check which the discovery service interpreted as an upstream cancellation.
I think we need some sort of guard that ensures that we only silence that exception if the triggering token is in the inheritance chain of the service's local cancel token.

Seems very reasonable for OperationCancelled to contain a reference to the token that triggered it, and then:
except OperationCancelled as exc:
  if self.cancel_token.is_child_of(exc.token):
    pass
  else:
    raise

Also, I guess even swallowed OperationCancelled exceptions could log at the trace level, which I'm assuming you had turned on.

We should be sure to do a thorough audit of everywhere that we catch OperationCancelled while fixing this.

@gsalgado good thoughts and I believe I agree with that approach.  Unfortunately, it may be closer to the end of this week before I can really spend much time on this.  I'm closing #1255.  If anyone else wants to take a stab at this :+1:

I'm thinking that we should do something like this:
class Peer:
    ready = asynio.Event()  # but not as a class variabe :)
    def _run(self):
        # do dao check
        self.ensure_same_side_of_dao()
        self.ready.set()

class PeerPool:
    def stat_peer(self, peer):
        self.run_child_service(peer)
        await peer.ready.wait()
        # do the rest of adding peer to pool
        # also: handle failure case however that works.

This should properly start the peer, do the dao check, and keep the peer away from the subscriber API until the dao check has been fully completed.

I'll have a go at this, but I'm not sure what you suggest above is the best alternative, for a few reasons:

It feels wrong to run the Peer service and after that wait for it to be ready, but maybe that's just a naming issue
We're waiting on a Peer attribute, which happens to be just an asyncio.Event now, but if it's changed into something that can raise OperationCancelled, we'll have the same problem as we have now
It doesn't consider the fact that the messages received during the DAO fork check need to be collected, but maybe you meant to keep the with peer.collect_sub_proto_messages() as buffer: there?

Anyway, I'll have to think about this a bit more, just thought it was worth mentioning those points

Ideally we should never have to do something like await other_service.method()

It makes sense how that would solve the problem.
Off-hand, it seems like a pretty tight constraint, and probably a surprising one for most people. It sounds like a beast of a task to go through the whole code base and check if we're doing that anywhere else.
If you squint, I think the constraint implies that a BaseService subclass should never have any async functions that are public (ie~ not prefixed with _). Maybe that's slightly easier to check for.

@gsalgado my suggestion was merely dumping my thoughts.  Take this whatever direction you think is right :+1:

If you squint, I think the constraint implies that a BaseService subclass should never have any async functions that are public (ie~ not prefixed with _). Maybe that's slightly easier to check for.

Indeed it would, but it just occurred to me that the await other_service.method() pattern is actually not a problem in itself if it runs in the background (e.g. via BaseService.run_task() & co). It's only code that runs inside a BaseService._run() that has to avoid that pattern.

Alright, new cleaned up version of my fix: https://github.com/ethereum/py-evm/pull/1265


Checkpoint weights

Hi,
Great work and thanks for sharing your code!
Just wondering, do you have plans to release the checkpoints weights of the models you already trained so that we can directly do inference on them?
Thanks!

Waiting for the checkpoints updates

Hi,
Great work and thanks for sharing your code! Just wondering, do you have plans to release the checkpoints weights of the models you already trained so that we can directly do inference on them?
Thanks!

Hello, I have some questions about this project. May I discuss them with you?

Hi,
Great work and thanks for sharing your code! Just wondering, do you have plans to release the checkpoints weights of the models you already trained so that we can directly do inference on them?
Thanks!

Hello, man!
Do you know how he generates subtitles for videos? I didn't find any information about this part in his code. Have you found it yet?
I hope to receive your answer, thank you!

Waiting for the checkpoints updates

Hello, man!
Do you know how he generates subtitles for videos? I didn't find any information about this part in his code. Have you found it yet?
I hope to receive your answer, thank you!


In vim keybinding, ^ and I is not correct

It depends where the cursor is on the line.
Example (^ is the cursor):
  some indented text
^

Pressing ^ or I now will move to the first non-blank character of the line, which is the same as in Vim:
  some indented text
  ^

Repeating it again will move to the first character of the line:
  some indented text
^

Source: http://vimdoc.sourceforge.net/htmldoc/motion.html#^
Is this a bug in Ace, or Zed?

It's a bug in ACE, can you report it there?

I'll close this then, thanks.

This bug was fixed in the new version of Ace, can we update it in Zed?

hmm, I see you've already updated it, https://github.com/zedapp/zed/commit/94a15f6bb3d6d6309c6f7874cbc7fbf0aec306b1, I'll check if it works.

yup, all is well, I'll just use the locally built version until a new one hits the chrome webstore. Thanks!


Different handling of EcmaScript version specific features in JS and TS code

🐞 Bug report
Command (mark with an x)

[ ] new
[x] build
[ ] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] extract-i18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?

I don't know.
Description
I have a problem with Logical OR assignments:
When I use a Logical OR assignment in a TypeScript file and compile it with Angular Cli it is converted from a ||= b to a || (a = b) up to ES2020. With ES2021 it stays unchanged.
If such a Logical OR assignment is used in a JS lib (in my case pdfjs-dist) it is converted until ES5, but from ES6/ES2015 on it stays unchanged.
ES5

ES2015

The browserlist setting seem's to have no impact.
🔬 Minimal Reproduction
Create a plain Angular project, install a lib that contains a logical or assignment like pdfjs-dist, play around with the target property in tsconfig.json.

🔥 Exception or Error
Generated TS and JS code differs in usage of EcmaScript features. We detected it, because we have used an older Chrome version (83) for testing, which suddenly failed, because the ||= was unkown.
🌍 Your Environment

Angular CLI: 13.3.5
Node: 16.14.2
Package Manager: npm 8.6.0
OS: win32 x64

Angular: 13.3.7
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1303.5
@angular-devkit/build-angular   13.3.5
@angular-devkit/core            13.3.5
@angular-devkit/schematics      13.3.5
@angular/cli                    13.3.5
@schematics/angular             13.3.5
rxjs                            7.5.5
typescript                      4.6.4

Anything else relevant?

Javascript code is only down levelled when targeting ES5. I think while this is confusing and probably should be changed for consistence.
It's important to point out that Chrome 83 is not a supposed browser. See https://angular.io/guide/browser-support

Javascript code is only down levelled when targeting ES5.

Is this documented somewhere?

I think while this is confusing and probably should be changed for consistence.

Yes, I think so, because for me it's a bug that JS and TS behave differently.

It's important to point out that Chrome 83 is not a supposed browser.

I know :) Just wanted to explain, how we detected it.

We discussed this during our yesterday's meeting and we agreed that this is inconsistent and there is no standard for library authors to ship their library in different ES versions.
Therefore, we will be downlevelling libraries based on the list of supported browsers which is configured in the browserslist configuration. The TypeScript target option itself will not effect how the libraries get downlevelled.


.dev domains not accessible in latest Chrome

Hi,
One day to another, .dev domains stopped working in my Google Chrome. Instead of directing the request to pow, the page is requested from the web, which results in a useless DNS error page from my DSL provider.
Accessing the apps in Firefox still works as expected, so I believe that some recent changes in Chrome, maybe related to #386 could be causing this issue. Could anyone give some help in debugging this issue?
Chrome 27.0.1453.116
Current pow release installed and updated with powder.

...and got it again on osx Version 40.0.2214.94 (64-bit) ...disabling "Built-in Asynchronous DNS" doesnt work, chrome-- ...i will start web developing in headless mode

Just add a slash behind your url. http://myproject.dev/ <-- Note that last slash. Done.

Google removed the link to toggle "Built-in Asynchronous DNS" in chrome://flags/
Any other solution?

Using dnsmasq helped [fix] (https://github.com/ysbaddaden/prax/wiki/Alternate-setup#dnsmasq) the problem.

None of the above solutions works in Chrome 63.
Is there any solution?

Solution: switch from .dev to .test: https://github.com/basecamp/pow/blob/master/MANUAL.md#configuring-top-level-domains

"Built-in Asynchronous DNS" no longer works.
I don't want to switch to .test
How to disable this forcing of .dev and .foo?

Seems, that it is impossible to change .dev to something in dnsmasq by default


Activate Mail Rules preferences

Mail Rules are a good way to organize your mail box.  For reasons unknown, the Mail Rules preference was removed (disabled) from the source.  This commit activates it back!
Fixes #157

for reference, this is when it was commented out:
https://github.com/nylas-mail-lives/nylas-mail/commit/c519288b424e6246dde8440b47efec267f926d02#diff-aa8bb0f6adeca880eb0385556ec9e612
also, this proposed PR would enable mail rules for everyone. is this something we want to do @dweremeichik?

I saw that too.  The comment doesn't state why it was disabled but then thread-snooze was disabled along too.  Honestly, given that I get a lot of email notifications that I have to keep a record of, Mail rules help me in filing them appropriately.  Also, if there are no rules set, it doesn't do anything.

Hmm, I don't seem to remember mail rules in N1. Perhaps I never used them. @nirmit, do they seem to be working fine for you? Also @seesemichaelj if it doesn't do anything when there are no rules, I see no problem with turning it on.

Well, we can certainly give it a try.


Project's Kanban board

Issue to ask for a review of this project's Kanban board

Hi @notlfish,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.
Invalid Kanban Review Request
You have submitted a review request that doesn't have any information on how many members are in your team
Your Kanban Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Sorry about that. This team consists of 4 members:

Andrés Castañeda @afcastaneda223
Opeyemi Oyelesi @AdedayoOpeyemi
Rodrigo Ibaceta @RokoVarano
Lucas Ferrari Soto @notlfish

Hi Team!
Good job so far!
There are some issues that you still need to work on to go to the next project but you are almost there!
Required Changes ♻

[ ] Sorry this wasn't mentioned by the previous CR, but please provide a screenshot of the current state of your Kanban board (this is important as you will need it for the final evaluation)
[ ] Make sure every card has points assigned in the title ([Xpt] prefix.). That number should indicate the number of points that show how complex the task is. 1 point = 1 hour of work.
[ ] After that, please make sure that each of you doesn't have significantly more or fewer points than the rest (difference >= 5 points)

Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

In the last comment is the requested screenshots, and @afcastaneda223 and @RokoVarano finished with the time estimations and tasks distributions.

Hi team,
In my opinion, your project is ready for the presentation!  There is nothing else to say other than... it's time to merge it :shipit:
Good luck! 🎉
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.


fix(engine): clone Template for tpl

See https://github.com/helm/helm/issues/8002
What this PR does / why we need it:
This PR makes tpl function more performant. Using Template.Clone method, tpl works in isolation from "real" templates and avoids excessive and expensive Parse calls.
Special notes for your reviewer:
The new unit test makes sure that tpl function can be nested and has access to defines in partials.
If applicable:

[ ] this PR contains documentation
[X] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

Hi @diafour. Before we can look at the code, we need you to sign off on the DCO. More information can be found in the failing github check. Thanks!

Can you give any indication of what the performance gain is?

@technosophos we have a chart that relies on tpl. There are 30 files in templates folder and about 15 files that can be tpled depending on values. The difference in performance for this chart is huge:
$ time helm template . -f values.yaml 2>/dev/null 1>/dev/null
  153,41s user 45,19s system 166% cpu 1:59,24 total
$ time helm-new template . -f values.yaml 2>/dev/null 1>/dev/null
 5,98s user 0,41s system 162% cpu 3,934 total

I think I can create a separate repo with a minimal working example from that chart if needed.

Fix defines in tpl, add this case to the unit test.

Squashed and rebased on master.

Hello, @technosophos. Related issue #8002 becomes stale. Any thoughts regarding the fate of this PR?

Hi,
Anything new regarding this PR ? we are relaying on tpl for some use cases, having massive performance issues, any performance gain would be appreciated.

Hello, any news in terms of accepting and releasing this PR? As stated above by others, the performance of tpl is currently causing many performance problems with enterprise grade charts. The PR looks pretty optimistic and is waiting for a longer time on any move from the reviewers team. We definitelly need this fix to be applied.

Hi, is there any outstanding topics that need to be resolved where we, the community, could help to keep this PR moving forward into a release? We're facing the same performance issues and this fix reduces the duration of our helm template runs from over 20s to less than 500ms while producing the exact same output, verified with sha256sum.

No sign off. There's a new PR that solves this and that contributor found flaws in this PR. I believe this PR has been abandoned.
Closing in favor of #11456

@joejulian I don't think it is abandoned. We are still willing to contribute. I think this particular PR suffers with lack of feedback from maintainers, and this is frustrating.


Add row indicies to profile reports

Useful to get a size, or to discuss numbers with people.

The profile library I use can sort for me, after which I've got no way of showing indicies. Not worth doing for now, but if it does want doing, it wants to be a request for the upstream jquery.dgtable.


Installed CSS-size but it's not working

npm install css-size --save went successful
css-size --help
zsh: command not found: css-size

Node version - v6.10.0

@jitendravyas I have this in my ~/.bash_profile which adds local node binaries to your $PATH automatically, rather than using a global install:
export PATH=$PATH:./node_modules/.bin

Does this help?

I use ZSH

Works for zsh too. There's a module you can install that runs this task: https://www.npmjs.com/package/add-local-binaries-to-path

Installed this tool but problem is still there

this helped as u suggested export PATH=$PATH:./node_modules/.bin


Copy sentence button

Hi, absolutely love your work on this. I added it to my hobby dictionary project as an external search link ( https://github.com/sp3ctum/hare )
Any chance you could add a button to copy the sentence text to the clipboard? I make all of my cards on mobile and copying the text is a bit difficult due to Samsung having thought it's a great idea to have a curved screen.
Kinda silly but it would help me out a lot. Thanks for your consideration!

Alternatively, an option would be to enable the use of some API so l could (with your permission of course) fetch the results in my application.
Just tried it out though and at least the web ui doesn't allow it:

In case you're interested, l noticed you are also using react. Here is my implementation of the copy button:
https://github.com/sp3ctum/hare/blob/master/sakura/src/views/export/ExportView.js#L20
perhaps it can serve as inspiration or something :-)

Thanks for the suggestion. I will look into adding a copy button when I have more time (so I'll leave this issue open), but for now I have at least added the CORS header so that you can get search results in JSON. Just add &fmt=json to the search URL. For example:

Awesome, thanks!
I'm pretty busy rn but will probably have time to implement something in my app early next year.
I guess this issue can stay open if you are still open about the copy sentence button idea. Otherwise I am very happy with a public api!


docs: add ibmcloud cli info

Signed-off-by: Christy Norman<EMAIL_ADDRESS>

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: clnperez
To complete the pull request process, please assign prajyot-parab
You can assign the PR to them by writing /assign @prajyot-parab in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/assign @prajyot-parab

This link is helpful because it shows the cli install link, the plugin install command, and the cloud login command. So let's definitely include this in the doc.

n/m. this is in the README and i was looking in the wrong place. closing.


QueryAutocompletePlaces not properly checked

When I check a key it says that QueryAutocompletePlaces is vulnerable, but when I open the PoC URL I get
{
   "error_message" : "API keys with referer restrictions cannot be used with this API.",
   "predictions" : [],
   "status" : "REQUEST_DENIED"
}

This indicates that the keyis not vulnerable, I assume the check is not working properly (I might be wrong though). I can't share the API key I used, so not sure how to reproduce.
Also: thanks for this tool btw, love it! Really simple and easy to use! :)

Hey @dcts , thanks for the issue!
Yeah... this is a False Positive and a known issue. This response it's great as I can use the status field of the response JSON to create a Fix.
Thanks for using gap!

Non vulnerable API key:

# Not vulnerable
$ go run main.go -api "AIzaSy[REDACTED]GE" -poc
[i] Performing checks using AIzaSy[REDACTED]GE
[+] Not vulnerable to QueryAutocompletePlaces

Vulnerable API key:

# Vulnerable
$ go run main.go -api "AIzaSy[REDACTED]iw" -poc
[i] Performing checks using AIzaSy[REDACTED]iw
[-] Vulnerable to QueryAutocompletePlaces
[!] PoC URL: https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza+near%20par&key=AIzaSy[REDACTED]iw


shared_structured_volume cannot render "ushort"

Hi All
I recently noticed that my ospray renderer fails to render all "ushort" volumes using shared_structured_volume. However it looks fine if I simply switch to block_bricked_volume with all the other code unchanged.
You can find the code here
Can anyone do a double check and see if it is actually a bug ?
Best
Qi

Hi Qi,
Ingo and Jeff found and fixed the bug (51f54a90d2b38397904d4b262f236199417d7fa7); could you please verify?
Thanks,
Johannes

Hi Johannes
I confirm that the bug is fixed. Thank you.
Qi


Add remote machine table remote interface

Added a remote interface to allow other mods to create machine levels, such that the mod can then add the required entry to the table for the automatic leveling of the machine.
The interface will also expand the required_items_for_level table if required, in case an external mod is presenting more than 100 levels of a machine.

Very cool! I did now know this is possible!


Feature/more extensive dataset schema

Changed the dataset data schema to reflect the metadata spreadsheet (https://docs.google.com/spreadsheets/d/1n2DdSmzyljvTFzQzTLMAmuo3IVNx8yposdPLItBta68/edit?usp=sharing)
Renamed DatasetDescription to OrmDataset. This is our dataset representation in the db.
Renamed schema.Dataset to schema.AIoDDataset. This is the representation that's communicated to the user, and from the converters.
The two representations are different from eachother, leading to code duplication. But this makes it possible to change the database schema (e.g. save the licenses in a separate table). Does anyone know a better solution for this?
I left some TODOs in the code, linked to github issues. TODO(issue 8) is for instance linked to https://github.com/aiondemand/AIOD-rest-api/issues/8.

I also get the following warning when running pytest:
======================================================================================================================================================================= warnings summary ========================================================================================================================================================================
src/tests/connectors/huggingface/test_huggingface_dataset_connector.py::test_fetch_all_happy_path
  /usr/local/lib/python3.11/site-packages/huggingface_hub/utils/_deprecation.py:229: FutureWarning: 'list_datasets' currently returns a list of objects but is planned to be a generator starting from version 0.14 in order to implement pagination. Please avoid to use `list_datasets(...).__getitem__` or explicitly convert the output to a list first with `list(iter(list_datasets)(...))`.
    warnings.warn(self._deprecation_msg.format(attr_name=attr_name), FutureWarning)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html```

We can ignore this warning. We're only using the datasets in a loop, so we can already handle it being a generator.


failed assertion on Ctrl-Q

on HEAD is now at 6e211ba... deliver messages from the server (rather than failing) -- e.g. on initial connection to jabber.systemli.org
This assertion just failed after pressing ctrl-q.
Ctrl-q worked previously in the same session, so for some reason there's some inconsistency in the state.
let active state =
  match Buddy.find_buddy state.users (Xjid.t_to_bare state.active_contact) with
  | None -> assert false
  | Some x -> x

Not sure what's going on there exactly.

hmm... might be that there was a notification for a@b/foo, who logged out and a@b/foo2 logged in? thus, ctrl-q tried to jump to /foo, but couldn't find them... need to guard the notification list from that (foo can be removed if foo2 comes online because they are similar (a hack needed for libpurple))..

also regressions of #74 occur again -- solution will be to have  `Bare active, and use active_session for the session... then if active session changes from last communication (similar to warn if msg received from a different session than where to send to), warn the user...  `Full should only be active if expanded and a concrete resource is selected..

should be solved within https://github.com/hannesm/jackline/compare/d46bc09bee...432ee1e299


Improve setting rounds

Expected behaviour: nice way to control setting the amount of roungs
Actual behaviour: annoying way to type because clicking on the command sends it without possibility to write the amount of the rounds

We got an additional report that the interface is not intuitive and currently not documented at all.


[3.x] Backport new pause modes

Non-compatibility-breaking backport of #46191
The PR just adds 2 new pause modes:
PAUSE_MODE_STOP_ALWAYS -> same as PROCESS_MODE_DISABLED in 4.0
PAUSE_MODE_PROCESS_PAUSED -> same as PROCESS_MODE_WHEN_PAUSED in 4.0
Everything else is the same.
I tested with AnimationPlayer and the new pause modes work as expected, even when inherited.

Ok, as it turns out, the fact that it worked for AnimationPlayer was a coincidence. Some nodes seem to just use can_process(), so for them this will work. But some nodes rely on NOTIFICATION_PAUSED and NOTIFICATION_UNPAUSED. The original PR sends the notification after pause mode changes. I could backport that too, but it slightly breaks compatibility I guess 🤔 Not sure if that's acceptable.

So it sounds like this isn't working properly yet? Is it still worth attempting for 3.6 or should we shelve it?

I think it should work correctly after #58577 is merged.

This would be a great feature to have. Any update on this?

Well, #58577 was merged, so this might be functional now, but I didn't test. I'm not really interested in this feature anymore, so feel free to take over.


Dexを作る。

[ ] Request form
[ ] Fix title
[ ] Ask in Slack
[ ] JIRA issued
[ ] Prepare with the organizer
[ ] Setting the goal
[ ] Slides
[ ] Movies preparation
[ ] The day!
[ ] PDF release in SlideShare
[ ] Publish the movie
[ ] Subtitle to the movide
[ ] Publish the blog

Details of request

参考：https://www.youtube.com/watch?v=U3fTTqHy7F4


Errors don't show in the Problems panel when warnings are hidden

Does this issue occur when all extensions are disabled?: No

VS Code Version: 1.68.1
OS Version: Windows 10 64-bit

Steps to Reproduce:

Edit a Rust project using the rust-analyzer extension.
In the Problems filter, uncheck the "Show Warnings" checkbox.
Edit the code to have one or more errors.
The Problems panel will show "No results found with provided filter criteria." even though there are clearly errors. I don't think this is a rust-analyzer bug because VS Code knows about the errors. It shows in the status bar that there are 3 errors and highlights them in the text editor, but doesn't show them in the Problems panel (even though it shows the correct total number there). The VS Code UI is showing inconsistent info. If I just hide and show the Problems panel, then the errors do show (until I make an edit). Also, if I check "Show Warnings", then the panel shows the errors along with the warnings. I have tested with every extension disabled except for the rust-analyzer extension.

The described behavior is how it is expected to work. If you disagree, please explain what is expected and what is not in more detail. See also our issue reporting guidelines.
Happy Coding!

This filter is a view-only filter in Problems view.

What do you mean by saying it's a view-only filter? That the filter just changes what is shown in the Problems panel? As you can see in the screenshot, I have Show Errors checked in the Problems view, and it still isn't showing errors from the current file.

Ah I see. I am sorry that I thought warnings are not shown. Reopening it. If you are able to reproduce it could you please provide me with the sample project and repro steps so that I can reproduce and investigate the issue. Thank you!

Here is how I can reproduce it. I don't want you to have to install the Rust compiler and its Cargo package manager, but I don't know how else to reproduce it.

Install Rust nightly. You can do this by downloading rustup from https://rustup.rs and running it (rustup is the installer/updater for Rust tools). When you install rustup, it will have several options. You can leave them all default except you need to customize the installation and choose nightly (instead of stable or beta) because my project requires it. Let me know if you have any questions about installing it.
Install the rust-analyzer extension from the Marketplace. It should automatically download the rust-analyzer LSP binary for your platform.
Clone this project: git clone https://gitlab.com/jminer/librsyncr.git
Check out the vscode-error-bug branch.
In the Problems view, uncheck "Show Warnings" but leave "Show Errors" checked.
Open the folder in VS Code and by default, rust-analyzer should run cargo check every time a file is saved in the project (cargo check runs the compiler frontend just to get errors and warnings). The vscode-error-bug branch has 1 error and 3 warnings. It may take a few seconds for cargo to download the dependencies and run the compiler, but then the status bar should show 1 error and 3 warnings.

After these steps, I would expect the Problems view to always show the 1 error, but it doesn't always. There seems to be a race condition, because it sometimes works and sometimes doesn't. If it doesn't show for you, try saving the file (to get rust-analyzer to rerun cargo check). With this project and branch, my desktop computer will almost 100% of the time reproduce the bug. A laptop I have will reproduce the bug maybe 30% of the times I save. Whether it works also depends on what diagnostics the compiler outputs, but the diagnostics should be constant with the fixed project/branch.
If you can't reproduce it, I may try to compile VS Code and figure out where the bug is myself because it happens to me every day. Thank you!

Hey @sandy081, this issue might need further attention.
@jminer, you can help us out by closing this issue if the problem no longer exists, or adding more information.

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!

Is the information I provided before not enough? I've still been seeing this bug occur.


Adjust docs for Sphinx v6

Sphinx 6.0.0 was released on 2022-12-29; since then, the CI step "Test documentation build using Sphinx" has failed, e.g. here, with:
writing output... [  5%] api

Exception occurred:
  File "/opt/hostedtoolcache/Python/3.11.1/x64/lib/python3.11/site-packages/pydata_sphinx_theme/bootstrap_html_translator.py", line 27, in visit_table
    self.generate_targets_for_table(node)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'BootstrapHTML5Translator' object has no attribute 'generate_targets_for_table'

Investigate and adjust.

On closer inspection this appears to be pydata/pydata-sphinx-theme#1098.

pydata-sphinx-theme is required via sphinx-book-theme. The latter package has been adjusted to exclude Sphinx 6 (executablebooks/sphinx-book-theme#644) but this has not yet been released. Until that happens, sdmx1 will need to mirror that exclusion → #113


Added hotkey and controller to re-open end of round scoreboard

About the PR
We added a new functionality to re-open the end of round scoreboard with a hotkey if you accidentally close it and want to review it.
Huge thanks to SlamBamActionman for helping me finish this up, figure out a couple bugs, and polish it to a PR-ready state.
Why / Balance
I have seen this asked for so many times it's unreal. Why not
Technical details
Added a new controller, modified a few files to make it play nice and cooperate.
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes
Shouldn't break anything, nothing was removed or modified that was being used.
Changelog
🆑

tweak: You can now Re-open the end of round summary window with F9.

changelog missing 🆑 and - before tweak

Fixed!

Failed integration test appears to be unrelated to the PR, based on running the tests successfully locally

there are not enough synonyms of the word "fuck yeah" to express just how much i want to scream "fuck yeah" just now

Third time was the charm


Adds testing for ruby 2.x

In reference to #28

It looks like this gem is no longer 1.x compatible, do you guys plan on continuing to support that?  I'm happy to continue to modify the travis.yml and update the docs to suggest using 2.x.


Moved 'kid' field from payload to header of JWT

Per Grant, the 'kid' field should be in the header and not in the payload.  The JWTs created by 'brkt make-jwt' already put the 'kid' in the header.

Testing:

Ran unit tests.
Ran "make-user-data --jwt <data output by 'brkt make-jwt'>"

Jira: YETI-1088

👍  Thanks for fixing this!


Old site collection names also included the year of publication, need to update templates

AssertionError: [*] Error in collection, old: Comedies, Tragicomedies, With other Poems (1651), new: Comedies, Tragicomedies, With other Poems

Maybe I'm misunderstanding this, but the old site did not include year of publication as part of the title of collections.
see
http://deep.sas.upenn.edu/viewrecord.php?deep_id=5146
(Probably I've misunderstood what you're saying here, but just in case...)


Cognitive: Common Language Types

Design story around common language types for Cognitive.  (Would this apply to other services outside Cognitive?)
Consider different ISO standards, and look at CultureInfo type in System.Globalization.
Text Analytics uses https://en.wikipedia.org/wiki/ISO_639-1
https://tools.ietf.org/html/rfc5646
https://en.wikipedia.org/wiki/IETF_language_tag
https://docs.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo?view=netframework-4.8

@mayurid

See discussion in Teams thread: https://teams.microsoft.com/l/message/19:d6ff4003f5c848a2a2d6dcdfc0ebd497@thread.skype/1583178108611?tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47&groupId=3e17dcb0-4257-4a30-b843-77f47f1d4121&parentMessageId=1583178108611&teamName=Azure SDK&channelName=Service - Text Analytics&createdTime=1583178108611

We'll pass these as strings in our SDKs


[compile](simdjson reader) use __AVX2__ macro to decide whether use…

… simdjson to parse
Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


ERROR: Failed building wheel for pandas

running build_ext
building 'pandas._libs.algos' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pandas
Failed to build pandas
ERROR: Could not build wheels for pandas, which is required to install pyproject.toml-based projects
[notice] A new release of pip is available: 23.2.1 -> 23.3.1
[notice] To update, run: C:\Python312\python.exe -m pip install --upgrade pip

can you install https://visualstudio.microsoft.com/visual-cpp-build-tools/ and try again


Could not get unknown property 'ExtractJniAndHeadersTask' for project ':ReactAndroid' of type org.gradle.api.Project.

Description
I upgraded my RN app from 0.63.4 to 0.70.6, after fixing some issues, I got these two issues and found nothing to fix them.
1 -

A problem occurred evaluating project ':ReactAndroid'.
Could not get unknown property 'ExtractJniAndHeadersTask' for project ':ReactAndroid' of type org.gradle.api.Project.
Same as this one #35441

2 -

A problem occurred configuring project ':ReactAndroid'.
com.android.builder.errors.EvalIssueException: compileSdkVersion is not specified. Please add it to build.gradle

Version
0.70.6
Output of npx react-native info
warn Package appcenter contains invalid configuration: "dependency.platforms.ios.podspecPath" is not allowed. Please verify it's properly linked using "react-native config" command and contact the package maintainers about this.
warn Package appcenter-analytics contains invalid configuration: "dependency.platforms.ios.podspecPath" is not allowed. Please verify it's properly linked using "react-native config" command and contact the package maintainers about this.
warn Package appcenter-crashes contains invalid configuration: "dependency.platforms.ios.podspecPath" is not allowed. Please verify it's properly linked using "react-native config" command and contact the package maintainers about this.
warn Package native-base contains invalid configuration: "dependency.assets" is not allowed. Please verify it's properly linked using "react-native config" command and contact the package maintainers about this.
warn Package react-native-background-fetch contains invalid configuration: "dependency.assets" is not allowed. Please verify it's properly linked using "react-native config" command and contact the package maintainers about this.
warn Package react-native-background-geolocation contains invalid configuration: "dependency.platforms.ios.sharedLibraries" is not allowed,"dependency.assets" is not allowed,"dependency.hooks" is not allowed. Please verify it's properly linked using "react-native config" command and contact the package maintainers about this.
warn Package react-native-vector-icons contains invalid configuration: "dependency.assets" is not allowed. Please verify it's properly linked using "react-native config" command and contact the package maintainers about this.
info Fetching system and libraries information...
System:
OS: macOS 13.0.1
CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Memory: 68.17 MB / 16.00 GB
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 19.2.0 - ~/.nvm/versions/node/v19.2.0/bin/node
Yarn: 1.22.19 - /usr/local/bin/yarn
npm: 8.19.3 - ~/.nvm/versions/node/v19.2.0/bin/npm
Watchman: 2<IP_ADDRESS> - /usr/local/bin/watchman
Managers:
CocoaPods: 1.11.3 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.1, iOS 16.1, macOS 13.0, tvOS 16.1, watchOS 9.1
Android SDK: Not Found
IDEs:
Android Studio: 2021.3 AI-213.7172.25.2113.9123335
Xcode: 14.1/14B47b - /usr/bin/xcodebuild
Languages:
Java: 11.0.17 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: 18.1.0 => 18.1.0
react-native: 0.70.6 => 0.70.6
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Steps to reproduce
I used npx react-native upgrade
Snack, code example, screenshot, or link to a repository
android/build.gradle : https://pastebin.com/LifME16R
android/settings.gradle : https://pastebin.com/XphTqmGt
android/app/build.gradle : https://pastebin.com/5jLy6M8E
./gradlew build --stacktrace --debug --info : https://pastebin.com/RMDUsrd2

android/app/build.gradle : pastebin.com/5jLy6M8E

There are various problems in your android/app/build.gradle file.
Specifically in the dependencies{} block:
dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    //noinspection GradleDynamicVersion
    implementation project(":ReactAndroid")  // From node_modules
    def multidex_version = "2.0.1"
    implementation "androidx.multidex:multidex:$multidex_version"
    implementation 'com.google.firebase:firebase-analytics:17.3.0'
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"

    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
      exclude group:'com.facebook.fbjni'
    }

    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
        exclude group:'com.squareup.okhttp3', module:'okhttp'
    }

    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }

    if (enableHermes) {
        //noinspection GradleDynamicVersion
        implementation("com.facebook.react:hermes-engine:+") { // From node_modules
            exclude group:'com.facebook.fbjni'
        }
    } else {
        implementation jscFlavor
        configurations.all {
            resolutionStrategy.dependencySubstitution {
                substitute(module("com.facebook.react:react-native"))
                    .using(project(":ReactAndroid"))
                    .because("On New Architecture we're building React Native from source")
                substitute(module("com.facebook.react:hermes-engine"))
                    .using(project(":ReactAndroid:hermes-engine"))
                    .because("On New Architecture we're building Hermes from source")
            }
        }
    }
}

I would invite you to check the same file from the template:
https://github.com/facebook/react-native/blob/0.70-stable/template/android/app/build.gradle
and make sure you apply the same changes.


Pricing Operation - The request signature we calculated does not match the signature you provided.

Hi @lyubo-slavilov,
sorry for delay.
I tried to add this change (#6 ) but nothing new. The same error occurs.
The code used for the call is the following:
//Create SP API ProductPricing client and execute one ot its REST methds.
  $pricingClient = new DoubleBreak\Spapi\Api\ProductPricing($cred, $config);
  $result = $pricingClient->getPricing([
    'MarketplaceIds' => "APJ6JRA9NG5V4",
	'ItemType' => "Sku",
	'Skus' => ["5901721606210"]
  ])['payload'];

I'm trying to get price for SKU<PHONE_NUMBER>210 on Italy Marketplace.
Thank you

Your Skus parameter should be coma separated string instead of an array, I
think.
On Tue, Jan 19, 2021, 15:49 Cesare Lasorella<EMAIL_ADDRESS>wrote:

Hi @lyubo-slavilov https://github.com/lyubo-slavilov,
sorry for delay.
I tried to add this change (#6
https://github.com/double-break/spapi-php/issues/6 ) but nothing new.
The same error occurs.
The code used for the call is the following:
//Create SP API ProductPricing client and execute one ot its REST methds.
$pricingClient = new DoubleBreak\Spapi\Api\ProductPricing($cred, $config);
$result = $pricingClient->getPricing([
'MarketplaceIds' => "APJ6JRA9NG5V4",
'ItemType' => "Sku",
'Skus' => ["5901721606210"]
])['payload'];
I'm trying to get price for SKU<PHONE_NUMBER>210 on Italy Marketplace.
Thank you
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/double-break/spapi-php/issues/13, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEGJUPWKCIPVMI2J36ILVDS2WEWLANCNFSM4WIZS5JQ
.

Your Skus parameter should be coma separated string instead of an array, I
think.
On Tue, Jan 19, 2021, 15:49 Cesare Lasorella<EMAIL_ADDRESS>wrote:

Hi @lyubo-slavilov https://github.com/lyubo-slavilov,
sorry for delay.
I tried to add this change (#6
https://github.com/double-break/spapi-php/issues/6 ) but nothing new.
The same error occurs.
The code used for the call is the following:
//Create SP API ProductPricing client and execute one ot its REST methds.
$pricingClient = new DoubleBreak\Spapi\Api\ProductPricing($cred, $config);
$result = $pricingClient->getPricing([
'MarketplaceIds' => "APJ6JRA9NG5V4",
'ItemType' => "Sku",
'Skus' => ["5901721606210"]
])['payload'];
I'm trying to get price for SKU<PHONE_NUMBER>210 on Italy Marketplace.
Thank you
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/double-break/spapi-php/issues/13, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEGJUPWKCIPVMI2J36ILVDS2WEWLANCNFSM4WIZS5JQ
.

May be something like:
Something like:
$pricingClient = new DoubleBreak\Spapi\Api\ProductPricing($cred, $config);
  $result = $pricingClient->getPricing([
    'MarketplaceIds' => "APJ6JRA9NG5V4",
	'ItemType' => "Sku",
	'Skus' => "5901721606210"
  ])['payload'];

If you need more than one Sku:
$pricingClient = new DoubleBreak\Spapi\Api\ProductPricing($cred, $config);
 $result = $pricingClient->getPricing([
   'MarketplaceIds' => "APJ6JRA9NG5V4",
   'ItemType' => "Sku",
   'Skus' => "5901721606210,0126061271059,.."
 ])['payload'];

May be something like:
Something like:
$pricingClient = new DoubleBreak\Spapi\Api\ProductPricing($cred, $config);
  $result = $pricingClient->getPricing([
    'MarketplaceIds' => "APJ6JRA9NG5V4",
	'ItemType' => "Sku",
	'Skus' => "5901721606210"
  ])['payload'];

If you need more than one Sku:
$pricingClient = new DoubleBreak\Spapi\Api\ProductPricing($cred, $config);
 $result = $pricingClient->getPricing([
   'MarketplaceIds' => "APJ6JRA9NG5V4",
   'ItemType' => "Sku",
   'Skus' => "5901721606210,0126061271059,.."
 ])['payload'];

Thank you @lyubo-slavilov, changing Skus as you suggest seems something change because the error is now different:
403 Forbidden response: { "errors": [ { "message": "Access to requested resource is denied.", "code": "Unauthorized", "det (truncated...)
About credentials and configurations I followed the official guide
I have a doubt; do you know if selling-partner api works fine on Italy MP? I think to read somewhere that at moment this service works only in the US MP.

Thank you @lyubo-slavilov, changing Skus as you suggest seems something change because the error is now different:
403 Forbidden response: { "errors": [ { "message": "Access to requested resource is denied.", "code": "Unauthorized", "det (truncated...)
About credentials and configurations I followed the official guide
I have a doubt; do you know if selling-partner api works fine on Italy MP? I think to read somewhere that at moment this service works only in the US MP.

@cesarelasorella Hello,

I have a doubt; do you know if selling-partner api works fine on Italy MP? I think to read somewhere that at moment this service works only in the US MP

Unfortunately I am far from being Amazon SP API expert. I just was able to figure out how to stratify their request signing routine. So, I cant really tell. I am personally having access troubles with some other endpoints for DE market... So, we are all waiting for AMZ support to reply, I guess.
I am going to close the issue since it is not related to the code itself 😔

@cesarelasorella Hello,

I have a doubt; do you know if selling-partner api works fine on Italy MP? I think to read somewhere that at moment this service works only in the US MP

Unfortunately I am far from being Amazon SP API expert. I just was able to figure out how to stratify their request signing routine. So, I cant really tell. I am personally having access troubles with some other endpoints for DE market... So, we are all waiting for AMZ support to reply, I guess.
I am going to close the issue since it is not related to the code itself 😔


Loading issue fixes (hopefully)

I'm hoping this will solve some of the loading race issues we’ve been seeing in Honeybadger.
It updates Rails (and a few other deps) to the latest patch releases, and sets up app/interactors to be eager loaded.

          1 Warning

:warning:
Please provide a linked tracker story for this PR in the description

  Generated by :no_entry_sign: danger

🤘


In Microsoft Edge Print Screen is not recognized as Separate Window Handle.

Till MS Edge Version 116, Print screen was recognized as separate Window Handles. After the browser was updated to 117 and higher, print screen is no longer recognized as separate window handle and thereby preventing the user to switch to the print window to handle the controls like Print, Cancel or access the print content. But the same scenario is working in chrome version 116 and above. Is this a bug in msedge driver?

Bumping this issue. I have a number of automations that rely on this behavior of a designated window handle for that Print Preview dialog which are inoperable right now as a result of this change. Would appreciate some word on whether or not this is a deliberate change before exploring other options.

I''m facing the same problem and reported an issue dir that here a while ago :(
https://github.com/MicrosoftEdge/EdgeWebDriver/issues/115

Duplicate of #115


ocamlPackages.asn1-combinators: 0.2.3 → 0.2.4

Motivation for this change
OCaml 4.12 support
cc @vbgl
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build jackline dune-release

May you please set useDune2 = true? This will make it easier to later update cstruct.

@GrahamcOfBorg build dune-release jackline ocamlPackages.ocsigen-start ocamlPackages.prof_spacetime

Result of nixpkgs-review pr 103015 run on x86_64-darwin 1

1 package built:

jackline


Feature Request: Support reversed kind and apiVersions

Sometimes I run into kind and apiVersion specified in the opposite order
The fix is to add the reversed one in Map.yaml i.e.

deprecatedAPI: "kind: Deployment\napiVersion: extensions/v1beta1"
newAPI: "apiVersion: apps/v1\nkind: Deployment"
deprecatedInVersion: "1.9"
removedInVersion: "1.16"

It would be cool if this was supported automatically.
Thanks for the great work on this plugin!

@Teller-Ulam Thanks for raising this.
This is the reason that I pushed #14. Users seem to be finding different formats to the release manifests. As in your case, in different order. Others with comments on the line etc.
The usage of the configuration file (map file) enables users to add search/replace patterns on the fly. To help with this there is an OOTB map file provided which I will try and keep updated with deprecated and removed APIs. It will cover a set pattern and cases but cannot possibly cover all cases. This is why it is configurable on the fly so that users can make changes as need be.
I hope this helps answer your question.

Thank you, that makes sense. I'll close this one.


docs: Add Running BDD tests in detached mode

part of # 739
Signed-off-by: Baha Shaaban<EMAIL_ADDRESS>

duplicate documentation similar to https://github.com/hyperledger/aries-framework-go/blob/master/docs/test/bdd_tests.md#demonstration.

duplicate documentation similar to https://github.com/hyperledger/aries-framework-go/blob/master/docs/test/bdd_tests.md#demonstration.

This documentation focuses on running tests in detached mode (regardless of the demo scenarios), while demonstration describes the demo scenarios included in the integration tests. Both are useful to the reader.

duplicate documentation similar to https://github.com/hyperledger/aries-framework-go/blob/master/docs/test/bdd_tests.md#demonstration.

This documentation focuses on running tests in detached mode (regardless of the demo scenarios), while demonstration describes the demo scenarios included in the integration tests. Both are useful to the reader.

new file deleted .. and moved doc to add_tests.md


YouTube Inline Video Support

A common request from users is the ability to subscribe to YouTube RSS feeds and view YouTube videos within NetNewsWire. Since NetNewsWire is designed for reading articles instead of viewing videos, we haven't felt that adding this capability is worth the extensive effort of parsing the Media RSS tags and adding them to the Articles database.
I think we can add YouTube capabilities without having to change anything in the Articles database by adding the concept of a FeedTransformer and updating some core classes to support it. This concept isn't a complete solution to #2538, but will at least work for YouTube (and other video services).
FeedTransformer
This protocol would need to be implemented by any RSS feeds that we would like to massage prior to pushing them into the Articles database. Its purpose is to help the FeedFinder find unusual URL's and help the LocalAccountRefresher transform unusual article structures into something that fits in the Articles database.
protocol FeedTransformer {

    /// Determines if this FeedTransformer is to be used for the given Feed URL
    func owner(url: URL) -> Bool

    /// Changes the URL using special rules to help find it
    func correct(url: URL) -> URL

    /// Transform the feed into something we would rather use
    func transform(parsedFeed: ParsedFeed) -> ParsedFeed

}

FeedTransformerManager
This is a class used to retrieve all the current transformers in use.
class FeedTransformerManager {
   public static let transformers: [FeedTransformer]
}

FeedFinder changes
In FeedFinder.find we would need to get all the transformers and check to see if any of them are a owner. If so, we would need to correct the URL that we are searching for.
LocalAccountRefresher changes
Prior to calling account.update we should check all the transformers to see if any of them are an owner. If so we would need to transform the ParsedFeed using FeedTransformer.transform.
RSParser Changes for Media RSS tags
We would need to update the ParsedItem struct to have the optional structures necessary to hold the Media RSS elements. We would also need to enhance RSAtomParser to populate the new ParsedItem structs from the feed.
YouTubeFeedTransformer.owner
If the URL starts with https://www.youtube.com/watch?v= we want to return true.
YouTubeFeedTransformer.correct
We need to be able to construct URL of the YouTube RSS feed. See this article for more info on how to do this. https://eggfreckles.net/notes/youtube-rss
YouTubeFeedTransformer.transform
Each of the ParsedItems in the given ParsedFeed needs to be transformed. We should take the media:group property and use it to populate the contentHTML with the correct HTML. This should be the same embed code that websites use to embed YouTube videos. I think transforming the Media RSS tags and discarding them is perfectly fine since we would never use them in database queries.
This example of YouTube embed code will probably have to be tweaked to work better with NetNewsWire:
<iframe width="560" height="315" src="https://www.youtube.com/embed/585RFqVK8Dc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

We should keep in mind that other video services like Vimeo could use this transform code and make it reusable. In fact, if the YouTube implementation works, we already have 90% of the Vimeo implementation done and might as well go ahead and implement it.
Summary
I think this is a fairly straight forward implementation and not much work with the exception of the RSParser changes. Even that isn't too complicated as long as you understand a little Obj-C and how a SAX parser works.
Comments and critiques are welcome.

Though I’ve wanted NetNewsWire to be a reading app as much as possible, I’ve come to understand that there will be no end of requests for better YouTube support.
To my surprise, I myself have wanted better YouTube support. I started watching videos about making music (Rick Beato, Adam Neely, etc.) and it sure would be nice to be able to watch those in the app.
So, yes, let’s add better YouTube support.
On this specific proposal — it seems like FeedTransformer is doing two things: helping find feeds and transforming article content.
My initial thought is that these functions should be unbundled. We can have feed-finder-helpers and article-content-enrichers as separate things (since support for hypothetical website X might need only one of those things).
Feel free to convince me that the two functions really should be bundled into one, though — I could easily be wrong.
Another thought: if we separate out article-enrichers from feed-finder-helpers, that means we can put article-enrichers in our RSParser code rather than in the app, which means other developers could more easily benefit from them.

I think separating the two functions does make sense and is a better design. We would just need to make the owner function common between the two, which isn't hard with a protocol extension.
If we put the article-enrichers in RSParser, we would probably want a way to make them optional and configurable by the user of FeedParser in case they didn't want to use the article-enricher. That is kind of tricky because the parse functions are static.
I guess we could put a static variable on AtomParser that you would set with the article-enrichers that you want to use. I'm just not fond of global static variables.
Maybe a better option is to put the article-enricher code in RSParser and leave it up to the implementer to execute the article-enricher in the client code after calling FeedParser.parse. That way other consumers of RSParser have the code, but it is up to them to decide if they want to use it or not.
Another hiccup is that we would need the owner function logic in RSParser to see if the article-enricher should be applied to a specific article based on the URL of the Feed.


[BugFix] Revert "[Enhancement] avoid duplicated local shuffle (#15271)"

This reverts commit d4a9eee7de0b1d094df3470dea74a64eb4bb5bb0.
What type of PR is this：

[ ] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto backported to target branch

[ ] 2.5
[ ] 2.4
[ ] 2.3
[ ] 2.2

run starrocks_be_unittest


Don't angular.copy config

Highcharts is configured via the so-called populated config, which is derived from the original config using angular.copy. I would suggest not using angular.copy, and maybe skipping using populatedConfig altogether, as it sounds like unnecessary overkill. Not using angular.copy also allows doing a getHighCharts() on the original config from wherever you provided it, and have access to the entire highcharts object to tweak things beyond config, and potentially bypass bugs..

A feature from highcharts-ng, see also second bullet in this FAQ: https://github.com/pablojim/highcharts-ng#faq


Rectangle selector colors

The selector should look like the native one with 1px grey border and darker blue.

This issue was closed as per #74


UI: Need highlighting for Navigator/Driver

With the current styling, it's very difficult to see who the current navigator/driver are. The bolding of their names isn't enough. Could we get a different background coloring for those rows?
(We don't use the Overview as we want to see who's coming up after the current driver.)

Sure, I can do that, but if you did want to use the overview, you could set your roles to Navigator,Driver,Next, too.


Crashes weechat

I finally got around to trying out wee-slack today (versus the irc bridge).  When I was connected, everything was great, but after a few minutes, weechat would crash (not while I was doing any particular thing).
As part of this experiment, I also upgraded weechat to the dev version (and tacked on a few extra compile options from last time), but I've been on irc for an hour or two now without any crashes, so my suspicions are on wee-slack.
I've got crash logs from weechat, but they seem to be mainly a dump of all my config options.  What's the best way for me to get debug information to you?

+1 this is definitely wee-slack. I use weechat exclusively for IRC and never once had it crash. And same here, the backtrace dumped is completely useless.

I've finally upgraded to the 1.1 release. No problems so far. I'm happy to help debug.
When it crashes, does weechat output a stack trace?

I've talked with the weechat devs, and there is a bug in 1.1 that may cause crashes when buffers of the same name are created. Do you have any existing buffers (including server buffers) that have the same name as ones created by wee-slack?

I did, yes.

A fix is in weechat-dev, and will be in weechat 1.1.1. Does changing the buffer name mitigate the problem for you?

Uh, it's not super trivial with the large number of buffers I have, but I'll try again once they push a new weechat-dev package to their PPA. Running the 01/13/2015 build right now.

@rawdigits Are you referring to https://github.com/weechat/weechat/commit/9749b65f7e67bbee55e8708e571f5cff79b1bdbe ?

I am, but that appears to only affect IRC buffers. Unfortunately, I'm not able to reproduce a crash yet. The above issue was affecting a friend that uses wee-slack, so I thought it might be related.
I'll chat with the devs about getting useful info from a crash dump. Would you be willing to create a (temporary) fresh .weechat directory with only wee-slack? I'd like to determine if this is a wee-slack interacting with something else issue or an issue that can be reproduced w/o other elements.

I can try it out later.

fixed here: https://github.com/rawdigits/wee-slack/commit/976b7e14c8398d04df1ea7d9e7ff213d9afb8abb
on a reload of the script, the buffers are closed by weechat, which triggers a message to slack to close the buffers. i wasn't handling this properly. this became a race condition which would result in a segfault because data is being written to a buffer that isn't there.

Sorry I wasn't being responsive.  Thanks to @mattrobenolt for stepping in with some repro help, and of course @rawdigits for fixing a bug. :)
I updated and was using wee-slack yesterday without too many problems, but today it's being pretty finicky.  I'm on f04f94c81c2664b61ae755e6567ac60c82393910.
Here's the full text of weechat's output:
[$]> weechat

*** Very bad! WeeChat is crashing (SIGSEGV received)
*** Full crash dump was saved to
/Users/pearson/.weechat/weechat_crash_20150212_65540.log file.
***
*** Please help WeeChat developers to fix this bug:
***   1. If you have a core file, please run:  gdb /path/to/weechat core
***      then issue command: "bt full" and send result to developers
***      (see user's guide for more info about report of crashes).
***   2. Otherwise send backtrace (below), only if it is a complete trace.
***      Keep the crash log file, just in case developers ask you some info
***      (be careful, private info like passwords may be in this file).

======= WeeChat backtrace =======
(written by WeeChat 1.1.1, compiled on Feb  2 2015 10:22:54)
======= End of  backtrace =======
zsh: abort      TERM=xterm-256color weechat

Let me poke around a little more and see if I can get you any more information.

I disabled my other plugins and it seems good so far (it's only been a few minutes, but I figured it was worthwhile information).  For reference, those plugins were:

perl: isgd.pl
python: colorize_nicks.py, vimode.py

hmmm, i don't use any of the above. my first guess is colorize_nicks, since i mess with the nicklist a lot. can you do some process-of-elimination so i can focus on the right one?

It turned out to be a false positive - I got a crash a bit later on.  I figured out how to get gdb working on OS X, though, and ran weechat through there for a while until I got another crash (still with other plugins disabled).  Here's the bt:
Program received signal SIGSEGV, Segmentation fault.
0x00007fff9827d152 in strlen () from /usr/lib/system/libsystem_c.dylib
(gdb) bt
#0  0x00007fff9827d152 in strlen () from /usr/lib/system/libsystem_c.dylib
#1  0x00000001000244a5 in gui_nicklist_send_signal ()
#2  0x000000010002559a in gui_nicklist_nick_set ()
#3  0x0000000102ab7b63 in weechat_python_api_nicklist_nick_set ()
from /usr/local/Cellar/weechat/1.1.1/lib/weechat/plugins/python.so
#4  0x0000000102b567e6 in PyEval_EvalFrameEx () from
/usr/local/Frameworks/Python.framework/Versions/2.7/Python
#5  0x0000000102b5962e in fast_function () from
/usr/local/Frameworks/Python.framework/Versions/2.7/Python
#6  0x0000000102b56400 in PyEval_EvalFrameEx () from
/usr/local/Frameworks/Python.framework/Versions/2.7/Python
#7  0x0000000102b5962e in fast_function () from
/usr/local/Frameworks/Python.framework/Versions/2.7/Python
#8  0x0000000102b56400 in PyEval_EvalFrameEx () from
/usr/local/Frameworks/Python.framework/Versions/2.7/Python
#9  0x0000000102b52d7a in PyEval_EvalCodeEx () from
/usr/local/Frameworks/Python.framework/Versions/2.7/Python
#10 0x0000000102af71ae in function_call () from
/usr/local/Frameworks/Python.framework/Versions/2.7/Python
#11 0x0000000102ad90ea in PyObject_Call () from
/usr/local/Frameworks/Python.framework/Versions/2.7/Python
#12 0x0000000102ad927b in call_function_tail () from
/usr/local/Frameworks/Python.framework/Versions/2.7/Python
#13 0x0000000102ad9210 in PyObject_CallFunction () from
/usr/local/Frameworks/Python.framework/Versions/2.7/Python
#14 0x0000000102aa5c19 in weechat_python_exec () from
/usr/local/Cellar/weechat/1.1.1/lib/weechat/plugins/python.so
#15 0x0000000102aa80c5 in weechat_python_api_hook_fd_cb () from
/usr/local/Cellar/weechat/1.1.1/lib/weechat/plugins/python.so
#16 0x0000000100051da5 in hook_fd_exec ()
#17 0x000000010006de2d in gui_main_loop ()
#18 0x0000000100003297 in main ()
(gdb)

I don't know if this matters, but this one was fairly soon after I woke my computer up from a network-killing sleep - other applications sometimes have issues trying to read from sockets that have been closed by the OS.  To be clear, though, I got a crash earlier when this wasn't the case.
And the full backtrace, if that's more helpful:
#0  0x00007fff9827d152 in strlen () from /usr/lib/system/libsystem_c.dylib
No symbol table info available.
#1  0x00000001000244a5 in gui_nicklist_send_signal ()
No symbol table info available.
#2  0x000000010002559a in gui_nicklist_nick_set ()
No symbol table info available.
#3  0x0000000102ab7b63 in weechat_python_api_nicklist_nick_set ()
   from /usr/local/Cellar/weechat/1.1.1/lib/weechat/plugins/python.so
No symbol table info available.
#4  0x0000000102b567e6 in PyEval_EvalFrameEx () from /usr/local/Frameworks/Python.framework/Versions/2.7/Python
No symbol table info available.
#5  0x0000000102b5962e in fast_function () from /usr/local/Frameworks/Python.framework/Versions/2.7/Python
No symbol table info available.
#6  0x0000000102b56400 in PyEval_EvalFrameEx () from /usr/local/Frameworks/Python.framework/Versions/2.7/Python
No symbol table info available.
#7  0x0000000102b5962e in fast_function () from /usr/local/Frameworks/Python.framework/Versions/2.7/Python
No symbol table info available.
#8  0x0000000102b56400 in PyEval_EvalFrameEx () from /usr/local/Frameworks/Python.framework/Versions/2.7/Python
No symbol table info available.
#9  0x0000000102b52d7a in PyEval_EvalCodeEx () from /usr/local/Frameworks/Python.framework/Versions/2.7/Python
No symbol table info available.
#10 0x0000000102af71ae in function_call () from /usr/local/Frameworks/Python.framework/Versions/2.7/Python
No symbol table info available.
#11 0x0000000102ad90ea in PyObject_Call () from /usr/local/Frameworks/Python.framework/Versions/2.7/Python
No symbol table info available.
#12 0x0000000102ad927b in call_function_tail () from /usr/local/Frameworks/Python.framework/Versions/2.7/Python
No symbol table info available.
#13 0x0000000102ad9210 in PyObject_CallFunction () from /usr/local/Frameworks/Python.framework/Versions/2.7/Python
No symbol table info available.
#14 0x0000000102aa5c19 in weechat_python_exec () from /usr/local/Cellar/weechat/1.1.1/lib/weechat/plugins/python.so
No symbol table info available.
#15 0x0000000102aa80c5 in weechat_python_api_hook_fd_cb () from /usr/local/Cellar/weechat/1.1.1/lib/weechat/plugins/python.so
No symbol table info available.
#16 0x0000000100051da5 in hook_fd_exec ()
No symbol table info available.
#17 0x000000010006de2d in gui_main_loop ()
No symbol table info available.
#18 0x0000000100003297 in main ()
No symbol table info available.

I'll keep running in gdb to see if I can get another crash and see if it's at the same place.

Ok, it's now pretty consistently crashing in the first few minutes, with either that bt or the one below, which makes me think it has something to do with the particular set of data that's coming in.
Program received signal SIGSEGV, Segmentation fault.
0x000000010005f0ac in string_shared_free ()
(gdb) bt
#0  0x000000010005f0ac in string_shared_free ()
#1  0x0000000100025511 in gui_nicklist_nick_set ()
#2  0x00000001022b7b63 in weechat_python_api_nicklist_nick_set ()


failed to run example

First of all, the theatre/examples/dom-cra/src/index.js doesnt have a import app statement which render an error, I'm wondering if this example has been tested ever. And here is errors after correcting the issue:
Error: t.compound() expects an object, like: {x: 10}. null given.
sanitizeCompoundProps
src/propTypes/internals.ts:87
  84 | const sanitizedProps: IValidCompoundProps = {}
  85 | if (process.env.NODE_ENV !== 'production') {
  86 |   if (typeof props !== 'object' || !props) {
> 87 |     throw new InvalidArgumentError(
     | ^  88 |       `t.compound() expects an object, like: {x: 10}. ${userReadableTypeOfValue(
  89 |         props,
  90 |       )} given.`,
View compiled
compound
src/propTypes/index.ts:82
  79 | validateCommonOpts('t.compound(props, opts)', opts)
  80 | return {
  81 |   type: 'compound',
> 82 |   props: sanitizeCompoundProps(props),
     | ^  83 |   valueType: null as $IntentionalAny,
  84 |   [propTypeSymbol]: 'TheatrePropType',
  85 |   label: opts?.label,
View compiled
TheatreSheet.object
src/sheets/TheatreSheet.ts:121
  118 |
  119 |   return existingObject.publicApi as $IntentionalAny
  120 | } else {
> 121 |   const sanitizedConfig = compound(config)
      | ^  122 |   const object = internal.createObject(
  123 |     sanitizedPath,
  124 |     nativeObject,
View compiled
Box
src/App.js:14
  11 |
  12 | const Box = ({id, sheet, selectedObject}) => {
  13 |     // This is cheap to call and always returns the same value, so no need for useMemo()
> 14 |   const obj = sheet.object(id, null, boxObjectConfig)
  15 |
  16 |   const isSelected = selectedObject === obj
  17 |

Good catch. The non-typescript examples haven't been part of CI so they slip sometimes.


remove usability/clean_start in 4.x branch…

…functionality of which is now provided by base Jupyter.

Thanks. Hey, I can't press the merge button fast enough to follow you :-)

No problem :) Haha I've been saving them up!
On 8 Oct 2015 5:24 pm, "Juergen Hasch"<EMAIL_ADDRESS>wrote:

Thanks. Hey, I can't press the merge button fast enough to follow you :-)
—
Reply to this email directly or view it on GitHub
https://github.com/ipython-contrib/IPython-notebook-extensions/pull/357#issuecomment-146602146
.


OOM crash on Chrome Android

Both the demo and benchmarks pages crash Chrome Android on Google Pixel 2 and Lenovo Moto G6 Plus. Works correctly on the Android SDK emulator and every other browser/platform combination, so it may be specific to ARM devices.
Filed a Chromium bug and indications are an OOM crash and excessive register allocation time in the WebAssembly compiler, possibly (presumably?) related.

The Chromium bug remains open, but I'm not able to reproduce the crash on Chrome 94. It is possible a fix was applied in Chrome or that building with an updated EMSDK no longer exposes the problem.


[BUG] panic when yaml file watchers are updated

Observed behavior
flagd sometimes (~50% of the time) panics and crashes whena .yaml file it's watching is updated (note this DOES NOT seem to impact JSON payloads/files, and also doesn't impact payloads delivered over the wire).
2024-03-08T18:52:11.374Z        warn    evaluator/json.go:432   flag definition does not conform to the schema; validation errors:  1:(root): Invalid type. Expected: object, given: null         {"component": "evaluator", "evaluator": "json"}
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x93641d]

goroutine 32 [running]:
github.com/open-feature/flagd/core/pkg/evaluator.validateDefaultVariants(0xc000638668?)
        /src/core/pkg/evaluator/json.go:452 +0x1d
github.com/open-feature/flagd/core/pkg/evaluator.(*JSON).configToFlags(0xc0002225e0, {0xc000639b78, 0x4}, 0xc00009a0b8)
        /src/core/pkg/evaluator/json.go:447 +0x251
github.com/open-feature/flagd/core/pkg/evaluator.(*JSON).SetState(0xc0002225e0, {{0xc000639b78, 0x4}, {0xc0001309c0, 0x16}, 0x0})
        /src/core/pkg/evaluator/json.go:110 +0x5b6
github.com/open-feature/flagd/core/pkg/runtime.(*Runtime).updateWithNotify(0xc00038b930, {{0xc000639b78, 0x4}, {0xc0001309c0, 0x16}, 0x0})
        /src/core/pkg/runtime/runtime.go:124 +0xed
github.com/open-feature/flagd/core/pkg/runtime.(*Runtime).Start.func1()
        /src/core/pkg/runtime/runtime.go:52 +0x12d
golang.org/x/sync/errgroup.(*Group).Go.func1()
        /go/pkg/mod/golang.org/x/sync@v0.5.0/errgroup/errgroup.go:75 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
        /go/pkg/mod/golang.org/x/sync@v0.5.0/errgroup/errgroup.go:72 +0x96

Expected Behavior
flagd never crashes when an watched-file is updated.
Steps to reproduce

start flagd watching the yaml file below (flagd start --uri file:./basic.yaml)
open the yaml file in an editor, and simple save it a few times (it's not even required to make changes, just trigger some fs events on the file)
observe the stack trace above a substantial portion of times

The fact this doesn't happen every time indicates to me there's some kind of race, perhaps relating to the YAML conversion?
# basic.yaml
---
# yaml-language-server: $schema=https://flagd.dev/schema/v0/flags.json
flags:
  hex-color:
    state: ENABLED
    defaultVariant: red
    variants:
      green: "0a0"
      yellow: "aa0"
      red: "a00"

Hi, I'm interested in this project. Is it possible for me to take part in investigating this issue?

Hi, I'm interested in this project. Is it possible for me to take part in investigating this issue?

yes, feel free to work on this issue :)

I am a new contributor. I am not able to reproduce the issue: (attached video)
https://github.com/open-feature/flagd/assets/17208401/fdca2d0a-4922-4727-bce7-d34634cde323

@sagacioussid02 interesting... I wonder if it has to do with the OS you are on? I'm able to reproduce this easily on Linux.
@dinhlockt02 I guess based on your PR, you did see this behavior? What OS are you on? What environment are you using?

Yes, Interesting problem. I've watch @sagacioussid02 video and realised that this depends on os and editor.
Fact: I'm using ubuntu 22.04. The problem only occurs when I use vscode. If I use other editor (like gedit), the empty string is no more
For vs code

For gedit

OK so this is a bit of an edge case, but still a valid fix, and there's probably other ways it can happen so this check is valid.


FR: Custom width for the window

Currently, the width of the "terminal" seems to be fixed at 80 characters. I wonder if it could be adjustable, so that I don't get extraneous wrapping.

Some notes-to-self:
The library version of term-transcript does support an arbitrary width, but the user seems to need to also specify the width of the SVG in other units, guessing at the width of each characters (which in practice seems to be 9 SVG units).

You're right in that the width in chars and the window width are two different parameters, related to each other. The relation is not quite straightforward; it depends on the font used and on the rendering engine. It's straightforward to add both width params to CLI (and maybe the height in lines as well); I'll do this in near future.

Thank you!


Add batch Auto OS Upgrade doc

We'll need to add a note that the feature is in preview. As an example, take a look at the Important message tag used on the no public ip doc: https://github.com/wehann/azure-docs/blob/main/articles/batch/batch-pool-no-public-ip-address.md?plain=1

@jafreck I noticed the npip feature was in preview on limited regions. Are we going to rollout auto os upgrade in part of the regions? If so, please let me know

We will roll it out to all regions, but only enable it by account feature flag, so customer has to submit feature request for it.


Database assetstore

The database assetstore supports Mongo and sqlalchemy SQL types (provided dependencies are installed).  For postgres, all non-volatile functions are allowed (as for db items).  Each file in the assetstore references a specific table or collection.  The download endpoint uses extraParameters to perform full selects on the database (with the same basic parameters as used by the item select endpoint).  Default values for sort, fields, filters, limit, and format can be specified, and these can be overridden in the query.
To support range-requests, we preload the response to calculate its length.  This is inefficient and a waste of memory.
The mongo database connector now caches field information.  Since it inspects the entire collection to determine available fields, this is an expensive operation.  This could still use improvement.
If _id is not explicitly included in a field list for Mongo, it is excluded, so as to only return the fields that were actually specified.
Tests are needed.

Our files do not have a known size (since it depends on the data in the database).  I've stored a 0 for the size value, but this has some weird effects: the UI shows a size of 0, where it really shouldn't show anything.  Range requests are ignored, as the cherrypy utility for calculating ranges is called with file['size'].  Ideally, the file['size'] would have a special value (None?) indicating that it is a dynamic, unknown size, but some changes to Girder core will be required for this.

Currently, the database assetstore references a specific database (as well as the connection information for the database).  One database assetstore can handle any number of tables, but you need a separate assetstore for each database.  Instead, if the assetstore is just the database connector, then the files can reference both the table AND the database, and one assetstore can reference all databases and tables on that connector.
This will change the import function to list all databases and all tables in all databases (which will take longer to query).  Databases will be added as folders, with the tables as currently done.  This will allow top-level containers (collections and users) to be the appropriate parent for import as well.

@manthey looks like a great addition. Let's touch base on it some more tomorrow.

@manthey, did you and @aashish24 get a chance to talk about this? Did any new ideas or potential pitfalls with the current approach come up?

We did.  Basically, I'll move the special item endpoints to be special file
endpoints that will allow querying and changing the individual parameters
stored in the files.
If the url for an assetstore includes the database, the behavior will be
the same as currently on this branch.  If you exclude the database in the
assetstore url, then the import will list all databases and tables.  If you
pick a collection or user to add the tables to, it will create a folder
with the name of the database.
On Mon, Jul 11, 2016 at 10:56 AM, Roni Choudhury<EMAIL_ADDRESS>wrote:

@manthey https://github.com/manthey, did you and @aashish24
https://github.com/aashish24 get a chance to talk about this? Did any
new ideas or potential pitfalls with the current approach come up?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/OpenGeoscience/girder_db_items/pull/8#issuecomment-231759625,
or mute the thread
https://github.com/notifications/unsubscribe/AIX_R3Cd8CTH9LTxJRYRNnNuPmjUB-T8ks5qUlmigaJpZM4JEomK
.

--
David Manthey
R&D Engineer
Kitware Inc.
(518) 881-4439

Sounds great!
I forgot to mention, but @jeffbaumes had mentioned another reason multiple assetstores for a single logical database would be necessary: if the different tables had different permissions on them, you would need separate assetstores, each instantiated with different credentials.
Thanks for this work, it's very cool :sunglasses:

Left to do for this branch:

[ ] Allow assetstores to not specify the database (and the import process to do so)
[ ] Hide usernames and passwords in the display of the assetstore information
[ ] Add more server tests (client tests will be a separate PR)

I realize this is still WIP, but in case it's useful, I'm getting this error from grunt (just tried it on a fresh girder installation):
Running "plugin:database_assetstore" (plugin) task
Verifying properties pluginDir, plugin.database_assetstore.tasks exist in config...ERROR
>> Unable to process task.
Warning: Required config property "plugin.database_assetstore.tasks" missing. Use --force to continue.

I've renamed the plugin to database_assetstore.  This means that you have to name the plugin directory in Girder to database_assetstore rather than girder_db_items, or it throws this error.  The plugin's Gruntfile.js could be changed to have both names in it, or I could make the grunt file figure out its local directory.

@ronichoudhury @aashish24 This PR is ready for review.  There are server tests for all of the code, except for some of the MongoDB connector and one edge case in the sqlalchemy connector (98% coverage of server code).  I'll add client tests next (in a separate PR, unless you feel it is necessary to approve this one or the review takes long enough).

Now working in Python 2.7 and 3.4.

It looks like the "plugin.database_assetstore.tasks" is missing problem has been fixed at this point. Thanks!

@manthey let's get it merged, I have some minor comments but we could talk about it when we meet next week.

Sorry for the delay, I'm QAing this branch now.

that's great @zachmullen thanks.

I've pushed a commit that should address your comments up to this point.

LGTM


Readme: Getting Started Section

The Getting Started section of the README contains a link to an example which has moved or no longer exists: https://github.com/google/jaxonnxruntime/blob/main/examples/imagenet/imagenet_main.py.

The only example I could find was in docs/examples, and it was extremely minimal. More (and more complex) examples would be helpful.


Nested Material app breaks flutter web url in navigation

Steps to Reproduce

Create a named route between two different widgets
Run in flutter web, navigation should work perfectly at this step
Create a nested material route inside the widget of the navigation
Now suddenly the child material app overrides the parent material url in the browser

Created this repository to see the bug
https://github.com/ivofernandes/routes
Expected results:
As the child material app does not have any navigation and the parent material app has navigation, the child should not mess with the parent navigation
Actual results:
The url of the browser gets to the root url as there is a material app showing the home
This code is enough to test and reproduce the bug
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData.dark().copyWith(primaryColor: Colors.lightGreen),
      onGenerateRoute: (settings) {
        if (settings.name == '/page1')
          return MaterialPageRoute(
            builder: (context) {
              return Page1();
            },
            settings: RouteSettings(name: '/page1'),
          );

        if (settings.name == '/page2')
          return MaterialPageRoute(
            builder: (context) {
              return Page2();
            },
            settings: RouteSettings(name: '/page2'),
          );
      },
      initialRoute: '/page1',
    );
  }
}

class Page1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SafeArea(
        child: Scaffold(
          body: Column(
            children: [
              const Text('Page1'),
              MaterialButton(
                color: Theme.of(context).primaryColor,
                onPressed: () => Navigator.of(context).pushNamed('/page2'),
                child: Text('Go to page 2'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class Page2 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return SafeArea(
        child: Scaffold(
          body: Column(
            children: [
              const Text('Page2'),
              MaterialButton(
                color: Theme.of(context).primaryColor,
                onPressed: () => Navigator.of(context).pushNamed('/page1'),
                child: Text('Go to page 1'),
              ),
            ],
          ),
        ),

    );
  }
}

Exactly and if it has a nested material app breaks the navigation url, without a nested material app everything works fine, any idea why?
Maybe a the child material app could look up in the widget tree and as it has no relevant navigation, and the parent actually have some navigation logic, the child material app could just leave the url as it was?

@ivofernandes
the docs describes the navigator  of a material app as "top level"
what is the use case for nesting it?

Why do you nest a MaterialApp inside MaterialApp?
Anyway the problem is that MaterialApp creates WidgetsApp under the hood which creates the root Navigator which will set Navigator.reportsRouteUpdateToEngine to true. Since now you have 3x Navigator which tries to report the current url the outcome is unpredictable.
Read the Navigator.reportsRouteUpdateToEngine documentation:

If there are multiple navigators in the widget tree, at most one of them can set this property to true (typically, the top-most one created from the WidgetsApp). Otherwise, the web engine may receive multiple route update messages from different navigators and fail to update the URL bar.

It's true that there are not a lot of good reasons to have nested material apps, the reason it happened to me is that I copied stuff from a package example, but maybe I should close this issue as it's more matter of curiosity than an issue.
Thanks for the deep explaining about this issue :)


Nightly builds

It seems like a waste of electrons to make nightly builds when commits come around once every couple of weeks.
@DarkWanderer is there a reason you've added them? on-push should be sufficient. Or maybe there is a way to skip nightly build if there were no commits for the day?

Yes, there is a reason. In proper software engineering, things are built having the target state in mind - active development - rather than prematurely optimising for the status quo.
Nightly builds normally contain more runs than just same as on push, for example address sanitizer runs, matrix runs against multiple compulers, extended tests etc. If you are concerned about extra runs, feel free to add optimisation which skips the run if the last commit time was >24h ago

"proper software engineering", "target state", "active development"...
Those are all very nice hyperboles, but in reality you are putting the cart waaaaaay before the horse. :) Those extra runs don't come for free... well, maybe to you and me they do, but in general somebody has to pay for them. We often like to talk about sustainability, climate change, etc. but I wish our actions were more reflective of our views...
I am not saying what you did is bad. But, it just seems way too premature.


How to configure Grafana Dashboard?

Hello,
I have installed mongodb_exporter and node_exporter. I have imported the Grafana Dashboard too. But I am not able to see any details. How do I configure my Grafana to pick up details from mongodb_exporter?
Thanks in advance.

Follow this article: http://devconnected.com/mongodb-monitoring-with-grafana-prometheus/

Follow this article: http://devconnected.com/mongodb-monitoring-with-grafana-prometheus/
I need to export MongoDB collections data into Prometheus DB. How to do it? Please help me on this.

Follow this article: http://devconnected.com/mongodb-monitoring-with-grafana-prometheus/
I need to export MongoDB collections data into Prometheus. How to do this?
Can you help me on this?


fix(pkg): npm access should be public

:tada: This PR is included in version 2.1.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Enable IPv6

I use your Pwnbox to play with HTB. IPv6 is a requirement for the connection to the HTB labs. To enable this, I propose to add to the setup/tools.util.sh:
sysctl net.ipv6.conf.all.disable_ipv6=0

Looks great! Feel free to do any PRs if you find any useful tools needed for HTB as well!