Mutexmap

Description
This PR adds a map of mutexes that provide an inner and outer locking mechanism to support keeping separate locks on dynamic objects, as is the case with namespaced stream pools, for example.
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[X] Code compiles correctly
[X] Created/updated tests

In general, the code seems good... But what is this going to be used for? We already have other libraries used in the codebase that support thread-safe maps and do that in a more performant way too. For example, we already use github.com/alphadose/haxmap in other parts of Dapr (go.mod here). Although it has some caveat, it's a lot faster, thanks to being lock-free. Could that be used here too?

Codecov Report
Attention: Patch coverage is 74.57627% with 30 lines in your changes are missing coverage. Please review.

Project coverage is 79.83%. Comparing base (0c7cfce) to head (d43a33c).
Report is 2 commits behind head on main.

Files
Patch %
Lines

concurrency/atomicmap.go
66.66%
22 Missing :warning:

concurrency/mutexmap.go
84.61%
7 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #95      +/-   ##
==========================================
- Coverage   79.94%   79.83%   -0.11%
==========================================
  Files          56       62       +6
  Lines        4382     4760     +378
==========================================
+ Hits         3503     3800     +297
- Misses        733      805      +72
- Partials      146      155       +9

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

Thanks @ItalyPaleAle , haxmap looks great, I wasn't aware of it. I updated the PR in runtime to use it instead and removed the atomic map from kit. I'd like to keep the mutexmap though, because it has some more specialised methods that keep the code in runtime cleaner.

Thanks @ItalyPaleAle , haxmap looks great, I wasn't aware of it. I updated the PR in runtime to use it instead and removed the atomic map from kit

Just keep in mind one important thing about haxmap. If an item is added to the map while it's being resized internally, the item shows up only after the resizing is done. See here
Would this be a problem?

If an item is added to the map while it's being resized internally, the item shows up only after the resizing is done.

Thanks for pointing that out. Does this also relate to GetOrSet? Will it block until the resize is complete, or?
Also... the issue doesn't seem to have reached a consensus on the cause of this error. Someone else suggested it's related to deletes. Do you remember more details? I know it's been a while, but I think this is important to get right 🙏

It won't block. How haxmap works is that it allocates memory to store the items. If more items are needed than the memory that's available, it will need to allocate a new block of memory, copy the items, and then move the pointer to the new memory.
Haxmap doesn't block. As the docs say:

If a resizing operation is happening concurrently while calling Set() then the item might show up in the map only after the resize operation is finished

If you know in advance how many items you'll have, you can pre-allocate the haxmap with enough capacity for them.

Unfortunately, we don't know the number of elements, it's going to depend on how users use the system (specifically, for now, it will be the number of namespaces). I suppose we could set the initial map size to a higher starting number of ~50, or  make the size a placement service start up parameter, but I don't really like either of these options.
I'm concerned that a non-replicated data structure can't give me a read-your-write consistency. I didn't dig deep into the paper and the inner structure, and I'm sure if it were easy, it would have been done, but this doesn't look like an unsolvable problem. For example, the resize could be triggered in the background when the size reaches X% of full capacity, and even if we still get to a point where a write has to happen before the resize completes, the write operation shouldn't be acknowledged to the user before the resize has completed, for correctness.
Since we can have multiple sidecars from the same namespace trying to send their updates at the same time, we might indeed have a situation where this issue affects us.
Let me know if I'm understanding this correctly, or missing something.

Looking at this issue now, there also seems to be a race on the GetOrSet operation, where a delete wouldn't be observed if it's concurrent to a GetOrSet. It's still eventually consistent, but we need strong consistency here.
If everyone's ok with it, I would like to move back to the sync.Mutex based map we had before, even though it's sad to give up on the performance benefits of haxmap.
The library is really interesting though, and maybe we could contribute to it in the future and address these issues.

+1 to use sync.map.

Thanks @artursouza , I reverted it.

@artursouza you merged this PR when there was only 1 vote. The comment should not have been resolved as the conversation was not over.
If the problem was the need to support both int64 and uint32, you don't need to duplicate the code. You can still use the atomic pattern, internally using only atomic.Int64. Since uint32 can safely be contained within int64, you can still use a generic class and then cast the response appropriatley.

@artursouza you merged this PR when there was only 1 vote. The comment should not have been resolved as the conversation was not over.
If the problem was the need to support both int64 and uint32, you don't need to duplicate the code. You can still use the atomic pattern, internally using only atomic.Int64. Since uint32 can safely be contained within int64, you can still use a generic class and then cast the response appropriatley.

Can you provide the code for that? I did hit limitations in the casting capabilities of Go - maybe there is a viable path. I am happy to take another PR on this but I don't think this possible improvement justifies blocking progress on 1.14, given the deadline.


getting an error loading lucy

as it loads the mirror it shows a error in front of mic gif how to resolve that issues

Run "cat /proc/asound/cards" in your terminal and verify that you have the correct microphone number in your config.js entry. If that does not work.
Open a new terminal and type these two commands:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib (and ENTER)
sudo ldconfig (and ENTER)
I assume you installed correctly

I just did both these steps and still have the error. :/ I blacklisted my other audio sources to fix an issue with raspotify so I'm sure that it's using the right device. I think the issue stems from my mic being the same card and device as my speakers? (headset) Any advice would be appreciated. I can tell you more about my build but i'm new and not sure what more info would be helpful.

It seems to me that you have a lot going on there. I wouldn't possibly troubleshoot all that you just described. I would only advise that you remove everything else but Lucy to see what happens. The module works as expect so I am closing the issue. If you need further assistance please create a topic on the MagicMirror forum

It seems to me that you have a lot going on there. I wouldn't possibly troubleshoot all that you just described. I would only advise that you remove everything else but Lucy to see what happens. The module works as expect so I am closing the issue. If you need further assistance please create a topic on the MagicMirror forum


[Darwin] Invert the logic for getting the path to use for the KVS as …

…it was inverted by mistake in #15586
Problem
In 15586 the if/else logic was accidentally reversed.
Change overview

Reverse it again...

ToT generated template is out of sync again: https://github.com/project-chip/connectedhomeip/pull/15680

Fast tracking based on this is just a platform change.


Chrome crashes with a specific shape/path?

When I load https://www.colorado.edu/physics/phet/dev/html/fractions-mixed-numbers/1.0.0-dev.1/phet/fractions-mixed-numbers_en_phet.html?screens=3 and press the right arrow button to its max (8), it visually crashes right before it reaches the balanced (8-line) visual state. If I tweak the path slightly (so the lines barely don't touch) it won't crash (https://www.colorado.edu/physics/phet/dev/html/fractions-mixed-numbers/1.0.0-dev.2/phet/fractions-mixed-numbers_en_phet.html?screens=3).
I've confirmed this across two different computers, where Chrome (Version 65.0.3325.181 (Official Build) (64-bit)) crashes, but Firefox/Edge are totally fine.
@phet-steele can you confirm this (and that I'm not crazy)? Have we seen anything like this before? Is there a chance we have now-crashing production sims due to this?
The frame it visually sticks on before crashing (the button stays pressed visually, even though in the JS console I can confirm it isn't):

When it crashes:

Expected behavior (with workaround or using other browsers):

This isn't the JS side crashing, as the sim is still actually responding to user input (and can output things in the console related to that).
@ariel-phet, should I look into what potential Chrome bug may be causing this?

@jonathanolson That is wonderfully odd.
I can reproduce this bug.
Can you be more specific about what you changed? You say "so the lines barely don't touch" Which lines? Are you talking about where the lines touch in the center of the circle?
I would say put a small amount of effort into identifying the Chrome bug (1 hour max). Your workaround seems look look just fine, and I do not thing we have ever seen this sort of crash before, so probably not worth worrying about TOO much, but it would be good to understand.

Can you be more specific about what you changed? You say "so the lines barely don't touch" Which lines? Are you talking about where the lines touch in the center of the circle?

In these cases (build-a-fraction and intro-like screens):

If the lines are drawn from the origin to the ends, Chrome crashes. The workaround is to start the lines imperceptibly far from the origin (which prevents the crashing). So instead of a line from (0,0) to (mcos(t),msin(t)), it goes from something like (0.01cos(t),0.01sin(t)) instead.

I would say put a small amount of effort into identifying the Chrome bug (1 hour max)

Will do.

Your workaround seems look look just fine

I also had to apply this in the Intro screen. That means I would have noticed it before (so likely a recent Chrome regression), hopefully it will be fixed soon.

@jonathanolson I can't get a crash in Mac Chrome?


AccessDenied error when calling the ListObjectsV2 operation

Hello! I am trying to upload data to S3 using s3fs.S3FileSystem.put(). Here is my wrapper function:
import s3fs
from s3fs import S3FileSystem

s3fs.core.logger.setLevel("DEBUG")

s3 = S3FileSystem()

def upload(self, *dirs_or_files: str) -> None:
    keys: tuple[str] = # other func to generate the keys

    for path, key in zip(dirs_or_files, keys):
        if os.path.isdir(path):
            fs.put(path, f"{key}/", recursive=True)
        fs.put(path, key)

def main()
    upload("./data")

if __name__ == '__main__':
    main()

Where fs is the instance of s3fs.S3FileSystem. However when I run the script I get the following error (and log):

[01/24/23 23:56:29] INFO     Found credentials in shared credentials file: ~/.aws/credentials                                                               credentials.py:1251
[01/24/23 23:56:30] DEBUG    Setting up s3fs instance                                                                                core.py:282
                    INFO     Found credentials in shared credentials file: ~/.aws/credentials                                                               credentials.py:1251
                    DEBUG    Get directory listing page for futura-aws-test-bucket/data                                                                             core.py:385
                    INFO     Downloading contents of 'data' into './data/prova/data'                                                                              bucket.py:603
                    DEBUG    Get directory listing page for data                                                                                core.py:385
[01/24/23 23:56:31] DEBUG    Get directory listing page for data                                                                                core.py:385
                    DEBUG    Get directory listing page for data                                                                                core.py:385
Traceback (most recent call last):
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/s3fs/core.py", line 394, in _lsdir
    for i in it:
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/botocore/paginate.py", line 269, in __iter__
    response = self._make_request(current_kwargs)
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/botocore/paginate.py", line 357, in _make_request
    return self._method(**current_kwargs)
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/botocore/client.py", line 530, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/botocore/client.py", line 960, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/lucabaggi/.local/share/pyenv/versions/3.9.16/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/Users/lucabaggi/.local/share/pyenv/versions/3.9.16/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/src/main.py", line 13, in <module>
    main()
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/src/main.py", line 10, in main
    bucket.download("data", under="./data/prova")
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/src/futura_aws/bucket.py", line 604, in download
    self._fs.get(key, f"{local}/", recursive=True)
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/fsspec/spec.py", line 885, in get
    rpaths = self.expand_path(rpath, recursive=recursive)
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/fsspec/spec.py", line 989, in expand_path
    out = self.expand_path([path], recursive, maxdepth)
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/fsspec/spec.py", line 1009, in expand_path
    if p not in out and (recursive is False or self.exists(p)):
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/s3fs/core.py", line 498, in exists
    self.ls(path)
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/s3fs/core.py", line 619, in ls
    files = self._ls(path, refresh=refresh)
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/s3fs/core.py", line 487, in _ls
    return self._lsdir(path, refresh)
  File "/Users/lucabaggi/Documents/dev/futura/futura-aws/.venv/lib/python3.9/site-packages/s3fs/core.py", line 409, in _lsdir
    raise translate_boto_error(e)
PermissionError: Access Denied

The error arises when I am trying to upload a single file too.
I am using s3fs==0.4.2 (chosen by the dependency manager).

Problem solved, I did not prefix the bucket name to the rpath.


UAI: Example JSONs

Description:
UAI : Example JSONs - Prepare example JSONs based on the UAI use case.
UAI : Gather JSONs from network participants (NPs) to review.
UAI : Review Beckn Compliance for NPs.
Link to confluence page for outcome visualizations
Use Cases:

Advisory Services (Free and Premium)
Equipment Rental Services
Equipment and Agri Inputs Sales
Booking of Cold Storages, Warehouses

Goals:

[ ] Create example JSONs tailored to the UAI use case.
[ ] Gather JSONs from network participants (NPs).
[ ] Review and ensure compliance of gathered JSONs with Beckn standards.

Expected Outcome:
A comprehensive set of example JSONs that accurately represent the UAI use case and are compliant with Beckn standards.
Acceptance Criteria:

[ ] Example JSONs are prepared and tailored to the UAI use case.
[ ] JSONs from network participants are gathered.
[ ] Compliance of gathered JSONs with Beckn standards is reviewed and confirmed.

Mockups / Wireframes:
NA
Product Name:
Beckn
Domain:
AgriNet
Tech Skills Needed:
JSON, Beckn Compliance
Complexity:
Medium
Category:
Data Preparation
Sub Category:
Example Data, Beckn Compliance

Have updated the link to confluence in the description

UAI example JSON is available in the below GitHub link as MD file for three use case [Advisory, Rental & Sales]
GitHub link is here
@faizmagic @rajaneeshk90


[Question] Automate environment push and remove

Which Category is your question related to?
Environments and teams workflow.
Amplify CLI Version
4.21.0
What AWS Services are you utilizing?
Auth, Api, Storage, Hosting, Function, AppSync
Question
Suppose I have the following workflow.
A github repo with a master, develop and feature branches.
Developers can only merge to the develop and master branches through pull requests.
According to the docs to provision the backend from one environment to another one must:

git clone
amplify init
git checkout feature
amplify env checkout feature
amplify pull
git checkout develop
amplify env checkout develop
git merge feature
amplify push

My question is, is there a way to automate this from a pull request? So a developer works on a feature on his own sandbox, he then creates a pull request and after the pull request is accepted and merged all of the steps above are automated. Maybe not all but those pertinent to merging a feature to develop.
Or will an admin have to perform all those steps above after a pull request is accepted?
Also, any way to remove an amplify environment automatically after a pull request has been merged and the branch deleted?
Just a note, I've set up Pull Request Previews and Continuous Deployment on AppSync.

Hi @marlonmarcello , Here are some useful links about the way to use Amplify Console and Pr-Previews feature. If you have any questions, please let us know.
https://docs.aws.amazon.com/amplify/latest/userguide/getting-started.html
https://docs.aws.amazon.com/amplify/latest/userguide/pr-previews.html

Hey @Joycehao19 , read though that and that's what I have at the moment.
I was looking for a way to automate the merge of amplify environments with pull requests.
Whenever an amplify environment is related to a branch, like the way it's recommended by the docs here: https://docs.amplify.aws/cli/teams/sandbox, and you want to merge said branch through a pull request, after doing the code review with the team a developer would have to manually merge the amplify environment after the pull request has been accepted.
I was looking for a way to automate that. Merge the amplify environment WITH the git branch. Basically, automating that second step described on the docs.

Just curious to know if there is any update.
Is am also in Sam situation.
For checkout of environment  amplify pull can be used in headless mode.
But environment removal is still interactive. Is there any way we can remove environment in headless mode?

It's very annoying that we can't have headless env checkout and removal. Currently I'm using this approach:
echo y | amplify env remove "${stage}"


Documentation View: Have Special Notations for Variables

Is your feature request related to a problem? Please describe.

In the documentation view, there are no special notations for describing variables in the program.
It would be nice if variables were shown differently than normal text to help understand the program better. Something like Variable would work.

Describe the solution you'd like

An option to distinguish variables.

Describe alternatives you've considered

A list containing all the defined variables which can be selected and added to the documentation.

This would be a nice addition, but requires a lot of changes to the WYSIWYG library we currently use or another library entirely. As this is such a niche feature we will not work on this for now. We might reopen in the future.


Delay loading blockly

Work in progress.

field editors extend blockly types which break delay loading

Yes, this change looks very familiar. Tried to do it a while back.
A couple things:

Monaco toolbox relies on Blockly CSS to be loaded, if you delay load Blockly we either load it when we're in Text, or we pull out the CSS we want to use and include it in pxt.
Monaco editor also relies on colors and some helper methods from pxtblocks, which can be stripped out (looks like you're doing that).

Tackling that now.
From: Sam El-Husseini<EMAIL_ADDRESS>Sent: Friday, April 13, 2018 2:06 PM
To: Microsoft/pxt<EMAIL_ADDRESS>Cc: Peli de Halleux<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Microsoft/pxt] Delay loading blockly (#4117)
Yes, this change looks very familiar. Tried to do it a while back.
A couple things:

Monaco toolbox relies on Blockly CSS to be loaded, if you delay load Blockly we either load it when we're in Text, or we pull out the CSS we want to use and include it in pxt.
Monaco editor also relies on colors and some helper methods from pxtblocks, which can be stripped out (looks like you're doing that).

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fpxt%2Fpull%2F4117%23issuecomment-381260391&data=02|01|jhalleux%40microsoft.com|11d9c55468e04b7adc5e08d5a1824b24|72f988bf86f141af91ab2d7cd011db47|1|0|636592503329898039&sdata=VzOhkTJe1zJdtI37K7rnuE5%2F2ZgQdxpRVDK6J7UDS4I%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAD-4Kd5KSl0cwaE_bDHmtH9119JTixsIks5toRMagaJpZM4TUK9k&data=02|01|jhalleux%40microsoft.com|11d9c55468e04b7adc5e08d5a1824b24|72f988bf86f141af91ab2d7cd011db47|1|0|636592503329908039&sdata=ls7t%2B9l9eu59WAuvSfzyWgQcf%2B0ZPsRkCGyAMnebQCY%3D&reserved=0.


Remove hdfs binary dependency in user docker image

the entrypoint of user docker image will use hdfs binary to download bootstrap shell script from HDFS, this will require hdfs binary to be preinstalled in user docker image, should remove this dependency in the future.

Fixed in #738.


Adaptive batching

Previously, we have discussed idea of optimal adaptive batching solution. I don't thing that the best way will be actual OOM-ing, which is pretty common way in current framework, but we might take it as baseline. As was proposed by @felipemello1 I will open RFC with more details and experiments examples.

Nice! here is a great example of an RFC by Philip https://github.com/pytorch/torchtune/pull/1283

Opened RFC


Support the decompilation of suspend functions

Codecov Report
Patch and project coverage have no change.

Comparison is base (e483b5d) 77.38% compared to head (7bf7338) 77.38%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@                Coverage Diff                @@
##             develop/1.10.0     #294   +/-   ##
=================================================
  Coverage             77.38%   77.38%
+ Complexity             8282     8281    -1
=================================================
  Files                   249      249
  Lines                 26616    26616
  Branches               6750     6750
=================================================
  Hits                  20598    20598
  Misses                 3968     3968
  Partials               2050     2050

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Upgrade ethereum/tests to v7.0.1

What was wrong?
Need the new tests for Berlin
How was it fixed?
Update the ethereum/tests repo
To-Do

[ ] Clean up commit history
[x] Split off Berlin tests to run separately in CI
[ ] Hm, maybe the same for Muir Glacier??
[ ] Mark failing Berlin tests as skipped
[ ] Identify & fix any non-Berlin tests that are failing
[ ] Add entry to the release notes

Cute Animal Picture

Watch https://github.com/ethereum/tests/issues/787 to see if we need to modify something in py-evm to pass that test.


New: Updates Israeli bank scrapers library

New Feature #536

I tested the workflow on a different repository because I suspect that workflows cannot be executed on forked repositories on GitHub. Additionally, it's necessary to enable the option in the repository settings under Actions settings that allows the bot to create new pull requests automatically for the workflow to function properly.

Thanks @ronnahmias!
This setting is already enabled for our repo:

I have mentioned this that I didn't find proper way to stop it without an error on the workflow but the create pr will not open new pr so I don't think there is issue to continue with steps.

OK then, I will accept it if it passes without errors and without doing anything.
For now, the Create PR action is failing, don't know why:
https://github.com/brafdlog/caspion/actions/runs/7973297488/job/21767795314?pr=537#step:10:43

Hi I have seen that there is no premission to action to make pr
https://github.com/brafdlog/caspion/actions/runs/7974876278/job/21771772695

@ronnahmias I'm trying to figure it. Did you say it worked on your fork? Did you manage to generate a PR on your fork?

It worked on my fork, I guess it is related to the PR token and so, I will merge it.


UI Improvement in mobile

The current UI is mobile responsive. But some tweak can be done to improve UX. Need help from a good UI designer and developer to improve the UI on mobile without changing the UI desktop/laptop much.

Couple of pointers:

Menu looks crowded in mobile..
Cell top menu is misaligned


socket.io segfault or "Registering more than one listener..." on 0.10.*

socket.io or engine.io doesn't working with<EMAIL_ADDRESS>From<EMAIL_ADDRESS>to<EMAIL_ADDRESS>with example from Readme, throwing "Error: Registering more than one listener to a WebSocket is not supported." and from<EMAIL_ADDRESS>to<EMAIL_ADDRESS>throwing segfault
On 0.9.0 all fine.
Small example for reproduce:
var io = require('socket.io')(3001);
io.engine.ws = new(require('uws').Server)({noServer: true, perMessageDeflate: false});
var server = require("http").createServer((req, res) => {
    res.end(`
    <html>
    <head></head>
    <body>
      <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
      <script>
        io('http://localhost:3001').connect();
      </script>
    </body>
  </html>`);
});

server.listen(3000);

OS: ArchLinux x64 4.7.6-1-ck
Node: 6.7.0
valgrind log
==26658== Use of uninitialised value of size 8
==26658==    at 0x9CDF360: sendCallback(void*, void*, bool) (in /home/ga2mer/git/uwstest/node_modules/uws/uws_linux_48.node)
==26658==    by 0x9CE48EB: void send<true>(v8::FunctionCallbackInfo<v8::Value> const&) (in /home/ga2mer/git/uwstest/node_modules/uws/uws_linux_48.node)
==26658==    by 0x988A71: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) (in /usr/local/bin/node)
==26658==    by 0x9E6A21: v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>) (in /usr/local/bin/node)
==26658==    by 0x9E709D: v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) (in /usr/local/bin/node)

This is a really nice report. Thanks.

Yep, the Node.js addon is kind of broken in 0.10. It also fails when running in the Primus tests. Nodesters should probably use 0.9.0 until I get this fixed up.

Yeah the sendCallback is completely broken:
[alexhultman@localhost primus]$ LD_PRELOAD=/usr/lib64/libasan.so.2 /opt/node-v4.2.6-linux-x64/bin/mocha test/websockets.integration.js

  Transformer: WebSockets
    .Socket
      ✓ exposes a compatible socket
      ✓ emits an `open` event when its connected (52ms)
      ✓ supports literal IPv6 addresses in the connection URL
      ✓ exposes a .socket property
      ✓ initialises without `new`
      ✓ should not throw an error when we connect to a dead server
      ✓ should not open the socket if we set out state to manual (102ms)
      ✓ allows disabling of the reconnect functionality
      ✓ sets reconnection strategies by default
      ✓ emits errors for incorrect context when theres a listener
      ✓ should change readyStates
      ✓ should set the correct read/writable states
ASAN:SIGSEGV
=================================================================
==18517==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7fee88880101 bp 0x0fffe3ef2206 sp 0x7fff1f791020 T0)
    #0 0x7fee88880100 in sendCallback(void*, void*, bool) /home/alexhultman/uWebSockets/nodejs/addon.cpp:166
    #1 0x7fee8888d3a4 in void send<true>(v8::FunctionCallbackInfo<v8::Value> const&) /home/alexhultman/uWebSockets/nodejs/addon.cpp:189
    #2 0x8f71c1 in v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) (/opt/node-v4.2.6-linux-x64/bin/node+0x8f71c1)
    #3 0x9216a0 in v8::internal::MaybeHandle<v8::internal::Object> v8::internal::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>&) (/opt/node-v4.2.6-linux-x64/bin/node+0x9216a0)
    #4 0x921b91 in v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) (/opt/node-v4.2.6-linux-x64/bin/node+0x921b91)
    #5 0x7fee8ce0839a  (<unknown module>)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/alexhultman/uWebSockets/nodejs/addon.cpp:166 sendCallback(void*, void*, bool)
==18517==ABORTING

This particular bug is now fixed but there is also one bug in the addon that needs to be fixed. Should be simple, just a very clumsy mistake.

All Primus tests pass cleanly now, at least the version of Primus I have here.


Enable / Disable bugfix

Added a checkbox to the panel for enabling/disabling the plugin.
Fixed the bug preventing the disabling of BitCart payment ('eternal BitCart bug').

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for your PR! yes/no values are reserved for type checkbox and used by woocommerce itself, right?

Yes, the yes/no option is set by default by woocommerce.

Sorry for delay! PR works as expected! Merging!


fix gcc11 incompatibility

The gcc-11 incompatibility appears to be due to bugs in the code (blake2 ?).
Will this be fixed?
Apparently it's pure luck that it works at all in older versions of gcc - see this thread.

I know, I didn't write the code...
I'll update to latest BLAKE3 code later today, maybe that'll fix it..

I got it built on fedora 34 with gcc11 just now. i'm not sure if it will actually work though since I'm not a C++ programmer!
dnf install gmp-static sodium-static (otherwised ar: unknown file type with dynamic library)
after failed build, in chia-plotter/build/_deps/relic-src/src/md/blake2.h
changed line 64:
typedef struct ALIGNME( 64 ) __blake2s_state
and line 89:
typedef struct ALIGNME( 64 ) __blake2b_state

Seems to be plotting OK so far..
(venv) build/chia_plot <key> <key> /mnt/adata512gb/ /mnt/wdsn7501tb/ 6 Number of Threads: 6 Number of Sort Buckets: 2^7 (128) Pool Public Key:   <key> Farmer Public Key: <key> Working Directory:   /mnt/adata512gb/ Working Directory 2: /mnt/wdsn7501tb/ Plot Name: plot-k32-2021-06-09-13-59-13ce64358f09a1715f36960b1eaa249fdcc2d95d58a216a1177b47744cf2aaea [P1] Table 1 took 31.8713 sec [P1] Table 2 took 280.82 sec, found<PHONE_NUMBER> matches [P1] Lost 13597 matches due to 32-bit overflow. [P1] Table 3 took 349.768 sec, found<PHONE_NUMBER> matches [P1] Lost 95799 matches due to 32-bit overflow. [P1] Table 4 took 390.185 sec, found<PHONE_NUMBER> matches [P1] Lost 89920 matches due to 32-bit overflow. [P1] Table 5 took 384.097 sec, found<PHONE_NUMBER> matches [P1] Lost 95381 matches due to 32-bit overflow. [P1] Table 6 took 370.428 sec, found<PHONE_NUMBER> matches

looks good so far, but check the plot later with ProofOfSpace check -f *.plot to make sure it's legit

Yes it works fine. Verified with ProofOfSpace check

Proof verification suceeded. k = 32
Total success: 997/1000, 99.7%.
(venv) Proof verification suceeded. k = 32
Total success: 997/1000, 99.7%.

great, in that case I'll fork the BLAKE3 repo and apply your patch

Ah this is about build/_deps/relic-src/src/md/blake2.h, I can't patch that...

I know, I didn't write the code...
I'll update to latest BLAKE3 code later today, maybe that'll fix it..

No, still relies on blake2.h
chia-plotter/build/_deps/relic-src/src/md/blake2.h:101:5: error: size of array element is not a multiple of its alignment

I got it built on Fedora 34 with gcc11 just now. i'm not sure if it will actually work though since I'm not a C++ programmer!
dnf install gmp-static sodium-static (otherwised ar: unknown file type with dynamic library)
after failed build, in chia-plotter/build/_deps/relic-src/src/md/blake2.h
changed line 64:
typedef struct ALIGNME( 64 ) __blake2s_state
and line 89:
typedef struct ALIGNME( 64 ) __blake2b_state

Yes it solves the issue. Now I can build it for Fedora.


[EER]: Bulk import - UI - Login - Validation Issues

[x] Get the bulk issuance flow working end-to-end

[x] Ability to log in and see credentials after VC creation by bulk upload - this works 80%.
However, if the user goes to the home page, it gets stuck with a loader.
 -  Student registers - Home page to edit details + issued certificates

 - A student registered via bulk import - Hide home page, show only issued certificates

[ ] Issuer registration on DigiLocker, and the ability for recipients to pull VC into DigiLocker

[ ] Revisit new user registration - it was breaking.registration is complete, user is not able to login.

[x] Issuer login - No of issued certificates are not getting updated

[ ] [For single reord]: Email id field is accepting only one number and characters - field should have validation for invalid email id - it should not accept only one number,alphabet or special character

Error Message should be - Invalid email id

[ ] [Single record] : Contact number field accepting less than 10 digit - more than 10 digit and characters - it should not accept

[ ] [Import file UI] : button should be as per figma and upload button should be disable till file getting added.

[ ] - [ ] [Pop-up] : Download file to view error message and 0 records were failed message should not appear if all records get succssefully added

dependency on @varadeth for validations. Need to add validations in schema

@chaitrali-r deployed with validations for contact number and email


Adjustments to survey page (button pushing, formatting)

components.zip

Has this pull request been opened by mistake?

I believe this pull request has been opened by mistake. I am closing it.


Revendor MAO Pausing changes

This revendors the MAO to bring in the recent Paused Condition changes:
https://github.com/openshift/machine-api-operator/pull/1287
https://github.com/openshift/machine-api-operator/pull/1286

/approve
/lgtm

/retitle OCPCLOUD-2565: Revendor MAO Pausing changes


Second call of StartAsync after StopAsync poorly finds peers/seeds

When I first time call StartAsync of certain TorrentManager, peers/seeds are found very quickly.
But if I call TorrentManager's StopAsync and after that StartAsync, peers/seeds are missed and new ones not found at all or found a few. And it takes much more time to find them, 30 seconds or more.
If I call StartAsync on another TorrentManager, peers/seeds are found very quickly as well. But only for the first time.
Any ideas why this happening?

Are you relying on Dht or a Tracker to retrieve peers?

If it's a tracker, can you attach to ClientEngine.TrackerManager.AnnounceComplete and log the success/failure of the tracker invocation? You can also log the list of peers which the tracker returned by accessing AnnounceResponseEventArgs.Peers. If the list is more or less the same for both invocations, and it's successful both times, then the issues is probably something quite unusual.

If it's Dht then can you attach to DhtEngine.PeersFound and make sure that it is being raised the second time you start the torrent, and that enough valid peers are being found.

As I suppose, both are used, Dht and Tracker if it's set.
I will try things you suggested on Monday and will post my results here.
Thanks for the help!

When you do try it, can you use the latest commit from master? I think it could make a difference :) I'll be issuing a release of it soon!

Try 1.0.6 or newer, and if the problem persists let me know the answers to the question I asked previously :)
Thanks!

If the list is more or less the same for both invocations, and it's successful both times, then the issues is probably something quite unusual.

After StopAsync() -> StartAsync() on AnnounceComplete, the length of Peers list is the same as it was for the first StartAsync() call

DhtEngine.PeersFound

DhtEngine.PeersFound event is raising fast multiple times after the first call of StartAsync() and the download starts fast.
After StopAsync() -> StartAsync() PeersFound event not raising for a long time and download is not starting, even TorrentManager shows that at has Peers. It shows Seeds as 0. I suppose it because Peers found from Tracker are not compatible at the moment for the needs to download needed pieces. So we need more peers from DhtEngine.
If I wait for 2-3 minutes after StopAsync() and then call StartAsync(), a download starts the same fast as StartAsync() was called for the first time.
So, it seems that DhtEngine needs some force to start peers search again after second StartAsync()

I can look into this later. It sounds like the announce is either being incorrectly skipped, or perhaps the tracker is deliberately not returning peers due to multiple announce requests arriving too quickly.
It would also help restart performance if the list of peers was not cleared when stopping and starting a torrent. The memory retention would be relatively tiny in this scenario.

I just did a quick screencast of a StopAsync/StartAsync loop with a 30 second delay between changes.
https://recordit.co/CMKHdP5pwq
An initial start seems to take a few seconds to create 50+ connections, but after a stop and a start it seems to take a bit longer alright. I don't know if it's different enough to be a problem as I still end up with about 1 connection per second. I'll dig into a little more, but I wanted to first check two things:

Which version of the library are you using (or which commit if you're compiling from source)?
Does my screencast match what you're seeing?

On Windows the performance is significantly better. It takes a few seconds to reach 70+ connections on my computer after a StopAsync, a delay of 30 seconds, and a StartAsync.

I'm using the Master source with the latest commit, compiling library by myself.
On your screencast, I don't see any delay. If it presents, it's really fast enough to be not a problem at all.

I'm testing on android. Do you have any android device? I can send you the link for .apk of my app. It's still not yet released to Google Play.

Interesting! Android should have reasonably similar performance characteristics to the MacOS screenshot I recorded as Xamarin.Android is based on Mono. There may be platform specific performance or stability issues, but hopefully this isn't one of those cases.
I could load an APK into an emulator, or a device, to test but  it would be hard to diagnose anything if I cannot make changes to the underlying code. If you could record a screencast, or video, showing the performance that would give me a better idea of the difference you're seeing. I do think MacOS is showing a noticeable, but not too bad, drop in performance. This performance drop could be worse on Android (if it really is a thing and not just a glitch in testing :p ).
Please keep an eye on things with the latest monotorrent build, and if you think there is still a performance drop when stopping and starting then fire off an email with your testcase to my email address ( https://github.com/mono/monotorrent/blob/master/src/MonoTorrent/MonoTorrent.BEncoding/BEncodedDictionary.cs#L5 ) and I'll review what I can.

Ok. Thanks. I'll do some more tests, on Android and on Windows also. I will post results later.

@catholic have you gotten a chance to test things out more thoroughly? If so, are you still seeing issues or are things working well now?

The issue still presents in my app. I have no idea how this can be fixed.
On windows, the behavior is the same. The second call of StartAsync() takes a much longer time to start the download. Peers are found, but the download doesn't start immediately.
The issue ticket can be closed for now. I will create a new one if I have more to say.

It's ok to leave this open for now. I'll do some more reviewing and see if I can figure out what the difference is. I think I can replicate a similar kind of issue on MacOS so perhaps if I keep digging into it I'll be able to figure it out!

After a lot of testing, I have some observations.
It seems that the key problem is converting AvailablePeers to ConnectedPeers if TorrentManager has a lot of AvailablePeers from the beginning (the first iteration or something like that). I understand this sounds illogical.
But I have tested this on popular torrents, 1000 peers and more.
The more peers found at the beginning the fewer chances they will be converted to ConnectedPeers.
On extremely popular torrents, 10000 peers and more, the first ConnectedPeers appear after minutes or even doesn't appear a lot.
And if this is the problem, it seems logical that the second start (when some AvailablePeers already present) takes much longer time to convert them to ConnectedPeers, which causes download not starting.

I made some changes to SampleClient to help diagnose the issue. https://github.com/mono/monotorrent/tree/issue-156 . Specifically every 25 seconds i stop the torrent, wait 15 seconds, then start it again: https://github.com/mono/monotorrent/commit/3e500635c5a178735f0bdbf62fe40b0bed012e84#diff-b0436d8ebd7b26c810e684eda1472823R196-R201.
I added one new event for when a connection attempt is initiated, and then ensured i logged the success and failure cases too. The screencast didn't upload, but you can examine the logging here and see how quickly things are re-connecting for me: https://gist.github.com/alanmcgovern/d2351ba2ff2209f493712073f1cd8f64 . It's super fast on MacOS.
If you can log the same connection related events, with the same timestamp I might be able to figure out which aspect is problematic. This is an odd problem!

I just removed this check. At the time i was debugger connection creation and needed things to not time out while I was validating things. I shouldn't have committed this change as it could make connections really slow to establish when the debugger is attached.

Thank you very much for help.
Please give me a day to make some tests with the information you gave me.
Mostly I'm getting these reasons of connections fail:
Connection failed!!!: ipv4://...:30158/ - Unreachable - All
Connection failed!!!: ipv4://...:48078/ - HandshakeFailed - RC4Header, RC4Full
Connection failed!!!: ipv4://...*:45508/ - EncryptionNegiotiationFailed - None
Will post more information later

Can you print timestamps along with every connectoin started/failed/succeeded event? The interesting part for me is whether or not the number of connections per second changes in a noticeable way, or if the success/failure ratio changes over time. Timestamps will be very useful in understanding this.
If a peer is Unreachable then it is immediately discarded and won't be tried again. Unreachable peers are usually offline or do not have proper port forwarding. We can probably ignore these as they're relatively normal.
HandshakeFailed - RC4Header, RC4Full implies that 'EngineSettings.PreferEncryption' is set to false. It might be worth setting this to true and seeing if that affects the success ratio. If plain text connections are used by default then it's more likely that the first iteration will fail due to ISPs closing connections which start with a bittorrent handshake.
One thing that can be interesting is to look at the IP/port and see if there's an obvious pattern of "the first unencrypted connection fails, then the second encrypted one succeeds". That can indicate an ISP is interfering with the connections.

It seems that EngineSettings.PreferEncryption did the trick. The problem solved.
For popular torrents a lot of peers are Unreachable and it takes time to pass them by. But in the end a couple of dozens of good peers are found. On second StartAsync the behavior is pretty the same.
Thanks for the help!
Here are couple of my logs (IPs are hidden)
https://pastebin.com/raw/wzr1pcC6
https://pastebin.com/raw/fFy1HTuQ
https://pastebin.com/raw/BCKrdGDS

That is an incredibly high number of unreachable peers. The only place the Unreachable status is used is here: https://github.com/mono/monotorrent/blob/cc522bfe31308ecaf018e52f36bad25a27abbeec/src/MonoTorrent/MonoTorrent.Client/Managers/ConnectionManager.cs#L131-L151 . Which means SocketConnection.ConnectAsync is failing to connect. That seems pretty unlikely to be causing an issue though, so I would stand by my guess of peers being offline, or being unreachable due to NAT issues.
There are a few things you can try to help speed up the connection rate.

Reduce the connection timeout. This is not exposed to the user, but i'll add that to EngineSettings in a few minutes. The default is 10 seconds, but you could try dropping it to 7 seconds (or lower?) at the risk of losing out on some viable connections.

Increase EngineSettings. MaximumHalfOpenConnections. The default is 8, but if you increase this then the engine will have more concurrent connection attempts. Windows XP used to cause connection attempts to fail immediately if you had more than 10 concurrent connection attempts. I believe that limit has been removed again with windows 7 and newer. If this is correct then increasing this to 15 or 20 might be the best way around the problem. Do note that some consumer grade routers will have issues if you raise this number too high. I would highly recommend keeping this number under 20.

Similarly, if you have raised this number above the default, you should try it at it's default value of 8 and see if it results in better or worse behaviour :)

Also, i am glad to hear that preferring encryption solved the issue! I toggled the default to 'true' a few months back due to someone else seeing the same issue :)

Right now MaximumHalfOpenConnections is set as 20. I will test this moment next week.

Hey guys, I was having the same issue but nothing from the above helped. However I noticed that even after calling StopAsync() there were some peers left and the downloading was continuing slowly. Tracked down the problem to here:
https://github.com/mono/monotorrent/blob/ad279e59da9c5dc271a65d9f4958bc9eab2aafbc/src/MonoTorrent/MonoTorrent.Client/Modes/StoppingMode.cs#L53-L60
Moving Manager.Peers.ClearAll() after the "CleanupSocket" fixed it for me. Cheers!


chore(master): release 1.4.1

:robot: I have created a release beep boop
1.4.1 (2023-11-10)
Bug Fixes

bin tsconfig (1372bbc)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/ScribeLabsAI/ScribeAuthNode/releases/tag/1.4.1 :sunflower:


Add Redux for fetching current user

:tada: This PR is included in version 1.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Database Client Dropdown - Styling Broken

Looks like there should be some kind of select dropdown UI, but it's just a white area.

Looks like this will be fixed in the next version according to #67


feat: Allow option to enforce a name for the uploaded file

Describe the feature you'd like to request
There are cases where having a predictable URL is important (image generated in an email, for example). The current solution doesn't allow enforcing URLs (a random UID is used), making the solution not suitable for those aforementioned use cases.
Describe the solution you'd like to see
Adding an option in the onBeforeUploadBegin callback function could be an option. Instead of returning a list of files, the method could accept either a list of files or a list of files and options.
Currently, the method signature is as follows: (files: File[]) => File[] instead it could become (files: File[]) => File[] | { files: File[]; options: {keepName: boolean}}
On the server, the option would mean that URLs would be simpler and look something like this: https://uploadthing.com/${secret}/${fileName}.
The secret in the URL being a secret identifier generated in the uploadthing dashboard to ensure that it's unique across all users.
Additional information
No response
👨👧👦 Contributing

[ ] 🙋♂ Yes, I'd be down to file a PR implementing this feature!

filenames aren't very url friendly which is why we hash them as part of the key generation


Model compilation failing with ValueError: Variable dense_1_bottleN_0_batch1/beta already exists, disallowed

======Loading data======
DataSet aready exist!
Loading ./cifar-10-batches-py/data_batch_1 : 10000.
Loading ./cifar-10-batches-py/data_batch_2 : 10000.
Loading ./cifar-10-batches-py/data_batch_3 : 10000.
Loading ./cifar-10-batches-py/data_batch_4 : 10000.
Loading ./cifar-10-batches-py/data_batch_5 : 10000.
Loading ./cifar-10-batches-py/test_batch : 10000.
Train data: (50000, 32, 32, 3) (50000, 10)
Test data : (10000, 32, 32, 3) (10000, 10)
======Load finished======
======Shuffling data======
======Prepare Finished======
ValueError                                Traceback (most recent call last)
 in ()
207 learning_rate = tf.placeholder(tf.float32, name='learning_rate')
208
--> 209 model = DenseNet(x=x, nb_blocks=nb_block, filters=growth_k, training=training_flag)
210
211 # logits = DenseNet(x=x, nb_blocks=nb_block, filters=growth_k, training=training_flag).model
20 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/variable_scope.py in _get_single_variable(self, name, shape, dtype, initializer, regularizer, partition_info, reuse, trainable, collections, caching_device, validate_shape, use_resource, constraint, synchronization, aggregation)
862         tb = [x for x in tb if "tensorflow/python" not in x[0]][:5]
863         raise ValueError("%s Originally defined at:\n\n%s" %
--> 864                          (err_msg, "".join(traceback.format_list(tb))))
865       found_var = self._vars[name]
866       if not shape.is_compatible_with(found_var.get_shape()):
ValueError: Variable dense_1_bottleN_0_batch1/beta already exists, disallowed. Did you mean to set reuse=True or reuse=tf.AUTO_REUSE in VarScope? Originally defined at:
File "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/framework/python/ops/variables.py", line 283, in variable
aggregation=aggregation)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/framework/python/ops/arg_scope.py", line 182, in func_with_args
return func(*args, **current_args)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/framework/python/ops/variables.py", line 355, in model_variable
aggregation=aggregation)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/framework/python/ops/arg_scope.py", line 182, in func_with_args
return func(*args, **current_args)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/contrib/layers/python/layers/layers.py", line 315, in _fused_batch_norm
trainable=trainable)

I also have the problem when I run the code on colaboratory, but it has no problem on pycharm.Can someone help me solve this? Thank you.


Errors in kubelet logs: "kubelet_node_status.go:377] Error updating node status, will retry: error getting node "ip-172-30-2-180.ec2.internal": Unauthorized"

What happened:
In the kubelet logs, I see errors like:
Errors in kubelet logs: "kubelet_node_status.go:377] Error updating node status, will retry: error getting node "ip-172-30-2-180.ec2.internal": Unauthorized"

The errors do not appear to impact cluster operation - we have seen no errors in the health of the cluster, services, deployments, etc. They will hinder incident investigation by causing false positives and we aren't actually certain as to the impact.
"kubectl get node" shows all nodes as Ready - even when the errors are occurring the nodes appear to be shown as "Ready" and are capable of having pods scheduled.. We have not seen any nodes going from "Ready" to "Not Ready" or anything similar.
What you expected to happen:
No log messages if there are no issues affecting normal operation
How to reproduce it (as minimally and precisely as possible):
All kubelet logs should show these types of error messages after running for some time.

Please reopen this issue if you are still experiencing this on currently-supported AMI's.


Possible fix for #60

Possible fix for #60.
The issue turned out to be a difference in how escape characters are specified in literal regular expression and regular expression created using new RegExp(...).  This PR solves the issue, but not necessarily in an ideal way -  in order to get a string with real control characters from a regex literal, I had to eval() a processed version of the literal regex's string representation.  I won't be offended if you reject this PR in favor or a more elegant solution.

Thanks, Nathan!
I'll keep this "pending" for the moment, as I'll try to look into this issue tomorrow.
If I can't come with something more elegant, as you say, I'll accept the PR.

Now that I think about this a little more, I'm not sure that this fix is right.  I did the same test on eslint's demo page, and it looks like their linter isn't properly flagging their invalid demo regex (/\x1f/) either.  I'm going to open an issue on their repo to try to get this cleared up.

Just for reference, here's the eslint issue I just opened:
https://github.com/eslint/eslint/issues/5737

Closing until the issue with the corresponding eslint rule is resolved.


Fix constant test failures

Which issue this PR fixes

increases a flush timeout for Redis Souce Set Sink, which turned out to not be large enough in practice...
disables parallel execution of tasks in multiple modules *

* It is a bad solution, but I wasn't able to find a way to make only the test tasks serial. This should be a temporary thing until we find a proper solution and I believe it is still better than having all tests fail all the time...

@cangencer when I asked about pushing a "minor change" that was just the flush timeout part... Just saying, so that in the future when I will use the "minor change" term again, the hair won't stand up on your back! ;)

Does the Redis test passes when you apply only item 1?

@jbartok Does the Redis test passes when you apply only item 1?

Yes. The intention behind item 2 was to make the elasticsearch tests pass too. If you know a better solution, pls. apply it.

@jbartok Does the Redis test passes when you apply only item 1?

Yes. The intention behind item 2 was to make the elasticsearch tests pass too. If you know a better solution, pls. apply it.

With the current jenkins configuration elasticsearch tests are working fine. So if you could just apply the item 1 we are good to merge this.

Have removed the second item, only flush time increase in Redis tests remains.


Remove yarn.lock from node_watcher and move it for dockerization

upgrade to 1.8.4 beta
add @polkadot/api to package.json in node_watcher
add a docker script to copy and remove yarn.lock form ../../ for dockerization.

ok, we now have docker scripts in node_watcher and server, local yarn.lock where removed. This is solution 1 from #245


Failed to resolve: com.miguelcatalan:materialsearchview:1.4.0

hi,
So this library latest version is available only in spring plugins repository and jcenter is also dow now.
Spring plugin is also not publically available
We are unable to build project because library is not resolved. can you tell what  to do.
Can you please attach aar file for latest version 1.4.0 in github itself

Hi @yogeshmehare,
Thank you for raising this issue. Day before yesterday also I faced the same issue and raised it but no reply.
After searching a lot and tried almost one week I found the solution. Sharing below,

Download the code from GitHub.
Import it as "New Module" in your app.
Add in dependencies like this "implementation project(':materialsearchviewnew')" and your imported module folder inside your app.
"Sync now" and "Run".
Thank you.

Hi @yogeshmehare, Thank you for raising this issue. Day before yesterday also I faced the same issue and raised it but no reply. After searching a lot and tried almost one week I found the solution. Sharing below,

Download the code from GitHub.
Import it as "New Module" in your app.
Add in dependencies like this "implementation project(':materialsearchviewnew')" and your imported module folder inside your app.
"Sync now" and "Run".
Thank you.

Unfortunately, the method did not work for me. Other errors appear in the library. Do you have a detailed method for adding the library? I have used it in several interfaces, and now I am suffering from its incompatibility with the new server.
Why didn't they update the library or develop another way to use it? This is why it is always preferable to use large companies' libraries for continued support.

i solved it by add
maven {
url "https://repository.liferay.com/nexus/content/repositories/public/"
}


Add i18n support for "Normal" value in speed options

Sumary of proposed changes
In speed options, if value is 1 then "Normal" is shown instead. This pr adds a new "normal" key to i18n options so that it's possible to translate that string.
Task list

[ ] Tested on supported browsers
[ ] Gulp build completed

Thanks mate 👍


NotImplementedError: The operator 'aten::isin.Tensor_Tensor_out'

Trying to run this on the CLI on macOS:
insanely-fast-whisper --device mps  --batch-size 2 --file-name chunk0.mp3

NotImplementedError: The operator 'aten::isin.Tensor_Tensor_out' is not currently implemented for the MPS device. If you want this op to be added in priority during the prototype phase of this feature, please comment on https://github.com/pytorch/pytorch/issues/77764. As a temporary fix, you can set the environment variable `PYTORCH_ENABLE_MPS_FALLBACK=1` to use the CPU as a fallback for this op. WARNING: this will be slower than running natively on MPS.

Any advice?
For non-CLI, I now just run the following:
import os
os.environ['PYTORCH_ENABLE_MPS_FALLBACK'] = '1'
import torch
from transformers import pipeline
from transformers.utils import is_flash_attn_2_available

Did you manage to use GPU without os.environ['PYTORCH_ENABLE_MPS_FALLBACK'] = '1' ?
I was able to use this few months back on GPU, now looks like it is broken.
Can you give me your requirements .txt if you are able to work with GPU ? I am getting same error and not able to resolve

After updating to torch (nightly) everything seems to be working fine:
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu

Unfortunately, doesn't solve my problem:
NotImplementedError: The operator 'aten::isin.Tensor_Tensor_out' is not currently implemented for the MPS device. If you want this op to be added in priority during the prototype phase of this feature, please comment on https://github.com/pytorch/pytorch/issues/77764. As a temporary fix, you can set the environment variable `PYTORCH_ENABLE_MPS_FALLBACK=1` to use the CPU as a fallback for this op. WARNING: this will be slower than running natively on MPS.

Trying to run this :

Trying to run this :

Trying to run this :

NotImplementedError: The operator 'aten::isin.Tensor_Tensor_out' is not currently implemented for the MPS device. If you want this op to be added in priority during the prototype phase of this feature, please comment on https://github.com/pytorch/pytorch/issues/77764. As a temporary fix, you can set the environment variable PYTORCH_ENABLE_MPS_FALLBACK=1 to use the CPU as a fallback for this op. WARNING: this will be slower than running natively on MPS.

pip install --upgrade torch torchvision torchaudio

ValueError: Can't infer missing attention mask on mps device. Please provide an attention_mask or use a different device.

pip install transformers==4.37.0


Test with Hibernate

We should make sure that ehcache 3 works flawlessly as a Hibernate 2LC.
All Hibernate cache modes are supported so they should all be tested: read-only, read-write, nonstrict-read-write and transactional.

I think a functional H2LC implementation would be dependent on this branch getting merged in: https://github.com/alexsnaps/hibernate-orm/tree/jsr107

Non-issue - Ehcache 3 integration in Hibernate is through the 107 module.


State the minimum version of Tableau supported

Hi,
Could you please explicitly state what version of Tableau must be used to successfully work with the Confluence macro?
Thanks,

Hi,
Yes it should work with version 8 and 9.
Roel

Thank you!
On Feb 4, 2016 6:25 AM, "Roel Gerrits"<EMAIL_ADDRESS>wrote:

Hi,
Yes it should work with version 8 and 9.
Roel
—
Reply to this email directly or view it on GitHub
https://github.com/schubergphilis/tableau-confluence-plugin/issues/4#issuecomment-179868475
.


add isEmpty to the ConcurrentQueue

What's your use case @dmgcodevil ?
It's not very safe operation in context of ConcurrentQueue because the "emptiness" can change all the time

@Avasil yes, I understand that (same with size), but as I can see the underlying queue has isEmpty anyway. I solved my problem by using tryPoll , None means the queue is empty.

"emptiness" can change all the time
yes, but all I need to know if the queue is empty at the  given moment of time

Is solution with tryPoll good enough? Implementing isEmpty should be easy but I'm hestitant to add more unsafe operators unless they are necessary to solve additional use cases

tryPoll works but awkward to use because you have to deal with a removed element. Why isEmpty is unsafe ?

Sorry for late answer @dmgcodevil, I got caught up in other things and I have forgotten to respond.

Why isEmpty is unsafe ?

AFAIK it is unsafe in similar way to tryPoll - any logic built on it can be very fragile so I wouldn't recommend it for general usage.
If it serves extra use case, we could add it. WDYT @alexandru ?

I think adding isEmpty should be fine.

I could try implementing this if you don't mind :)

@pk044 Sure, go ahead! Let us know if you have any questions


Mounting handler functions in v0.2.2

Mounting handler functions shows inconsistent behaviour when upgrading version from 0.2.0 to 0.2.2. Has this something to do with http router rewrite?
I have a project structure like following
├── src
│   ├── product.js
│   └── images.js
├── templates
│   ├── template.yaml

Problem 1
CodeUri: ../src is not working anymore. Resolving module will fail. Only workaround I have found is to move template.yaml to project root and use CodeUri: src/.
Problem 2
Invalid logs at startup
Runningsam local start-api --template template/template.yaml gets me following:
v0.2.0
Mounting images.handler (nodejs6.10) at http://<IP_ADDRESS>:3000/images [GET]
Mounting products.handler (nodejs6.10) at http://<IP_ADDRESS>:3000/products [GET]

v0.2.2
Mounting products.handler (nodejs6.10) at http://<IP_ADDRESS>:3000/images [GET]
Mounting products.handler (nodejs6.10) at http://<IP_ADDRESS>:3000/products [GET]

I'm having the same problem.
Mounting lf_listjobs.lambda_handler (python3.6) at http://<IP_ADDRESS>:3000/addjob [PUT]
Mounting lf_listjobs.lambda_handler (python3.6) at http://<IP_ADDRESS>:3000/ [GET]

sam version 0.2.11

Can you try the latest release - https://github.com/awslabs/aws-sam-cli/releases/tag/v0.3.0? I believe this is fixed. Feel free to re-open Issue if not.


add arm architectures, remove EOL node and base all on Ubuntu 18.04 LTS

Done in this PR:

Add arm32v7 and arm64v8
remove EOL nodejs 11
update latest nodejs to 15
add nodejs 14 and 15
base all on Ubuntu 18.04 LTS
switch to opencontainers labels

Can we switch to minimal opencontainers labels if you touch it anyway? https://github.com/owncloud-ci/asciidoctor/blob/master/latest/Dockerfile.amd64#L3

@LukasHirt can you give me some background about https://github.com/owncloud-ci/nodejs/commit/9c66a2aa4ee071bc9a75460a4521e7752188e3c8 ? Why was this change needed?

can you give me some background about 9c66a2a ? Why was this change needed?

@wkloucek We needed to update the nodejs and since I was touching it I was asked to update also the ubuntu version. See https://github.com/owncloud-ci/nodejs/pull/7#pullrequestreview-556272297
One thing that I'd like to move forward some day soon - https://github.com/owncloud-ci/nodejs/pull/7#issuecomment-748904042


Parse TSV files

TSV files should be parsed by default. Complexity should be similar to or less than metadata JSON files (inheritance principle does not apply to TSV files).
What to clarify:

Read only column names of TSV files or also the rows?
What format to use for parsed TSV files? - numpy, pandas or simple records returned by CSVReader?

Read only column names of TSV files or also the rows?

For participants.tsv, sessions.tsv and scans.tsv, I think it makes sense to read the whole things. They're not very large, and they include metadata that could help select files (e.g., layout.get(suffix="bold", extension=".nii.gz", gender="F")).
For events.tsv

What format to use for parsed TSV files? - numpy, pandas or simple records returned by CSVReader?

We've generally used pandas, so PyBIDS will not get heavier. I guess it's mostly a question of whether we need the dataframe operations internally in ANCP-BIDS; if not then we could use numpy or CSV and make sure that users (or PyBIDS modules that need it) have a straightforward process for putting them in dataframes if they want to use pandas.

(all) TSV files are now loaded by default, see the following unit test as an example:
tests.auto.test_basic.BasicTestCase.test_participants_tsv
I have not done any performance regression tests, but if there are significant ones, we may switch to lazily load TSV file contents.


Unicode column values are corrupted

Version

Driver version: <IP_ADDRESS>
Redshift version PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.71629
Client Operating System: Windows Server 2019

Problem description
When upgrading from driver version 1.5.9 -> 2.1.3, I saw that unicode strings were not coming through correctly. The old driver installer had a configuration item to enable or disable unicode support:

But this new driver has no such option.
I have the following test which I ran before and after the upgrade:
SELECT * FROM OPENQUERY([REDSHIFT], 'SELECT ''ぬるを'' AS UnicodeTest_openquery')
EXEC('SELECT ''ぬるを'' AS UnicodeTest_exec') AT [REDSHIFT]

On version 1.5.9, this returns the expected result:
るを_unicodetest_openquery
ぬるを
るを_unicodetest_exec
ぬるを

On 2.1.3, the column names survive, but the values are mangled:
るを_unicodetest_openquery
ã¬ã‚‹ã‚’
るを_unicodetest_exec
ã¬ã‚‹ã‚’

We were upgrading to hopefully take advantage of ZSTD compression, but we use global datasets, so this regression is holding us back.

Hi @alainbryden
Thank you for taking the time to report this issue. I appreciate your effort and will make sure it reaches the appropriate team for investigation as soon as possible.

@alainbryden
After discussing with my team, it turns out we have to extend our driver to support this feature. I will keep this ticket open for further updates.
Thanks


CDAP-15645: Added possibility choose operation type - Insert, Update, Upsert.

JIRA: https://issues.cask.co/browse/CDAP-15645
In scope of this PR:

Added possibility choose operation type (Insert, Update, Upsert) in BigQuery Sink plugin.
For operation type Update and Upsert was added possibility choose list of fields for relation between tables.

@albertshau could you, please, take a look

@albertshau I addressed all your comments, could you, please, take a look.

@albertshau I added addition change and addressed all your comments, could you, please, take a look.

style comments, otherwise lgtm. Please fix and squash.

@albertshau I made final changes and squashed the commits.

As well as a follow-up PR to make the temporary table name of the form [actual table]_[id], with a description about what it is.
If the source has similar logic where it uses just an UUID as the temporary table name for partitioned queries, we should also fix that as well.


Figure out how to create basic electron application on local machine

helpful resources:
https://www.techiediaries.com/python-electron-tutorial/
https://medium.freecodecamp.org/building-an-electron-application-with-create-react-app-97945861647c


chore: add jsdoc to api functions

This is part of the Gatsby fp-ts refactor.

Current dependencies on/for this PR:

next

PR #190

This comment was auto-generated by Graphite.


Repo Formatting

I think that the repository itself could be more organized as outlined in the Project Peer Review guidelines for Week 8, specifcally including a docs folder for all relevant documentation. As mentioned in other issues, I think it would benefit your project to have more accessible documentation so that users that have minimal experience in the topics being discussed are able to approach and use the project as a DSL. It would be helpful for the source file itself to also include instructions on how to run it as a user and for it to be useful to test as a peer reviewer.

Thanks for the ideas Chris. Further documentation will be added prior to the next peer review. Issue will be closed once more documentation is added.


Adding association window and capabilities

Modifications necessary to associate with an institution of any level. NOTE: Databases must be populated prior to function (i.e.: HighSchool and Scrimmage must be created and populated and User must be updated).

What exactly is the function of a scrimmage? Correct me if I'm wrong, but they don't seem to be integrated into the UI (other than the selection of a scrimmage on associate.php).

A couple more questions:

How will scrimmages be added to the UI? Will there be something like a leaderboard for each scrimmage?
Shouldn't we wait until scrimmages are in the UI before merging and unveiling? Or, should we merge, but take scrimmages out as an option on associate.php until they are added to the UI?
What do you mean by "another which begins to New York and Massachusetts"?

Thank you again for all of the work you've done!

A couple more questions:

How will scrimmages be added to the UI? Will there be something like a leaderboard for each scrimmage?
Shouldn't we wait until scrimmages are in the UI before merging and unveiling? Or, should we merge, but take scrimmages out as an option on associate.php until they are added to the UI?
What do you mean by "another which begins to New York and Massachusetts"?

Thank you again for all of the work you've done!

They will be RESTful endpoints which will present specific leaderboards (like SELECT * FROM User WHERE Scrimmage='New York Competition 2016' ORDER BY Score), so that is correct :)
I think it's okay to have it as part of the association (i.e.: the POST) but not the leaderboard (i.e.: the GET), since it's important to have users present in the scrimmage before displaying it. We should populate the table with the scrimmage names before allowing the associate, though. But ultimately it's up to you; I trust your decision.
Sorry, my phone autocorrected and I didn't realize. To expound: there could be scrimmages (or competitions) between states, like, there could be a scrimmage which would pit New York high schools vs Massachusetts high schools. This is possible by populating the scrimmage table with a scrimmage A which has two rows, one {A, MA}, and another {A, NY}. That way we can have inter-state competitions.

And of course, happy to help :)

They will be RESTful endpoints which will present specific leaderboards (like SELECT * FROM User WHERE Scrimmage='New York Competition 2016' ORDER BY Score), so that is correct :)
I think it's okay to have it as part of the association (i.e.: the POST) but not the leaderboard (i.e.: the GET), since it's important to have users present in the scrimmage before displaying it. We should populate the table with the scrimmage names before allowing the associate, though. But ultimately it's up to you; I trust your decision.
Sorry, my phone autocorrected and I didn't realize. To expound: there could be scrimmages (or competitions) between states, like, there could be a scrimmage which would pit New York high schools vs Massachusetts high schools. This is possible by populating the scrimmage table with a scrimmage A which has two rows, one {A, MA}, and another {A, NY}. That way we can have inter-state competitions.

And of course, happy to help :)

Thanks for the quick reply. More questions!

How will users navigate to the scrimmage leaderboards?

Will there be a new tab on the navbar for scrimmages and brings you to a page of scrimmage listings?
Will it be integrated into user.php? Maybe just like we currently have a link to your place on the global leaderboard, we could also include a link to your place on your scrimmages leaderboard.
These suggested changes make me worried about cluttering the UI.

I might be wrong, but my intuition is that it would be less confusing for users if we have the UI up on the unveiling of this feature.
Giving users a choice between a number of scrimmages is interesting, but I don't see how new users are supposed to choose between scrimmages. Why would they care whether they are in a NY scrimmage or a Massachusetts/NY challenge? Might it be better to essentially collapse the scrimmage concept into statewide, high school leaderboards?

Thanks for the quick reply. More questions!

How will users navigate to the scrimmage leaderboards?

Will there be a new tab on the navbar for scrimmages and brings you to a page of scrimmage listings?
Will it be integrated into user.php? Maybe just like we currently have a link to your place on the global leaderboard, we could also include a link to your place on your scrimmages leaderboard.
These suggested changes make me worried about cluttering the UI.

I might be wrong, but my intuition is that it would be less confusing for users if we have the UI up on the unveiling of this feature.
Giving users a choice between a number of scrimmages is interesting, but I don't see how new users are supposed to choose between scrimmages. Why would they care whether they are in a NY scrimmage or a Massachusetts/NY challenge? Might it be better to essentially collapse the scrimmage concept into statewide, high school leaderboards?

@Sydriax suggested that scrimmages are accessible through subdomains with this schema: scrimmage_name.halite.io. I quite like that idea since scrimmages are only really relevant to scrimmage owners and it doesn't clutter the UI.

@Sydriax suggested that scrimmages are accessible through subdomains with this schema: scrimmage_name.halite.io. I quite like that idea since scrimmages are only really relevant to scrimmage owners and it doesn't clutter the UI.

Apologies for the delay in reply (been a busy couple of days). Answers as follows:

The idea would be to have a RESTful leaderboards set of pages (that is to say, something like halite.io/leaderboard/level/high_school/scrimmage/ny_2017). Participating scrimmages could be viewable through the top level pages; i.e.:

Top-most page:

User goes to main Halite page
User clicks Leaderboards/Ranking (uri: halite.io/leaderboard)
User selects level
User scrimmage choices for that level are shown and filtered by state and schools

User page:

A type of user profile page gives the user the choice to see his scores in previous leaderboards and to see his current performance, with a link to the leaderboards page.

We could work on the first option for now to show a simple leaderboard accessible when clicking Rankings, to filter by a drop-down of High School or Professional. I believe we're expecting only one scrimmage for the first competition, so we can (for now) just use it as the title of the ranking page once filtered as high school rankings.
Just to note, scrimmage is a special concept, which would be advertised in the high schools themselves, and that's how the students would know to join. So they would really just be specially advertised high school competitions.
I recall that Mark, Alfred and I did discuss the subdomain schema, but we ultimately agreed that RESTful would be better as it would allow better modularity and maintain a paging subdivision (i.e.: every page in the REST URI would be accessible:  halite.io/leaderboard, halite.io/leaderboard/level, halite.io/leaderboard/level/high_school, halite.io/leaderboard/level/high_school/scrimmage, halite.io/leaderboard/level/high_school/scrimmage/ny_2017. To do this same method with the subdomain schema might look strange. But up to you :)

Great! In the interest of time, before merging, I believe that this is what is left:

Take scrimmage selection out of the UI (associate.php)
Add in leaderboard dropdown filter based on level (Professional, High School, etc)
Require reporting of level on first sign up (like we do with email)

Sound good?
I can knock out the above points pretty quickly, make the database mods, merge, and then push to production.

Yessir :) Sounds like a plan.
On Jan 3, 2017 8:35 PM, "Michael Truell"<EMAIL_ADDRESS>wrote:
Great! In the interest of time, before merging, I believe that this is what
is left:

Take scrimmage selection out of the UI (associate.php)
Add in leaderboard dropdown filter based on level (Professional, High
School, etc)
Require reporting of level on first sign up (like we do with email)

Sound good?
I can knock out the above points pretty quickly, make the database mods,
merge, and then push to production.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/HaliteChallenge/Halite/pull/359#issuecomment-270274272,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUAY9A9Br7Flst2gacsh0iG3FjrTOTiAks5rOvd-gaJpZM4LV5Xa
.

All that's left is:

Add in leaderboard dropdown filter based on level (Professional, High School, etc)

I'll push that bit by the end of today, Saturday Jan 7.


updates dockerfile

removes deprecated onbuild image
reduces image layers from 11 to 1
reduces size from 761MB to 3.74MB

Thanks! :rocket:


can you support international language?

can you support international language?
print('abc')
print('환영합니다')
abc
ȯ���մϴ�
[Finished in 0.068s]

Cyrillic is also not supported in the console for python.
Is there a way to tweak it?

sry i don't know yet


Release v0.12.2

No major changes, but had to manually bump in all the appropriate places. Please review carefully and used this as a reference if necessary.
https://github.com/gnosis/ethcontract-rs/pull/524/files

This script does the bumping for you btw https://github.com/gnosis/ethcontract-rs/blob/main/ci/bump.sh


Still hitting strictNullChekcs must be true in tsconfig

I am still hitting the error from https://github.com/ajv-validator/ajv/issues/1650 and can't pass over it.
Environment:
~ npm list | grep ajv
├──<EMAIL_ADDRESS>~ npm list | grep tsc
├──<EMAIL_ADDRESS>
~ cat tsconfig.json | grep strictNullCheck
    "strictNullChecks": true,

The ouput of npm run build:
 ~/g/a/2/c/awsiam-configrepo-aws-ppb   *…  cdk  npm run build

><EMAIL_ADDRESS>build
> tsc

node_modules/ajv/dist/types/json-schema.d.ts:1:92 - error TS1005: '?' expected.

1 declare type StrictNullChecksWrapper<Name extends string, Type> = undefined extends null ? `strictNullChecks must be true in tsconfig to use ${Name}` : Type;
                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/ajv/dist/types/json-schema.d.ts:1:151 - error TS1005: ';' expected.

1 declare type StrictNullChecksWrapper<Name extends string, Type> = undefined extends null ? `strictNullChecks must be true in tsconfig to use ${Name}` : Type;
                                                                                ~

Found 2 errors.

I am going to close comments on this issue - it is not really defined what this issue was, and the issue may be that you simply have an incorrect schema or that JSONSchemaType has limitations and cannot be used in your case.
Please submit a new issue with a full code sample from a clear repository once you've checked the following:

strict mode is enabled in tsconfig.json (or at least strictNullChecks)
TS version is >= 4.2.3
you are importing the latest Ajv version (sometimes calling npm install ajv may install the previous version because some other dependency uses it - use npm install ajv@8 and try clean install: rm -rf node_modules && npm I
check that your schema is indeed valid - that required properties are listed in "required", that optional properties have nullable: true, that "type" is set in all schemas - in many cases what was reported as JSONSchemaType issue was a user error where their schema was incorrect - it correctly shown compilation error.
Check other open issues related to JSONSchemaType - there are some known limitations.

A simple temporary workaround to use Ajv without using JSONSchemaType - it is optional.
Originally posted by @epoberezkin in https://github.com/ajv-validator/ajv/issues/1650#issuecomment-871369910

Can you explain what is the problem? I think the above comment explains it - you need to use strict mode in tsconfig (or at least strictNullChecks)

@epoberezkin the setting is already in place
~ npm list | grep ajv
├──<EMAIL_ADDRESS>~ npm list | grep tsc
├──<EMAIL_ADDRESS>
~ cat tsconfig.json | grep strictNullCheck
    "strictNullChecks": true,

Difficult to say what’s wrong with your setup. Possibly there is some other tsconfig somewhere that overrides it. Possibly, you’re importing not what you think you are importing. I would try reproducing the issue from a clean slate (when you have no other dependencies than ajv) and see at what point the problem happens as you add extra things.

Please re-open or open a new issue with a minimal setup where the issue can be debugged.

Ah - and looking at your npm ls - the minimum typescript version these type utilities can work with is 4.2.3 and you seem to have 2.0.4?

I had the same problem and the typescript version upgrade fixed it. thanks.

I still get the strictNullChecks issue even after giving "strictNullChecks" : true in my tsconfig.json file and adding nullable : true in the optionalProperties part of my schema.
I get an error message as follows
Type '{ type: string; items: { type: string; properties: { a: { type: string; }; b: { type: string; }; c: { type: string; }; f: { type: string; }; }; optionalProperties: { e: { type: string; nullable: string; }; d: { type: string; nullable: string; }; }; required: string[]; }; }' is not assignable to type '"strictNullChecks must be true in tsconfig to use JSONSchemaType"'.ts(2322)
I am using electron along with React typescript as my technologies for this desktop app.
I have provided the code for the schema as follows,
import { logger } from "../config/logger";
import Ajv, {JSONSchemaType} from "ajv";
const ajv = new Ajv()

export const connectionValidator = () => {

    interface ConnectionsModelContents {
        a: string;
        b: string;
        c: string;
        d?: string;
        e?: boolean;
        f: string;
    }

    const connectionSchema: JSONSchemaType<ConnectionsModelContents> = {
        type: "array",
        items: {
            type: "object",
            properties: {
                a: {
                    type: "string"
                },
                b: {
                    type: "string"
                },
                c: {
                    type: "string"
                },

                f: {
                    type: "string"
                },

            },
            optionalProperties: {
                e: {
                    type: "boolean",
                    nullable: "true"
                },
                d: {
                    type: "string",
                    nullable: "true"
                },
            },
            required: [
                "a",
                "b",
                "c",
                "f"
            ],
        },
    }
    const validation = ajv.compile(connectionSchema);

    if (validation.errors.length > 0) {
        logger.error("connection validation failed")
        logger.error(validation.errors.map((error: any) => error.stack))
        return false
    }

    return true;

}

@Cooper1596 you need to investigate why a different tsconfig is used to compile the code, not the one you edited.

Unless there is some other case when this error can be shown?…

Your schema is invalid though


proposal: cmd/go: add support for explicitly providing vcs metadata

The addition of -buildvcs reduces the amount of boilerplate needed to track VCS metadata in binaries, but also adds a certain amount of overhead when building in limited environments (notably, within Docker containers). In particular, one must load .git (or other VCS directory/config) into the build context, and one must install their VCS tool of choice within the docker build environment.
I'd like to propose as a lighter-weight alternative we introduce -buildvcs option to directly provide the metadata key(s).  This could take a few different forms. Three come to mind as potentially realistic:

Environment variables
-buildvcs=env means that the environment variables GO_VCS, GO_VCS_REVISION, GO_VCS_TIME and GO_VCS_MODIFIED will be used to populate vcs, vcs.revision, vcs.time, and vcs.modified, respectively.

External file
-buildvcs=metadata.json means that the file metadata.json* will be consulted, and expected to contain data in the form {"vcs":"git","revision":"860db4b0de1e5551871da59301d3cf5b41131cd6","time":"Wed Nov 1 09:14:15 2023 +0100","modified":false}
*Format, and whether an arbitrary filename is allowed, are open for debate. maybe for e.g. -buildvcs=json is better, with a fixed filename.

CSV on the command line
-buildvcs="git,860db4b0de1e5551871da59301d3cf5b41131cd6,Wed Nov 1 09:14:15 2023 +0100,false" provides the metadata fields directly. Any omitted fields are ignored.

My personal preference is probably option 1, environment variables. It's probably the most directly compatible with Docker build environments (where I most care about this), and is also probably the least ambiguous and error-prone of the three.
Both option 1 and a the fixed filename variant of option 2 have the potential to be triggered by -buildvcs=auto or -buildvcs=true as well, if the existing criteria for metadata detection are not met.

The Go toolchain itself uses VERSION files. I wonder if we should codify that, since it is already something distributors of Go are likely familiar with.

This seems useful. .git is almost always dockerignore-ed and VCS metadata in the go binary is super useful to debug stuff that's normally difficult to debug such as misconfigured CD pipelines that end up delivering the wrong binary to production.
I think environment variables only would be the best way to go, so there aren't multiple ways to do the same thing. And if one is in the context of building Dockers, one has control of the build command enough to create the relevant env vars.
I would also consider including the --decorated (at the time) - branch names and tag names (if applicable). While not super exact, it's normally very useful 🤔


pep8checker script missing hashbang ?

I got this error after running make hook and then trying to commit.
.git/hooks/pre-commit: 17: .git/hooks/pre-commit:
    Kivy Git Pre-Commit Hook to Enforce Styleguide
    ==============================================

    This script is not supposed to be run directly.
    Instead, copy it to your kivy/.git/hooks/ directory, call it pre-commit
    and make it executable.

    If you attempt to commit, git will run this script, which in turn will run
    the styleguide checker over your code and abort the commit if there are any
    errors. If that happens, please fix & retry.

    To install::

    cp kivy/tools/pep8checker/pre-commit.githook .git/hooks/pre-commit
    chmod +x .git/hooks/pre-commit
: not found
.git/hooks/pre-commit: 19: .git/hooks/pre-commit: import: not found
    from: can't read /var/mail/os.path
    from: can't read /var/mail/subprocess
.git/hooks/pre-commit: 23: .git/hooks/pre-commit: Syntax error: "(" unexpected

This is mostly because git does not know this is a python script and is running it using something else!(bash I guess)
When I opened the file and added a hashbang #!/usr/bin/env python everything worked fine.
Is this very easily solvable by a config in git? Or should there be a hashbang just in case

Hi,
Can I ask you if you managed to solve this one?
I followed your advice and added the hashbang, but I still get an error:
Traceback (most recent call last):   File ".git/hooks/pre-commit", line 33, in <module>     import kivy ImportError: No module named kivy  (1)

@yoelk thats different from the error you would get if there was no hashbang. I guess your error is because you don't have kivy installed on your system.
You should try installing and testing your change before you commit. Kivy has a pretty good Makefile so make and make install should do the job for you. But just in case check this out: https://kivy.org/docs/installation/installation.html#development-version

Well, I have kivy installed, otherwise I couldn't have ran my programs at all.
I installed it according to [this(https://kivy.org/docs/installation/installation-osx.html)
It's just that when I commit, using "GitHub Desktop", I get this error.
Are you saying I must have the development version installed in order for pep8checker to work?

@yoelk no any kind of kivy installation would do. I'm not an OS X user, so I'm not sure how to properly import kivy in different environments. You could ask someone on the IRC channel though, lots of OS X users there who will be able to help you.

Thanks
On Fri, Feb 26, 2016 at 3:47 PM, Meet Udeshi<EMAIL_ADDRESS>wrote:

@yoelk https://github.com/yoelk no any kind of kivy installation would
do. I'm not an OS X user, so I'm not sure how to properly import kivy in
different environments. You could ask someone on the IRC channel though,
lots of OS X users there who will be able to help you.
—
Reply to this email directly or view it on GitHub
https://github.com/kivy/kivy/issues/3893#issuecomment-189309765.

Fixed in https://github.com/kivy/kivy/commit/8644e4dc09a43846f75f0eaac7047c5c1311c890.


Can't preview progress bar properly

Hi!
Is there any way of doing the requests with the processed rows while the rest of the file is being processed? I want to obtain a similar effect to this progress bar. Mine just gets completed instantly and then it takes some time to finish the processChunk function.
https://github.com/beamworks/react-csv-importer/raw/59f967c13bbbd20eb2a663538797dd718f9bc57e/package-core/react-csv-importer-demo-20200915.gif

I'd check the return value of your dataHandler function (processChunk is deprecated). If you return a promise that resolves when you finish processing the rows, then the importer progress bar will wait for that to complete.


Switching to unique_ptr for logger

@jasonsandlin,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Build error while building with Clang 7 on Ubuntu 18.04

I am trying to build AMQP-CPP with Clang 7 on Ubuntu 18.04 but unfortunately I am running into these sort of errors:
[  6%] Building CXX object CMakeFiles/amqpcpp.dir/src/array.cpp.o
In file included from /home/kwos/Work/third-party/AMQP-CPP/src/array.cpp:7:
In file included from /home/kwos/Work/third-party/AMQP-CPP/src/includes.h:57:
/home/kwos/Work/third-party/AMQP-CPP/include/amqpcpp/table.h:259:13: warning: conversion function converting 'AMQP::Table' to itself will never be used
    virtual operator const Table& () const override

Since I usually build my projects with -Wall and -Werror, this actually stops the build and unfortunately this warning cannot be disabled with a pragma.
Steps to reproduce:
git clone git@github.com:CopernicaMarketingSoftware/AMQP-CPP.git
mkdir build
cd build
cmake -DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7 ..
make -j

We are aware of this warning. It might be a compiler-bug: https://bugs.llvm.org/show_bug.cgi?id=28263. It is therefore recommended to not build with the -Werror compiler flag. If you know a way how we can solve it, your input is very welcome. But we want to keep the behavior of the library that AMQP::Table objects can be accessed using [] operators.


Container directories: installation and read writeable

Currently the installation path picks the first container dir in the configuration. This implies that this one is writeable and not very intuitive.
Extend the configuration with a writeable container dir that is used for the installs. This may be a single one? The list of ro containers dirs might remain.

I think it makes sense to have a single writable path for installations, everything else will be too complicated.
Not sure why we need the feature to have multiple registries. What about the uninstallation? for that we also need write permissions on the folder.
would only make sense if we explicitly want to disable messing with some of the installed applications.

Superseded by #174


add authToken class

ticket
changes authToken to be an object for better usage

@Ifropc I was planning on changing the code here to not include account as an arg like we talked about, and just always pull from the authToken.
Though I was thinking if an anchor doesn't use sep10 auth then they'd need an account arg. Do you think it's worth considering that case?

@Ifropc  ok cool, removed the unneeded account arg https://github.com/stellar/typescript-wallet-sdk/pull/81/commits/61cec1e6c87f322d0553c170454e489a664048f5
also can you approve here? 🙏 small update to the docs:
https://github.com/stellar/stellar-docs/pull/285


[BEAM-1148] Port PAssert away from Aggregators

Still running into trouble with the direct runner, but unit tests in other runners are passing.

Run Spark RunnableOnService

Coverage decreased (-0.09%) to 70.052% when pulling a27e24352aed33fe88e05bfbc129ca48add30053 on pabloem:play-passert into de36e8398ecb37b9826175c4723f94d127e63d03 on apache:master.

Coverage decreased (-0.09%) to 70.044% when pulling 091785089bdd974509e04988bbf11d7ed9d53ef5 on pabloem:play-passert into de36e8398ecb37b9826175c4723f94d127e63d03 on apache:master.

Coverage decreased (-0.3%) to 69.856% when pulling b6af5429e2f6dcca7dec5bc6429ddb0d1a496d72 on pabloem:play-passert into de36e8398ecb37b9826175c4723f94d127e63d03 on apache:master.

Run Spark ValidatesRunner

Coverage decreased (-0.3%) to 69.859% when pulling d6cdee3bca90ad3d4e7064d891f0136c4567409e on pabloem:play-passert into de36e8398ecb37b9826175c4723f94d127e63d03 on apache:master.

r: @bjchambers
Specifically, I'm looking for comments on my changes to PAssert.java, and to the SuccessOrFailure, PAssertionSite, and SerializableStackTraceElement within that file. Thanks.

hmmm Jenkins is ded

Coverage decreased (-0.3%) to 69.855% when pulling 8ee6b7ddcafe4a60527c49d0667efb75a3629b03 on pabloem:play-passert into de36e8398ecb37b9826175c4723f94d127e63d03 on apache:master.

cc: @aviemzur

Coverage decreased (-0.3%) to 69.826% when pulling 83bad83ed8b587aff99af0d5bf4bcd4afe4242bb on pabloem:play-passert into de36e8398ecb37b9826175c4723f94d127e63d03 on apache:master.

Run Flink ValidatesRunner

Coverage increased (+0.9%) to 70.668% when pulling 3e3b510875655e5e87d4014466663d942b1d5a1a on pabloem:play-passert into 810db7f990a9e39179f3613347ab5cde7e7c650c on apache:master.

Coverage increased (+0.9%) to 70.681% when pulling 09923b347993a50c5d2f13d4e1fe686d162fbefe on pabloem:play-passert into 810db7f990a9e39179f3613347ab5cde7e7c650c on apache:master.

Good catch Aviem. Added those checks.

Run Spark ValidatesRunner

Coverage increased (+0.9%) to 70.685% when pulling 5d2b0d49aa28d03217c75af820d960e4415dac92 on pabloem:play-passert into 810db7f990a9e39179f3613347ab5cde7e7c650c on apache:master.

Run Flink ValidatesRunner

Run Apex ValidatesRunner

Run Dataflow ValidatesRunner

LGTM on my end.
Dataflow tests are broken for about a week now.
@bjchambers - All good?

LGTM
Looking at the Dataflow runner ValidatesRunnerTests it looks like things passed, and then Jenkins failed. So this should be good to mergee.

Can you rebase and add a more complete PR description? Suggest something like the following based on your original e-mail:
[BEAM-1148] Port PAssert away from aggregators

Separates evaluation of the assertion into a transform that outputs `SuccessOrFailure` from the reporting of failures. The latter happens in a separate composite transform making it possible to override the implementation.

Introduces a default implementation that uses metrics to count the number of successfully executed assertions as well as the number of failing assertions.

You got it!

Coverage increased (+0.03%) to 70.162% when pulling bbe460df06446d88f2ba1cb23525faded72400cc on pabloem:play-passert into 3ef614c72d24f44a8cf463040a2bcf17b9445bc8 on apache:master.

Coverage increased (+0.009%) to 70.288% when pulling c9271d02fa0420aa332613715208210ceb35f12d on pabloem:play-passert into ea0f37db76b18efa3b7d145e0168e3d3e4bede28 on apache:master.


History and statistics don't make sense on section-like pages

So don't show them.

This is also fixed by 3441aef.