Add Alec as maintainer

I think we have the same issue as with Marc last time, probably caused because the contributors page has Alec's old username. I am about to go on leave, @agriyakhetarpal, can you take a look (is not urgent)? Otherwise I will pick it up when I am back.

@brosaplanella I put up a PR to fix his username in PyBaMM

@kratman @brosaplanella there appears to be one too many a's here, that could also be causing an issue. Thanks!

It would be nice if there could be a way for @all-contributors to sync GitHub usernames. Otherwise, we could consider returning to using the GitHub API, which we didn't really have a problem with, except that it wouldn't respect the sorting we have and wouldn't show, well, all contributors.

@kratman @brosaplanella there appears to be one too many a's here, that could also be causing an issue. Thanks!

Sorry! I thought I copy-pasted it haha

The script seems to add Alec to the contributors list, rather than the maintainers. Looks like a new bug :D

Otherwise, we could consider returning to using the GitHub API, which we didn't really have a problem with, except that it wouldn't respect the sorting we have and wouldn't show, well, all contributors.

I have been wondering if the all-contribs bot is more trouble than it is worth

It is probably out of date with what people actually contribute
Links and usernames don't get updated
It has caused issues in our website and with Lychee

@agriyakhetarpal I repeated the typo above on pybamm. The correct username is waiting to automerge. Not sure how the linkage works in this repo, but it is not on the pybamm side yet

Otherwise, we could consider returning to using the GitHub API, which we didn't really have a problem with, except that it wouldn't respect the sorting we have and wouldn't show, well, all contributors.

I have been wondering if the all-contribs bot is more trouble than it is worth

It is probably out of date with what people actually contribute
Links and usernames don't get updated
It has caused issues in our website and with Lychee

Yeah... with all its flaws, I feel it's still nice to keep, solely because of their initiative to recognise non-code contributors. We can still work around the broken links and website issues because they are fairly low-maintenance for me. Raising a feature request to keep the list updated would be quite nice.

@agriyakhetarpal I repeated the typo above on pybamm. The correct username is waiting to automerge. Not sure how the linkage works in this repo, but it is not on the pybamm side yet

Thanks – we do use the file from the develop branch here:
https://github.com/pybamm-team/pybamm.org/blob/d6defc7bcf228369f6377461e3ac78b5ccf52967/scripts/generate_teams.py#L29-L39

Working now: https://deploy-preview-225--pybamm-developer-preview.netlify.app/teams/#Maintainers


Tool tip not gone in mobile when touch on the screen

I used hint with bootstrap dropdown menu and It worked fine in desktop mode , but when I have tested it with my cellphone browser (chrome , safari) or my tablet I see a tool tip still on screen .
scenario : when I press on button(dropdown button or href link which appear bs menu) hint act as a hover and bootstrap menu dropped bythetime I touch on button again bootstrap menu closed but tool tip still on the screen , when I touch on free space on screen the tool tip still alive on screen .

The tooltip should have gone away on clicking the free space. A small test case for your scenario on CodePen or somewhere would be really helpful in debugging this.

I prepare a CodePen Case for you ,
https://codepen.io/babakjahangiri/pen/EyVJLj
But I can not call this as a bug , I can say this is some unwanted behavior according my preferences .It would be good if the hint.css has the item which we can manage the lost focus behavior in such as these case which I show in the example .. please open the example just in mobile browser not in desktop machine.


Updating the text for OIDC Provisioning

The text must have been changed since the last update to this doc:

@owinoakelo
Can you review the proposed changes?
IMPORTANT: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
To enable correct assignment of PRs, please update the author metadata with your GitHub alias in a new PR in the private repo. Thanks.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@ttorble , please assign to @ZollnerdMSFT  to review and approve

#assign: @ZollnerdMSFT
Thanks @owinoakelo and @ZollnerdMSFT

#sign-off


Slow motion is choppy

http://phaser.io/examples/v2/time/slow-down-time
NOW When you set high slowMotion balls will wait X frames to move Y pixels.
EXPECTED move ball Y/X pixels every frame.
init commit = phaser 2.6.1
Later commits I fixed problem by changing phaser.js. I changed game.updateLogic() and game.update().
https://github.com/noobshit/updateFixed
I think above change in updateLogic would fix issue with physics https://github.com/photonstorm/phaser/issues/2602
Sorry for using phaser.js but I don't know how make phaser src work with index.html. :(

For my Arcade Slopes demo I discovered a workaround for this. Still doesn't seem to do what it says on the tin, so I'd personally like to see this improved too. That way you just tweak time.slowMotion for instant smooth bullet time. :)
this.time.slowMotion = features.slowMotion;
this.time.desiredFps = 60 + (features.slowMotion > 1 ? features.slowMotion * 20 : 0);

Thank you for taking the time to open this issue. However, official support for Phaser 2 has now ended as we focus on preparing Phaser 3 for beta release. In a bid to keep the project tidy, and avoid confusion, we are closing all v2 related issues.
This does not mean your issue won't be looked-at. In November 2016 the Phaser CE (Community Edition) project began. The aim of Phaser CE was to allow the community to continue v2 development. Since then it has gained significant traction, with many updates and releases.
If you are still interested in having your issue investigated we strongly recommend testing the latest Phaser CE release. And only if the problem persists, opening an issue on the Phaser CE repo.


PyPI name clash

Hiya Will, I noticed there is now https://pypi.org/project/henry/ , which is an archived project https://github.com/josephaxisa/henry :/
I have one PR for your henry, to get it going a bit better.  However, as this tool is Python 2 only, and there are a few other similar tools that are Python 3 compatible, maybe this isnt worth pursuing...?
The two others with offline-ish capabilities that I have found and partially investigated are

https://github.com/jreinhardt/handkerchief/ has py3 support, but not yet released. https://github.com/jreinhardt/handkerchief/issues/34
https://github.com/dogsheep/github-to-sqlite looks good, except I ran into https://github.com/dogsheep/github-to-sqlite/issues/16

I wrote this before a work week, but never intended to release it. It was just a cli tool I used for a while. I haven't used it in a long time.
On the one hand, I'm pretty busy and I don't think I want to start maintaining this for realz.
On the other hand, it's small, so I bet we could get it working with Python 3 without too much work.
We could rename it so it doesn't clash with other projects. Do you have any suggestions?


improves time to build user->quota-fn by aggregating queries

Changes proposed in this PR

improves time to build user->quota-fn by aggregating queries (gives around 4X improvement in my tests)
improves time to build user->quota-fn by aggregating count quota query (gives another 3X to 5X improvement in my tests)

Why are we making these changes?
create-user->quota-fn (used in rank-jobs) makes lots of individual queries against datomic to build the user->quota-cache. Improve the execution time of create-user->quota-fn ends up improving the time spent ranking jobs.

@scrosby addressed your feedback, please review when you get a chance.


Style widget

Hello,
I believe it would be beneficial to introduce additional input parameters to allow for further customization of the widget, particularly for overriding the general style. In my case, while utilizing the 'custom-dropdown' widget, I've encountered an issue where it doesn't visually integrate well with the text input theme I have already defined. It appears less representative of the intended aesthetic, especially in a dark theme context.
Moreover, I attempted to alter the filled color of the dropdown, but the changes were not reflected. This limitation restricts the ability to match the dropdown with my application's color scheme.
I am convinced that your widget could achieve greater success if it incorporated these features, providing developers with the flexibility to tailor its appearance more closely to their app's design.
Thanks in advance.

yes just crap
no style nothing| he should allow developer to change the colors
in my case im not able to change color of search box

your library awesome please try to provide the customization of that UI so that it can match the existing projects

Hey guys @moabdi @ibrar9523 @samad5353
This now available in 3.0.0. You guys can check, Thanks 👍


support network shutdown

This change does two things:

LinkDevice.Close() now also closes the tcp forwarder listener.
Adds Shutdown() to Network:

This uses stack.Destroy() which should destroy all endpoints. This should also terminate tcp forwarder listeners, as the connection now given in RegisterConn is wrapped with a closer that closes in the same way as LinkDevice.Close().
Cancels a parent context. This context is now passed to a few of the subsystems (serveDNS4Server, setUDPForwarder, setTCPForwarder)

I wanted to be able to create multiple network stacks within the same application but it wasn't possible to cleanup a stack after it was used.

@Code-Hex Any thoughts on the direction of this?
Thank you

@saracen Thanks and I'm sorry I missed this!
I'm checking


q2 quantization support

Hi there. The llamacpp is now supporting q2 quantization. Is there any chance this comes to ctransformers?

Hi, I added it few hours ago in the latest version 0.2.8

Thnx bro. This is really cool.


Python None becomes string "None" not JSON literal null

Hello!
I am using unflatten_list() and I am running into a case where the Python None object is being serialized into the string "None" rather than the JSON literal null.  I am using this in a script that extracts data from etcd3 to generate a JSON file for internal processes.

  Sorry, looks like this was where I was loading my data from was munging it up and my logic to fix it was the bug not your logic; my apologies.  Other bug is still valid.


View Provider: Selection of identifier should be improved

At this time I use all possible identifiers to search for the input given by the user, but that makes no sense. It should be only identifiers that belongs to providers, I think.
So we need a way to search for identifiers of a given entity by adding a new parameter for the rest endpoint identifiers - entity as string - or, I think the better alternative, support a method to find identifiers in the context of the entity i.e. /rest/providers/identifiers.
In contrast to /rest/providers/42/identifiers the request to /rest/providers/identifiers addresses all identifiers that belongs to providers.

I don't think I fully understand this one. Can you specify possible request parameters as well as an example of a result payload you would expect?


Lectio is password protected

Do you have plans to update LecToCal following Lectio's move to password-protected schedules?

It's a great question.
I'm currently unsure if I should proceed to try to solve this problem.
The issue is, as Lectio has no API for me to use, the one way I can see to make this work, is to ask people for their Lectio login details, and pass that on into the script.
However I don't feel comfortable asking people to provide me with their login details.

Perhaps make it possible for users to save or pass the credentials as plain text?

Hi Hanse00. - and other python clever people.
I also have the problem with the password proteced Lectio. Since I work 2-3 places I am greatly depended on my calender and not having lectio in my Goggle calender (and thus on my phone) makes me weep every day!!  o_o
I have/had the working version of a script, usually I open cmd as administrator and then run a line of program. I know absolutely nothing about python - but can open and read a script and "pseudo code".
So, if parsing our user and password through text from some source is to much work, perhaps they can be a part of the obligatory arguments to this line?
Or, perhaps a new "run" file can contain dummies, like %write your user here% and %write your password here% and then contain the old call, {mine is:  lectocal.run (school_id) teacher (id)} somehow? Just if a brand new script file is easier to write for LecToCal master.
I think that even I, at my modest level of knowledge, with a "read me file" to help could edit the script with my own information and then make it run again.
I am motivated to try several times until it works!!!  ^_^
However, editing the script to work with the new changes are simply more than I can imagine I could ever learn.
Can enyone help? With a sort of solution? :) :) :)
Or a brand new lovely LecToCal package? <3  <3
Regards,
Charlotte

Hey Charlotte and Jakup,
Thank you for your comments.
I want to make one thing perfectly clear for you, and anyone else who might bring this up:
The problem is not technical, but ethical.
You've both outlined possible strategies for LecToCal to collect people's Lectio credentials, and use them on their behalf. However no matter how we go about this, via a text file or by entering the details directly into the parameters of the script, this implies the script must have your Lectio credentials in memory at one time or another.
If I @Sobuno or I were unethical people, we could find ways to abuse this, and compile a list of your Lectio login details.
Whilst I appreciate you may trust me with this information, the fact of the matter is you shouldn't, and I wouldn't. Due to the design of Lectio there doesn't seem to be any alternative to this solution.
This is then the dilemma I am left with:

Accept that LecToCal cannot work any more, due to the recent changes.
Knowingly ask people for their Lectio credentials, perpetuating a dangerous practice for people to share their credentials with 3rd parties.

Currently I am leaning towards the first option, as much as I understand it wouldn't be great for any users of the software. Unless something drastically changes my mind, I don't think it would be morally defendable of me to do option 2.

Thanks for commenting on this
I don't quite follow this because the software is open source and everyone can read the code. So there is no way for You to secretly collect any data.
The user is responsible for their own privacy and security when running an open source script
Maybe it is not ideal to sore the login in plain text or in bash history but anyone should be sure to keep their system private anyway. And without api it's definitely the best option for me and the other users if I understand the comments right

the software is open source and everyone can read the code.

Whilst you're correct that the code is available to be read here, you have no guarantee that the package on pypi actually contains the code in the repository. I could easily inject some bad code before publishing a build.
Of course if you download the code and build it yourself, I couldn't do that. However I think it's safe to assume that the majority of users, do it the way that's easiest.

The user is responsible for their own privacy and security when running an open source script

I'm not sure if I agree with this. Ideally you should know what you're doing true, but as the publisher of this product, I believe it's ultimately my responsibility to ensure it's secure. As with any other digital or physical product, you may happen to know something about it, but the dealer is accountable for not selling you unsafe products.

[...] it's definitely the best option for me and the other users if I understand the comments right

You're correct in your understanding. As I see it there's a terrible solution, or no solution. There's no good solution here.
I'll have to think about it a bit more, before I can decide if I want to move forward with this.
As the code is open source, anyone else can of course make a fork and update it themselves if they'd like.

Hi Hanse00 -and other readers
I am sorry if I by this next comment show my lack of understandig but -why would the package be unsafe? I mean, I have python on my computer and I run the script on it here. As far as I know, i have downloaded the packages and they are also "here" -(I have tried reading them to see if I understand how the magic works..)
I get that "bad people" could do "bad things" by hiding stuf in the package, but then the users would spread the word, maybe I gues. But this would bring stuff to my computer, not transport data out?
What i dont get is, that if I edit my version of the script I run on my PC, to contain hard-coded my username and password, could it not be done in the same manner as my google information? I mean, the authentification makes a json file, this saves my user-password information on this pc, does it not?
This is -for me- much more "dangerous" than my Lectio information, that is just my job, google documents my entire life ;) ;)
Ok, maybe I dont know enough, but I do know that allready now I have been late to my other job 1 time, late for a class 1 time (and the teacher I asked to cover me also forgot, we dont have a working calender system or alert or whatever, no google, no outlook, no nothing just brains and papir.. And since I loose both during the day I always use a calender, so now I am lost) and they called and asked "where are you? why are you not with your students?" and I have missed my dentist appointment 3 times in a row, and making new ones with doctors, whatever, weeks in the future is just a mess.
I always end up choosing a monday in a week WITH lectures instead of without, the scripted transportation of Lectio Schedule was not the ideal solution, but it helped me alot every day. Why Macom or Lectio does not work with "export to calender" is a mystery to me.
So I hope that somehow the LecToCal can work again, and I guess I am willing to take the chance with my information.
Perphaps what should really be done was putting more pressure on Macom? Lectio is a really poor program.
Regards Charlotte

I've uploaded a modified version of the lectio.py here. It can be used to login with LecToCal. Use at your own risk.

I made modified version where you enter a cookie (copied from a browser). This has two security advantages:

The cookie doesn't contain the users password.
When the session ends (e.g. when the user logs out) the cookie can no longer be used.

It has a few of obvious disadvantages:

You can't make a cron job (at least not easily).
There are additional steps: opening the browser, logging in, and copying the cookie.

I can share the code, if you would like.
Regards, Jens

Fantastic news! For me automatic sync with login stored in text is preferable, but nice that so many options are suddenly available

@jensjacobt do you have any idea how long it takes for the cookie to expire if you don't actively log out?
I think the most secure option here might be for the script to automatically open up the login page, if the cookie isn't present, let the user log in, and then grab the cookie to save together with the OAuth2 credentials. That way we can prevent the user providing the credentials directly to the script.

@charlotdk I want to address a few of your comments:
You mention your Google account credentials being "unsafe".
Google provides a mechanism named OAuth for this purpose. As you might have noticed the first time you use the program, you get directed to Google's website to log in, and give Lectocal permission to access your calendar. This means the token the script gets, doesn't contain your password, it only contains a "secret" which must be passed to Google, every time I want to update your calendar. I could for example not use this same secret, to open up your Gmail, Google Drive, or post on Google+ on your behalf.
The problem is that Macom doesn't provide any similar mechanism for Lectio. So it's all or nothing, as soon as I have your password, I can do anything.
This is further a problem because many people unfortunately use the same password for many services (Ideally you should use a Password manager like 1Password, KeePass, Dashlane, or similar), so chances are that if I collected people's Lectio passwords, I could also gain access to their Google account, their Facebook account, and maybe even more.

[...] I guess I am willing to take the chance with my information.

I need to drive home a point about this opinion, because I've heard it from multiple people.
Frankly it doesn't matter if you're willing to take the chance, I'm not.
If something did somehow go wrong, I could be held legally liable for any damages.
The whole point of having password protected systems, is about liability from an organizational perspective.
Because only you know your Lectio password, your school can hold you accountable for anything that happens on your account. The moment you share it with me, there's now ambiguity, because you could just claim "I didn't do it, it must have been that script".
I know the IT industry has taught users bad habits over the last 20 years, with IT support staff asking people their passwords, so they can look into an issue on your behalf. I work in that industry myself, and that's what has lead me to the very strong opinion that you should never ever under any circumstances share your password with anyone.
I'm sorry that that opinion is inconvenient, but sometimes you have to choose your battles, and I've decided I will not be a part of this terrible industry practice which needs to stop.
It looks like @jensjacobt might be onto a path which might allow the script to work again, without you needing to enter your password directly into it. If we can figure something out along those lines, I will happily work on making that happen, but I will not be a part of teaching people to indiscriminately sharing their passwords with 3rd parties.

Perphaps what should really be done was putting more pressure on Macom? Lectio is a really poor program.

I absolutely agree that Macom needs to give people access to their schedules in whatever way works for them, but it looks like they have close to a monopoly status in Denmark, so there's not much reason for them to listen.
You're more than free to contact them if you're interested, their details can be found at http://macom.dk/publish/da/lectio.htm

Hi Hanse00
Thank you for your reply to my comment, and also for the explanation of "how stuff works". I am sorry if my "take the chance" comment seemed like indifference, I am careful with my information, and the OAuth package uses the json file in a way so you do not get my information. This is what I mean with "here" ergo "on my computer and not going out in the data abyss". Python is also on my computer, and the script with my information would be here.
I had the idea that the Lectio login could be done in the same manner (you say it is not technically possible, Lectio is rather limited in function...). So it was not a "you can have my information - and I take the chance" but every time one uses a browser and type a login, or download stuff from the internet, you do take a risk with "bad people doing bad things". I could have some virus or worm reading my data, and the more software, auto-login, files saved with my password etc I use, the more "risky behavior" I show - or so I have come to understand.
And also, I agree with the bad habits people have with their IT support - and I never give away my login (but if someone has somehow sniffed it out, I wouldn't know).
People seemed supportive of the LecToCal package and so I tried it and it made my day easier. But, I am not software-savvy enough to understand what problems the new changes give, or "how risky" the "risky fix" is, compared to "how risky the original fix is", but I am happy to see that solutions are on the way, that does not set my password at risk (and, this password is only my password for Lectio ;) - no reuse. I try :) )
Yes, unfortunately Macom has a practically monopoly status, and this sadly means that thousands of people (all teachers, staff, and students) everyday must suffer this and other inconveniences. For me, working two part-time jobs it is complicated. I do regularly contact Macom and point out the lack of an actual calendar function, but the reply ranges from "this is a new complaint" to "not a priority right now" and, for some weird reason, some of the Lectio schedule appointments do show up in a calendar, at my school it is Outlook, only it shows up 3 times duplicated, making a week-overview impossible and the regular classes do not appear there.
Basically, it is a mess...!
Lectio makes me cry pretty much every day (some times in anger...).
And with all the problems and extra clicks and cumbersome file-handling etc we end up spending so much time on it - time that I could have spent teaching someone something useful.
Thank you all for your comments and help. I will stay tuned.
Regards
Charlotte

Thanks everyone for your input.
I had a look over the Google Cloud Console, which has some built in metrics for the program's use of the Google Calendar API.
Over the last 30 days, calendar.calendarList.list has been called 5,461 times.
This method is called exactly once during each run of the script, which gives us a pretty good idea of how much it's used.
That's significantly more than I would have expected.
With that information at hand, I think it's worthwhile trying to keep the system alive.
It seems like a lot more people would notice if I didn't, than what I would have expected.
With that in mind however, it seems like keeping this system working might become somewhat of a battle against MaCom in the long run, and I'll have to make periodic updates to keep it working.
However for me to be able to dedicate significant time to this project, I will have to find a way for it to make sense financially. I'll have to think a bit about what I can do in that regard.

(Hi @Hanse00 . Sorry if you feel this reply is inappropriate for the thread. Feel free to delete if you think it crosses the line of good internet behaviour.)
@charlotdk (and others). I use (and administrate) another tool, build with Node.js. You can find it here:
https://github.com/soeren-b-c/lectio-skema-til-.ics-kalender
and it works right now (for me).
It opens up a webserver that you can query for your schedule, and it will give you an .ics file.
How you use that file afterwards is up to you, but you could upload that file manually to your Google Calendar. I personally have an automated setup, which is outlined in the documentation.
It is an option if you need it. If you can get LecToCal or another tool to work for you, that's cool too.
Cheers
Søren

@jensjacobt do you have any idea how long it takes for the cookie to expire if you don't actively log out?

The cookie takes a least 50 minutes to expire, if you don't load another page. However, the cookie is reset every night, so you can't have the script running automatically for more than one day.
I've made a version of the script that lets you login via command prompt (hidden password similar to ssh and so on) and saves the cookie to disk. This uses the flag --login. The script can then update the schedule for the rest of the day without user interaction (but via cronjob).
@Hanse00, let me know, if this has interest.

Thanks @jensjacobt that seems quite interesting. Is your script available on GitHub or elsewhere?
I see that there's a need to continue developing this tool for the time being, however as I am no longer an active participant of the Danish educational system, I don't have any lectio credentials of my own that I can test with. I will need to find someone to work with, who can help me actually test the functionality of the script, otherwise I am more or less coding blind.

Hello Hanse00
I am still struggling with not getting any of the fixes to work.
So, if you need a way to test your new build of LecToCal - the old one actually worked and me and some of my colleagues used it, I would like to help.
I cannot just give you my user-and-password however, but if we get a private contact somehow I could lent you my information for temperate use.
I have only "been in the system" for a short amount of time, and it has only been closed (password protected) for a few months, so I do not see a big problem with this. Though I do not do it lightly :)
The problems of not-having-a-calendar are much more clearly and disturbs me every day, so if you have or soon have a fix to test, I am your man (unisex).
Before all of this broke down I was trying to change the 4 weeks to something more like 8 or whatever, since I still try and work 2 jobs (it is not going well). But my python-skills are poor and some find all my questions annoying... GG .
Also, if anyone has a fix that works or can tell me how to do the "chubby1968 commented on 27 Feb" fix (it runs for me now, that I use an ANSI version of Lectio.py but nothing appears in my calendar) I am still looking.
The whole thing of replacing with a cookie etc to make it safer seems also as something useful to learn, but, since NOTHING appears in my calendar I am saving it for level 2 - after something that works...
Has anyone in here got the "new quick-n-dirty Lectio.py" to work for them? Is there a trick I simply do not understand?
Best
Charlot

I have now put in a pull request with the updates I talked about. This uses some of the code from chubby1968 but it doesn't store the password. It is working from my command-line. My short comments are these:

Add backoff: To avoid exceptions from due to ?timeouts? from the Google Calendar API.
Add login with password: The new flag "--login" takes the username from Lectio. If this flag is set then the user is asked for his/her password in the typical command-line way.
Add cookie handling: Upon succesful login the cookie is save to file. The calendar can then be updated without the "--login" flag until the Lectio session expires. The "--keepalive" flag is designed to be run such that session does not expire. It sufficient to run the script with "--keepalive" every 50 minutes, however, the session will expire every night.


endpoint: make "Regenerating endpoint" log Debug level

If frequent regenerations occur for a lot of endpoints, a lot of logs are
generated, which is not suitable for production environments. Reduce the log
level accordingly to Debug level.
Signed-off by: Ian Vernon<EMAIL_ADDRESS>

This change is

Coverage increased (+0.02%) to 43.024% when pulling 0f420be148b2b0ad1512ebe1bcf33b41298bec9d on pr/ianvernon/regenerating-log-to-debug-level into c2ca3a15cf163d2d2e36144ed45b96bf02841206 on master.


1376 Use config for Cutter API calls

Fixes issue #1376 .  Uses the advanced configuration to set a URL that will be used when cutter tries to make an openurl call. As these calls happen internally by default, this defaults to localhost.

Looks good to me!

I see 2 approvals and looks like it's been tested, so merging.


onFileUploadSuccess: Failed to retrieve FpFile from the response

Hi,
The onFileUploadSuccess is never called after onFileUploadProgress gets to 1.0 instead an there is an error shown: "onFileUploadSuccess: Failed to retrieve FpFile from the response".
I'm using the 4.0.2 version of the android SDK.

You're getting this error because you're not setting an API Key.  In your activity's onCreate() method would be a reasonable place to do so.

I'm setting the key in onCreate method but after I checked it there was a typo in key.

Yep that would also do it. You're welcome.


Update _helpers.tpl

Fix Typo: change borker to broker in line: 6
Which problem does the PR fix?

What's in this PR?

Checklist
Please make sure to follow our Contributing Guide.

Before opening the PR:

[ ] In the repo's root dir, run make go.update-golden-only.
[ ] There is no other open pull request for the same update/change.
[ ] Tests for charts are added (if needed).
[ ] In-repo documentation are updated (if needed).

After opening the PR:

[ ] Did you sign our CLA (Contributor License Agreement)? It will show once you open the PR.
[ ] Did all checks/tests pass in the PR?

 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 @drpdishant for the PR.
It should be replaced everywhere the named template is used.
Also, please sign the CLA.

Closing this PR since it's fallen out-of-date with main. feel free to open a new PR with the suggested changes

Fixed in: https://github.com/camunda/camunda-platform-helm/commit/d43d88b7a9d5a98027e690e01d49163fd7571719


request: update to bevy 0.4

https://bevyengine.org/news/bevy-0-4/

Updated! The latest commit implements all changes to bring it up to date, and I've updated the Tutorial to have the changes too. https://caballerocoll.com/blog/bevy-chess-tutorial


Make all components work on iOS

There seems to be some Android only components used, these need to be wrapped to show ones that work on iOS if iOS.

[x] Search and cancel search buttons
[x] Toast displayed on long press of emoji

Instead of showing emoji long press info in toasts, we'll use tooltips instead, closing for: https://github.com/thinkproductivity/emoji-mart-native/issues/32


Magellan requires sudo permission to run test cases

If we dont run our test cases with higher privileges such as root , we keep keep getting these errors.
Magellan 8.8.4
Will try to load configuration from default of ./magellan.json
Loaded configuration from:   wip/workspace/automated-tests/magellan.json
Magellan is creating temporary files at: wip/workspace/automated-tests/temp
Sauce configuration OK
Magellan-nightwatch test iterator found nightwatch configuration at: ./conf/nightwatch.json
Scanning tests for test files ...
Found 4 test files in tests

Running 4 tests with 3 workers with phantomjs

Found selenium HTTP server at port 12000, port is in use.
Found selenium HTTP server at port 12003, port is in use.
Found selenium HTTP server at port 12006, port is in use.
Found selenium HTTP server at port 12001, port is in use.
Found selenium HTTP server at port 12004, port is in use.
Found selenium HTTP server at port 12007, port is in use.
Found selenium HTTP server at port 12002, port is in use.
Detected port contention while spinning up worker:
  in use: #: 12000 purpose: mocking port
  in use: #: 12001 purpose: selenium port
  in use: #: 12002 purpose: generic
Found selenium HTTP server at port 12008, port is in use.
Detected port contention while spinning up worker:
  in use: #: 12006 purpose: mocking port
  in use: #: 12007 purpose: selenium port
  in use: #: 12008 purpose: generic
Found selenium HTTP server at port 12005, port is in use.
Detected port contention while spinning up worker:
  in use: #: 12003 purpose: mocking port
  in use: #: 12004 purpose: selenium port
  in use: #: 12005 purpose: generic
Found selenium HTTP server at port 12012, port is in use.
Found selenium HTTP server at port 12009, port is in use.
Found selenium HTTP server at port 12015, port is in use.
Found selenium HTTP server at port 12013, port is in use.
Found selenium HTTP server at port 12010, port is in use.
Found selenium HTTP server at port 12016, port is in use.
Found selenium HTTP server at port 12011, port is in use.
Detected port contention while spinning up worker:
  in use: #: 12009 purpose: mocking port
  in use: #: 12010 purpose: selenium port
  in use: #: 12011 purpose: ge

any updates?

The errors you see above either suggest that processes (from previous runs) are being left behind or your user doesn't have the ability to use these ports. Nightwatch and selenium don't require root, and neither does magellan's own port utility, so I'm not sure what's going on here without more info.

Thanks for responding, these are getting run as part of a jenkins build job . Jenkins is run as jenkins user.
What more info would you need.

@amitmawkin can you try logging into the jenkins box directly as the jenkins user, and using something like https://www.npmjs.com/package/http-server to try to start up a dummy server on port 12000 to see what happens?

@geekdave yes I can install and run it under user jenkins
[jenkins@myjenkins automated-tests]$ ./node_modules/.bin/http-server -p 12000
Starting up http-server, serving ./
Available on:
http://<IP_ADDRESS>:12000
http://XXXXXXXXX:12000
Hit CTRL-C to stop the server

My best guess is that some part of the port checking code doesn't function the same on your Jenkins machine as elsewhere.
We need a smoking gun in the form of a specific line of code that's failing on your box.
We use the portscanner node module to scan for port availability ( see: https://github.com/TestArmada/magellan/blob/master/src/util/check_ports.js#L5 ) . Does this package work for scanning port 12000 on your Jenkins machine as non-root?

Sorry @Maciek416 i was out, i ran the module, did not get any error message


Create 1099-MISC example over HTTP

It would be really helpful for the project to have an example of creating a 1099-MISC file over the HTTP service. This will better explain what's involved from a user of the IRS project.
Included / linked on docs/RUNNING.md and the README.

@mfdeveloper508 can you add this to your queue?

sure, I will fix  the issue in next step

added example file in running tab of docs/RUNNING.md


Trouble renaming/moving windows directories in bash

A brief description
I used SVN to checkout a directory and then I wanted to rename it.
$ mv myprojectname myNEWprojectname

Expected results
I expected the directory to be renamed (and quickly)

Actual results (with terminal output if applicable)
bash hung until I rebooted.

Your Windows build number
062316

I tried it again without worrying about svn and it still an issue:
Steps to reproduce:
user@host:/mnt/c/work$ mkdir test
user@host:/mnt/c/work$ mv test/ newtest

Could you confirm your build number? Using CMD execute the ver command.

Sorry, previous version was read from wrong place.
Microsoft Windows [Version 10.0.14393]

@slugmuffin - Thanks for your post. Does it look like a duplicate of #765? Unfortunately, the fix for #765 is not yet available to retail builds (but only on Insider builds). But, worry not, it will be soon available in the "Creators Update" release. Or, if you are willing, you can move to the Insider build.

Thanks, this looks like it's a duplicate - I did search, didn't see that for some reason.

@slugmuffin - Thanks for confirming. "Creators" build should be soon out. Hang in there and please keep the feedback coming.


Implementation for 'Part 2 : Update Gossipers'

Some notes:

I've updated tests that were explicitly creating signatures with specific values to create V2 variants of them, I can update them to randomly create either V1 or v2 (that'll complicate some of the them a bit though)
BlockSignatures::merge can combine a mixture of V1 and V2, but I am not sure if that can ever happen, it might make sense to just reject mismatching versions (atm it only checks height and chain name hash when we have 2 V2 signatures)
BlockAcceptor and many other places in the code have no access to the chain name, so I left them returning the V1 of BlockSignatures

bors r+

bors r+

bors r+


Config in dosbox directory fails

Need to check the directory dosbox.exe is located in for the dosbox.conf file. Currently it finds nothing and fails.

This was actually an issue with using the game install root instead of the relative path. Resolved in #15


Set maximum name size

This is for making it more safe system.
256 - 4 = 252

no need for new version


How to find Docs for Jest, Enzyme, Create-React-App, Shallow()?

Im using Create React App and have set up my test files like this:
import React from 'react';
import { shallow, configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

Then I set up wrapper using shallow() like this:
let wrapper;
  beforeEach(() => {
    const defaultProps = {
      color: 'orange',
      value: 17,
      title: 'live services',
      link: 'htttp://google.com'
    };

    wrapper = shallow(<Callout {...defaultProps} />);
  });

Im using assertions that I have been using for a while such as
expect(wrapper.find('h5').html()).toContain('some title');
expect(wrapper.containsMatchingElement(<Foo />)).toBe(true);

These assertions work but i want to find more.
I have no idea where to find the docs for the assertions that are available to me. The assertions I have working so far look a bit like Jasmine assertions in that they are using camel case but the methods are still named differently. https://jasmine.github.io/
I thought I was using jest and enzyme but the assertions are completely different to those in the Enzyme docs https://airbnb.io/enzyme/ For example
expect(wrapper.find(Foo)).to.have.lengthOf(3);
Does not work. These methods of find() are not available to my current set up. How do I see what assertions are available to shallow() and shallow.find() with my current setup?
In the Jest Docs I can only find assertions for testing javaScript functions and can't find any methods for traversing and testing Virtual DOM or shadow DOM elements like the ones I have been using( see above) https://jestjs.io/docs/en/jest-object

Enzyme provides the wrapper methods like .find, so use their docs for that
Jest provides expect() and the methods attached to it, such as expect(x).toHaveLength()

The example you gave .to.have.lengthOf(3) are from Chai which is commonly used with Mocha (not Jest, which ships with the Jasmine assertions built in) https://www.chaijs.com/api/bdd/#method_language-chains


chore(package.json): update react types

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

npm package (@latest dist-tag)
GitHub release
v2.2.0

Your semantic-release bot :package::rocket:


:bug: Fix condition not update.

Summary
The equality.Semantic.DeepEqual(configReference.LastAppliedConfig, configReference.DesiredConfig) doesn't always mean we can skip the reconcile and status update. For example:
If in the reconcile #n, the workcofig mismatches with the addon config:
https://github.com/xuezhaojun/OCM/blob/d1b17ffc8d6e13401a197a7305e7db68254e8ba0/pkg/addon/controllers/addonprogressing/controller.go#L220
The the condition will be updated to configs mismatch.
And the in the reconcile #n+1, the workconfig matches the addon config. But because the lastAppliedConfig equals to the desireConfig, the status update is skip and keeps being config mismatch.

/assign @haoqing0110


Merge feature/array-map-inlining (atree inlining feature branch) to main

Updates #292
Merge feature/array-map-inlining branch to main.
This is a fast-forward merge.
See also:

https://github.com/dapperlabs/flow-go/issues/6320
https://github.com/onflow/flow-go/issues/1744
https://github.com/onflow/cadence/issues/1854

Estimated Atree Inlining Results with Cadence 0.42
Results are data dependent for memory use reduction on execution nodes. We may see very roughly:

50% reduction for testnet peak memory use
40% reduction for mainnet peak memory use

peak RAM use reduced by several hundred GB on each execution node

In addition to operational RAM reduction:

faster block execution speed
SSD storage use will also be reduced (e.g. checkpoint file sizes, etc.)
the growth rate of memory use will also be reduced to help prevent OOM crashes
databases storing payloads benefit from fewer payloads (smaller db, index, and cache)

Impact on memory and storage size

Impact on payload count and node count

[x] Targeted PR against main branch
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work
[x] Code follows the standards mentioned here
[x] Updated relevant documentation
[x] Re-reviewed Files changed in the Github PR explorer
[x] Added appropriate labels

I started long-running smoke tests yesterday and no problems were detected.
I'll continue checking the running smoke tests (on n1-standard-4) from time to time.


Webhooks are delayed + profiles disappear

Checklist

[X] I'm reporting a problem with Dink
[X] I've searched the issues and pull requests for similar looking reports

Describe your issue
When dying or getting a drop, webhooks are delayed and the profile tab disappears until the webhook is actually sent at which point they reeappar. Other people sending to the same webhook do not have this issue. Problem does not occur when Dink is off.
Screenshots

Runelite Logs
client.log
Runelite Version
<IP_ADDRESS>

It looks to me like the network request times out, how this would do anything with the profiles page is beyond me though. Maybe unrelated to Dink but related to the NullPointerException further up in the logs?
iProdigy might have a better idea

In Dink's advanced settings, what is your Image Upload Timeout set to? Also what's your upload speed? the error suggests a network issue rather than a dink bug (but you could reduce the Screenshot Scale if your network is weak so less data needs to be uploaded)

30s, it does go away sometimes and when using a vpn to play goes away completely. Don't mind the delay just don't want it affecting my other plugins such as !pb or !layout in COX. Upload speed is

Can you type ::dinkexport all into the in-game chat,
Go to :wrench: -> 👥 -> click new profile - double-click to swap to that new profile,
Download dink again, ::dinkimport into chat and see if your issue persists?

and when using a vpn to play goes away completely

While testing those steps may show that it's a conflict with another plugin, the fact that your issue goes away with a VPN enabled makes me personally think that it's an internet problem, unrelated to a fast speedtest result.

Yes, issue still occurs on a new profile with only dink enabled.

I'll have to check runelite's usage of the shared ScheduledExecutorService
For diagnosing the network issue, would be useful to run WinMTR pointed at discord.com (let us know how many hops & whether there's packet loss - dont upload the full output here as it can reveal your IP)

runelite's ProfilePanel does make heavy use of the shared ScheduledExecutorService
dink's http requests are also performed on the same executor, so when your network times-out, it's possible for profile panel actions to be delayed
since your internet is fast, you could reduce the image upload timeout to 10s, so the profile panel loads faster when your internet does have some transient timeout issue


Taskbar no longer shows Artist/track info on hover

OS: Windows 7 Enterprise (64-bit) SP1
Issue: Taskbar no longer shows Artist/track info on hover
Steps to Reproduce: Hover over the taskbar icon. The tooltip (including the previous/pause/next controls) displays, but rather than the artist/track info, just the "Google Play Music Desktop Player" text appears. I have the "Show song information always" setting checked. No hotkeys specified. Minimize to Tray is not set either.

Can you explain why you need/want this.  It was reported somewhere as bad practice for your app to have a title other than your apps name.
If someone went through task manager and saw an app called "Justin Beiber - Sorry" they would cry murder and have no idea what it is.
So yeah, why do you want this?

I'm not sure whether it's bad practice or not. But I can tell you that Spotify shows Artist/track info on hover.

I believe that is so that other apps can read the currently playing song.  We have the JSON and WebSocket API for that?

I can undestand changing the title of the app as being a bad practice, but this was a nice thing to have.
When I'm listening to a radio, for instance, sometimes I just want to check the current song title and artist. Just hovering over the taskbar is a nice way to do that.
Maybe make this as an option (off by default)?

@rgoliveira There is a point when it comes to options that I simply have to draw the line.  I don't what the app to become a whole load of
if (Settings.get('shouldDoThisObscureThing') {
    doTheThing();
}

It's supposed to be simply and easy to maintain and making small options for things that only one platform and at that only a few people on that platform will use / even notice just doesn't seem worth the code smell to me

Samuel,
The only reason I raised this as an issue is because prior to the latest
upgrade, I thought it used to display the artist/title. Am I wrong?
FWIW, I'm pretty sure that many other audio players display this info add a
tooltip. I know Winamp does...
But I totally get that this is a nice-to-have rather than a requirement...
Like @rgoliveira, I just like to quickly be able to see the track info,
without needing to open the window. If you can add it as an option, that
would be cool. But completely understand if you don't want to spend time
adding bloat.
Sent from my phone - please excuse spelling & brevity...
On Mar 9, 2016 6:12 AM, "Samuel Attard"<EMAIL_ADDRESS>wrote:

@rgoliveira https://github.com/rgoliveira There is a point when it
comes to options that I simply have to draw the line. I don't what the app
to become a whole load of
if (Settings.get('shouldDoThisObscureThing') {
doTheThing();
}
It's supposed to be simply and easy to maintain and making small options
for things that only one platform and at that only a few people on that
platform will use / even notice just doesn't seem worth the code smell to me
—
Reply to this email directly or view it on GitHub
https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/issues/387#issuecomment-194311412
.

I would also like to show my support for this feature. I used it a lot when it was in the old version and was disappointed to see it removed. I kind of get what you mean about it being "bad practice", but personally that's not something that bothers me; the convenience of being able to mouseover the taskbar icon to view the currently playing track far outweighs that. Alternatively, is there any way you could have the track info show in the window that pops up without changing what's in the title bar?

I'm going to close this for the following reasons.

Yes, this was in the old app.  The old app however was exclusively using a custom window frame.  This meant that the app's title could be whatever i wanted and it wouldn't show up anywhere apart from the taskbar popup.  This is no longer the case, on OS X and Linux the actual window title would change and this is not a good UX.
As mentioned before, it is an anti-pattern (at least IMO)
It would break things in the works like the Chromecast implementation (winks)

If someone wants to implement a secret setting to change this behavior by all means PR it and I'll consider.  But I don't see enough of a reason to implement this.
I'll leave it open for 24hours and let people have a pot shot at those 3 points and we'll see how it goes.

Implemented it as a secret setting. I do agree with all three of your points, but I would personally find something like this useful. I would have done it via Tooltip only, but electron doesn't implement any way to make this happen on any OS.

@jostrander since you implemented this as a secret setting, does this mean that in order to be able to see it, I have to download the source and build it on my machine?

@roryhewitt no. That only means there's no visual option in the app. You have to set it by hand on the config file (on Windows it's %USERPROFILE%\AppData\Roaming\Google Play Music Desktop Player\json_store\.settings.json).

@rgoliveira
Groovy :)

It'll look like this:

Works for me. I am a happy bunny :)


Compilation error in generated decoders

After the most recent commits the generated Decoders use normal types instead of Json.Decode types.
The code for decoding a float, inside of a generated Decoder, now looks like this:
`apply` (maybe ("latitude" := (Maybe Float)))

which gives me errors, previously it looked like this:
`apply` (maybe ("latitude" := float))

which worked fine.
I am using Elm 0.17.1

Hi, sorry I messed up my final refactoring of this code. Working on it now...!

Ok, 2234a433d44b4c7bdb412abb738f45b0077a8ea3 should fix this.


New Builder KeyError when Importing Method Codes

Not sure if you noticed this yet @moonshoes87, but it looks like there is a KeyError  in pmagpy.controlled_vocabularies3.get_meth_codes on the string "definition". Not sure what's up here and don't want to further break anything you're doing, but I can't instantiate a Contribution object which is making the writing to file and running the GUIs a bit challenging. Full error message bellow.
Traceback (most recent call last):
  File "../../../../programs/3_conversion_scripts/_2g_bin_magic.py", line 459, in <module>
    main(**kwargs)
  File "../../../../programs/3_conversion_scripts/_2g_bin_magic.py", line 370, in main
    con = nb.Contribution(output_dir_path,read_tables=[])
  File "/home/kevin/Code/Paleomag/PmagPy/pmagpy/new_builder.py", line 53, in __init__
    Contribution.vocab = cv.Vocabulary(dmodel=self.data_model)
  File "/home/kevin/Code/Paleomag/PmagPy/pmagpy/controlled_vocabularies3.py", line 37, in __init__
    self.get_all_vocabulary()
  File "/home/kevin/Code/Paleomag/PmagPy/pmagpy/controlled_vocabularies3.py", line 272, in get_all_vocabulary
    all_codes, code_types = self.get_meth_codes()
  File "/home/kevin/Code/Paleomag/PmagPy/pmagpy/controlled_vocabularies3.py", line 59, in get_meth_codes
    little_series = df['definition']
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 2059, in __getitem__
    return self._getitem_column(key)
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 2066, in _getitem_column
    return self._get_item_cache(key)
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/generic.py", line 1386, in _get_item_cache
    values = self._data.get(item)
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/internals.py", line 3543, in get
    loc = self.items.get_loc(item)
  File "/usr/local/lib/python2.7/dist-packages/pandas/indexes/base.py", line 2136, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))
  File "pandas/index.pyx", line 132, in pandas.index.IndexEngine.get_loc (pandas/index.c:4433)
  File "pandas/index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas/index.c:4279)
  File "pandas/src/hashtable_class_helper.pxi", line 732, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13742)
  File "pandas/src/hashtable_class_helper.pxi", line 740, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13696)
KeyError: 'definition'

Checking this out.

On Feb 10, 2017, at 9:51 AM, Kevin Gaastra<EMAIL_ADDRESS>wrote:
Not sure if you noticed this yet @moonshoes87 https://github.com/moonshoes87, but it looks like there is a KeyError in pmagpy.controlled_vocabularies3.get_meth_codes on the string "definition". Not sure what's up here and don't want to further break anything you're doing, but I can't instantiate a new builder object which is making the writing to file and running the GUIs a bit challenging. Full error message bellow.
Traceback (most recent call last):
File "../../../../programs/3_conversion_scripts/_2g_bin_magic.py", line 459, in
main(**kwargs)
File "../../../../programs/3_conversion_scripts/_2g_bin_magic.py", line 370, in main
con = nb.Contribution(output_dir_path,read_tables=[])
File "/home/kevin/Code/Paleomag/PmagPy/pmagpy/new_builder.py", line 53, in init
Contribution.vocab = cv.Vocabulary(dmodel=self.data_model)
File "/home/kevin/Code/Paleomag/PmagPy/pmagpy/controlled_vocabularies3.py", line 37, in init
self.get_all_vocabulary()
File "/home/kevin/Code/Paleomag/PmagPy/pmagpy/controlled_vocabularies3.py", line 272, in get_all_vocabulary
all_codes, code_types = self.get_meth_codes()
File "/home/kevin/Code/Paleomag/PmagPy/pmagpy/controlled_vocabularies3.py", line 59, in get_meth_codes
little_series = df['definition']
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 2059, in getitem
return self._getitem_column(key)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 2066, in _getitem_column
return self._get_item_cache(key)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/generic.py", line 1386, in _get_item_cache
values = self._data.get(item)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/internals.py", line 3543, in get
loc = self.items.get_loc(item)
File "/usr/local/lib/python2.7/dist-packages/pandas/indexes/base.py", line 2136, in get_loc
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas/index.pyx", line 132, in pandas.index.IndexEngine.get_loc (pandas/index.c:4433)
File "pandas/index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas/index.c:4279)
File "pandas/src/hashtable_class_helper.pxi", line 732, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13742)
File "pandas/src/hashtable_class_helper.pxi", line 740, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13696)
KeyError: 'definition'
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/PmagPy/PmagPy/issues/140, or mute the thread https://github.com/notifications/unsubscribe-auth/ABwGIoIlSNZ5gCs0P2JdTXn7fC_jzqRHks5rbKOMgaJpZM4L9qfK.

I'm switching back to using the cached version of method_codes.  There is something different with the formatting (maybe?) of the method codes json on earthref, so I'll have to figure this out in more detail a bit later.

Well now that we've agreed on caching for the data model and vocabularies at the moment, and everything is working this is no longer an issue.


Strange error chtimes operation not permitted

I am trying to clone copy between  directory on linux to a windows shared mounted   using "cifs".
All the new files that needs to be created on the target system , fail with the Error " Failed to copy: chtimes /mnt/ntserver/TestDeploy/boma/Functions/storeFunctions.asp: operation not permitted"
However the file does make it to the distention..
Any idea what could be the problem?

What is your rclone version (eg output from rclone -V)

1.33

Which OS you are using and how many bits (eg Windows 7, 64 bit)

Source : Debian Linux 64, Target: Windows Server 2012 Mounted share:
(mount -v -t cifs  //serverIP/dev /mnt/ntserver -o credentials=/etc/smb_credentials.txt,file_mode=0777,dir_mode=0777)

Which cloud storage system are you using? (eg Google Drive)

Local  copy from linux to windows cifs mounted share

The command you were trying to run (eg rclone copy /tmp remote:tmp)

A log from the command with the -v flag (eg output from rclone -v copy /tmp remote:tmp)

rclone copy --exclude-from=target-exclude-list.txt --size-only=true --verbose --transfers=5 --modify-window=15s --checkers=12 --no-update-modtime=true  /var/lib/jenkins/workspace/boma   /mnt/ntserver/TestDeploy/boma

Error :
2016/09/20 15:36:31 Functions/storeFunctions.asp: Failed to copy: chtimes /mnt/ntserver/TestDeploy/boma/Functions/storeFunctions.asp: operation not permitted
2016/09/20 15:36:31 Attempt 1/3 failed with 1 errors and: chtimes /mnt/ntserver/TestDeploy/boma/Functions/storeFunctions.asp: operation not permitted

The file eventually makes it to the server..

Are the files on the CIFS mount owned by the user using rclone?  rclone is probably trying to update the modtimes on files that user doesn't own.
Check the files on the mount, eg ls -l /mnt/ntserver/TestDeploy/boma/Functions to see which user owns them.

on an mount with ls -l files owned by "root" .. The process that run "rclone" command are run as  "jenkins" user.
Is there good  way to fix this?

That looks like the right solution :-)

I see you made another issue about the info printing (good idea)
So I'll close this one now


Downloading mod 111111111 ...

Hi,
arkmanager started acting very strange after 245.0 update.
Before update it checked for updates to all the mods listed in /etc/arkmanager/instances/theisland.cfg and updated the server to 245.0 (went fine as usual :+1:)
After 245.0 update (never seen this before) it just tries to download mod 111111111 which I cannot find in any config files anywhere also it doesn't try to download the mods in the config files.
The config files and arkmanager has not been altered for a long time and I have quadruplechecked the config files just to be sure.
/usr/local/bin/arkmanager, /etc/arkmanager/arkmanager.cfg and /etc/arkmanager/instances/theisland.cfg has NOT been altered in over a month, also they are identical to my backups (checked with diff).
I cannot see any reason for this change in behaviour.
Is this happening for others?
Upon further investigation it seems that 111111111.mod in /home/steam/theisland/ShooterGame/Content/Mods is related to Primitive+ dlc..
Perhaps this should be excluded from update checking? gg Wildcard :p
$ arkmanager useconfig theisland update --update-mods --warn --saveworld --backup --verbose
Running command 'update' for instance 'theisland'
Downloading mod 111111111Executing /home/steam/steamcmd/steamcmd.sh +@NoPromptForPassword 1 +login anonymous +workshop_download_item<PHONE_NUMBER>11111 +quit
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...Created shared memory when not owner SteamController_Shared_mem
OK.
"@NoPromptForPassword" = "1"

Connecting anonymously to Steam Public...Logged in OK
Waiting for license info...OK
Downloading item 111111111 ...
ERROR! Download item 111111111 failed (File Not Found).Mod 111111111 was not successfully downloaded
/usr/local/bin/arkmanager: line 1594: /home/steam/steamcmd/steamapps/workshop/content/346110/111111111/mod.info: No such file or directory
Your server is already up to date! The most recent version is 1250570.

EDIT:  After removal of 111111111.mod and 111111111 directory --update-mods works fine again.

I can confirm this issue and workaround. Moving 111111111 to a temporary subfolder fixed my update issues.

So did Wildcard Studios put a "111111111" directory in their Mods directory?

Editing the 111111111.mod file would seem to indicate its the new DLC; Primitive Plus.

I also can confirm the issue.
And yes, the 111111111.mod and 111111111 folder were placed directly in the ./ShooterGame/Content/Mods folder.

I have pushed a hotfix to ignore mod 111111111

don't have any folder on my /mods, only have the 111111111.mod

i had to upload my folder to the server

Running a Prim+ server.
Seems that with this hotfix the mod folder gets removed and so the server is unable to launch.
Copying it back from staging the server launches and restart due to an "update". After that the folder is gone and the server crashes

This hotfix (8a59a8c) should resolve this.

Sorry for not responding sooner, the first patch caused false updates from time to time.
However the latest ( https://github.com/FezVrasta/ark-server-tools/commit/8a59a8c78c2b1cc052207474e5be132a54fb10b5 ) did solve the issue for me. :+1:
Steven.


Code runs in Wasmer (Cranelift JIT) but crashes in wasmtime with out of bounds memory access

What are the steps to reproduce the issue?
Run wasmtime run python.wasm --dir . -- -m test in a clone of cpython version 3.8 (or at least the Lib folder).
python.wasm.zip

What do you expect to happen? What does actually happen? Does it panic, and
if so, with which assertion?
I expect it to run without crashing like Wasmer using the Cranelift JIT backend does.

Callstack
$ wasmtime run python.wasm --dir . -- -m test
Error: failed to run main module `python.wasm`

Caused by:
    0: failed to invoke command default
    1: wasm trap: out of bounds memory access
       wasm backtrace:
           0: 0x68557c - <unknown>!dlmalloc
           1: 0x68760e - <unknown>!realloc
           2: 0x452d56 - <unknown>!_PyMem_RawRealloc
           3: 0x457580 - <unknown>!_PyMem_DebugRawRealloc
           4: 0x4556ae - <unknown>!PyMem_RawRealloc
           5: 0x453028 - <unknown>!_PyObject_Realloc
           6: 0x457580 - <unknown>!_PyMem_DebugRawRealloc
           7: 0x4582ba - <unknown>!_PyMem_DebugRealloc
           8: 0x458587 - <unknown>!PyMem_Realloc
           9: 0x42c1b5 - <unknown>!list_resize
          10: 0x42c52f - <unknown>!app1
          11: 0x42c369 - <unknown>!PyList_Append
          12: 0x4af5b1 - <unknown>!_posix_listdir
          13: 0x49cad9 - <unknown>!os_listdir_impl
          14: 0x49c9a1 - <unknown>!os_listdir
          15: 0x20f6a5 - <unknown>!cfunction_vectorcall_FASTCALL_KEYWORDS
          16: 0x20bc53 - <unknown>!_PyObject_Vectorcall
          17: 0x20a7d7 - <unknown>!call_function
          18: 0x1ffd1d - <unknown>!_PyEval_EvalFrameDefault
          19: 0x1eac4f - <unknown>!PyEval_EvalFrameEx
          20: 0x2d3d85 - <unknown>!function_code_fastcall
          21: 0x2d4508 - <unknown>!_PyFunction_Vectorcall
          22: 0x20bc53 - <unknown>!_PyObject_Vectorcall
          23: 0x20a7d7 - <unknown>!call_function
          24: 0x1ffe37 - <unknown>!_PyEval_EvalFrameDefault
          25: 0x1eac4f - <unknown>!PyEval_EvalFrameEx
          26: 0x1eaa0e - <unknown>!_PyEval_EvalCodeWithName
          27: 0x2d4a6c - <unknown>!_PyFunction_Vectorcall
          28: 0x20bc53 - <unknown>!_PyObject_Vectorcall
          29: 0x20a7d7 - <unknown>!call_function
          30: 0x1ffe37 - <unknown>!_PyEval_EvalFrameDefault
          31: 0x1eac4f - <unknown>!PyEval_EvalFrameEx
          32: 0x1eaa0e - <unknown>!_PyEval_EvalCodeWithName
          33: 0x2d4a6c - <unknown>!_PyFunction_Vectorcall
          34: 0x19e67e - <unknown>!_PyObject_Vectorcall
          35: 0x19dd65 - <unknown>!method_vectorcall
          36: 0x20bc53 - <unknown>!_PyObject_Vectorcall
          37: 0x20a7d7 - <unknown>!call_function
          38: 0x1ffd1d - <unknown>!_PyEval_EvalFrameDefault
          39: 0x1eac4f - <unknown>!PyEval_EvalFrameEx
          40: 0x1eaa0e - <unknown>!_PyEval_EvalCodeWithName
          41: 0x2d4a6c - <unknown>!_PyFunction_Vectorcall
          42: 0x19e67e - <unknown>!_PyObject_Vectorcall
          43: 0x19dd65 - <unknown>!method_vectorcall
          44: 0x20bc53 - <unknown>!_PyObject_Vectorcall
          45: 0x20a7d7 - <unknown>!call_function
          46: 0x200057 - <unknown>!_PyEval_EvalFrameDefault
          47: 0x1eac4f - <unknown>!PyEval_EvalFrameEx
          48: 0x1eaa0e - <unknown>!_PyEval_EvalCodeWithName
          49: 0x2d4a6c - <unknown>!_PyFunction_Vectorcall
          50: 0x20bc53 - <unknown>!_PyObject_Vectorcall
          51: 0x20a7d7 - <unknown>!call_function
          52: 0x200057 - <unknown>!_PyEval_EvalFrameDefault
          53: 0x1eac4f - <unknown>!PyEval_EvalFrameEx
          54: 0x1eaa0e - <unknown>!_PyEval_EvalCodeWithName
          55: 0x2d4a6c - <unknown>!_PyFunction_Vectorcall
          56: 0x20bc53 - <unknown>!_PyObject_Vectorcall
          57: 0x20a7d7 - <unknown>!call_function
          58: 0x1ffd1d - <unknown>!_PyEval_EvalFrameDefault
          59: 0x1eac4f - <unknown>!PyEval_EvalFrameEx
          60: 0x1eaa0e - <unknown>!_PyEval_EvalCodeWithName
          61: 0x2d4a6c - <unknown>!_PyFunction_Vectorcall
          62: 0x20bc53 - <unknown>!_PyObject_Vectorcall
          63: 0x20a7d7 - <unknown>!call_function
          64: 0x200057 - <unknown>!_PyEval_EvalFrameDefault
          65: 0x1eac4f - <unknown>!PyEval_EvalFrameEx
          66: 0x1eaa0e - <unknown>!_PyEval_EvalCodeWithName
          67: 0x2d4a6c - <unknown>!_PyFunction_Vectorcall
          68: 0x20bc53 - <unknown>!_PyObject_Vectorcall
          69: 0x20a7d7 - <unknown>!call_function
          70: 0x200057 - <unknown>!_PyEval_EvalFrameDefault
          71: 0x1eac4f - <unknown>!PyEval_EvalFrameEx
          72: 0x1eaa0e - <unknown>!_PyEval_EvalCodeWithName
          73: 0x2d4a6c - <unknown>!_PyFunction_Vectorcall
          74: 0x2d2079 - <unknown>!PyVectorcall_Call
          75: 0x2d2407 - <unknown>!PyObject_Call
          76: 0x48a8dc - <unknown>!pymain_run_module
          77: 0x489a3e - <unknown>!pymain_run_python
          78: 0x489625 - <unknown>!Py_RunMain
          79: 0x48b4e9 - <unknown>!pymain_main
          80: 0x48b974 - <unknown>!Py_BytesMain
          81: 0x421d - <unknown>!main
          82: 0x68a7ff - <unknown>!__main_void
          83: 0x689d72 - <unknown>!__original_main
          84: 0x41b3 - <unknown>!_start
       note: run with `WASMTIME_BACKTRACE_DETAILS=1` environment variable to display more information

Detailed Callstack
$ WASMTIME_BACKTRACE_DETAILS=1 wasmtime run python.wasm --dir . -- -m test
Error: failed to run main module `python.wasm`

Caused by:
    0: failed to invoke command default
    1: wasm trap: out of bounds memory access
       wasm backtrace:
           0: 0x68557c - <unknown>!dlmalloc
           1: 0x68760e - <unknown>!realloc
           2: 0x452d56 - _PyMem_RawRealloc
                           at /Users/abbe/code/gbk-python/Objects/obmalloc.c:122:12
           3: 0x457580 - _PyMem_DebugRawRealloc
                           at /Users/abbe/code/gbk-python/Objects/obmalloc.c:2241:20
           4: 0x4556ae - PyMem_RawRealloc
                           at /Users/abbe/code/gbk-python/Objects/obmalloc.c:591:12
           5: 0x453028 - _PyObject_Realloc
                           at /Users/abbe/code/gbk-python/Objects/obmalloc.c:1987:12
           6: 0x457580 - _PyMem_DebugRawRealloc
                           at /Users/abbe/code/gbk-python/Objects/obmalloc.c:2241:20
           7: 0x4582ba - _PyMem_DebugRealloc
                           at /Users/abbe/code/gbk-python/Objects/obmalloc.c:2327:12
           8: 0x458587 - PyMem_Realloc
                           at /Users/abbe/code/gbk-python/Objects/obmalloc.c:624:12
           9: 0x42c1b5 - list_resize
                           at /Users/abbe/code/gbk-python/Objects/listobject.c:70:26
          10: 0x42c52f - app1
                           at /Users/abbe/code/gbk-python/Objects/listobject.c:340:9
          11: 0x42c369 - PyList_Append
                           at /Users/abbe/code/gbk-python/Objects/listobject.c:352:16
          12: 0x4af5b1 - _posix_listdir
                           at /Users/abbe/code/gbk-python/./Modules/posixmodule.c:3831:13
          13: 0x49cad9 - os_listdir_impl
                           at /Users/abbe/code/gbk-python/./Modules/posixmodule.c:3887:12
          14: 0x49c9a1 - os_listdir
                           at /Users/abbe/code/gbk-python/./Modules/clinic/posixmodule.c.h:1197:20
          15: 0x20f6a5 - cfunction_vectorcall_FASTCALL_KEYWORDS
                           at /Users/abbe/code/gbk-python/Objects/methodobject.c:437:24
          16: 0x20bc53 - _PyObject_Vectorcall
                           at /Users/abbe/code/gbk-python/./Include/cpython/abstract.h:127:11
          17: 0x20a7d7 - call_function
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4963:13
          18: 0x1ffd1d - _PyEval_EvalFrameDefault
                           at /Users/abbe/code/gbk-python/Python/ceval.c:3469:23
          19: 0x1eac4f - PyEval_EvalFrameEx
                           at /Users/abbe/code/gbk-python/Python/ceval.c:741:12
          20: 0x2d3d85 - function_code_fastcall
                           at /Users/abbe/code/gbk-python/Objects/call.c:283:14
          21: 0x2d4508 - _PyFunction_Vectorcall
                           at /Users/abbe/code/gbk-python/Objects/call.c:410:20
          22: 0x20bc53 - _PyObject_Vectorcall
                           at /Users/abbe/code/gbk-python/./Include/cpython/abstract.h:127:11
          23: 0x20a7d7 - call_function
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4963:13
          24: 0x1ffe37 - _PyEval_EvalFrameDefault
                           at /Users/abbe/code/gbk-python/Python/ceval.c:3486:23
          25: 0x1eac4f - PyEval_EvalFrameEx
                           at /Users/abbe/code/gbk-python/Python/ceval.c:741:12
          26: 0x1eaa0e - _PyEval_EvalCodeWithName
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4298:14
          27: 0x2d4a6c - _PyFunction_Vectorcall
                           at /Users/abbe/code/gbk-python/Objects/call.c:435:12
          28: 0x20bc53 - _PyObject_Vectorcall
                           at /Users/abbe/code/gbk-python/./Include/cpython/abstract.h:127:11
          29: 0x20a7d7 - call_function
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4963:13
          30: 0x1ffe37 - _PyEval_EvalFrameDefault
                           at /Users/abbe/code/gbk-python/Python/ceval.c:3486:23
          31: 0x1eac4f - PyEval_EvalFrameEx
                           at /Users/abbe/code/gbk-python/Python/ceval.c:741:12
          32: 0x1eaa0e - _PyEval_EvalCodeWithName
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4298:14
          33: 0x2d4a6c - _PyFunction_Vectorcall
                           at /Users/abbe/code/gbk-python/Objects/call.c:435:12
          34: 0x19e67e - _PyObject_Vectorcall
                           at /Users/abbe/code/gbk-python/./Include/cpython/abstract.h:127:11
          35: 0x19dd65 - method_vectorcall
                           at /Users/abbe/code/gbk-python/Objects/classobject.c:60:18
          36: 0x20bc53 - _PyObject_Vectorcall
                           at /Users/abbe/code/gbk-python/./Include/cpython/abstract.h:127:11
          37: 0x20a7d7 - call_function
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4963:13
          38: 0x1ffd1d - _PyEval_EvalFrameDefault
                           at /Users/abbe/code/gbk-python/Python/ceval.c:3469:23
          39: 0x1eac4f - PyEval_EvalFrameEx
                           at /Users/abbe/code/gbk-python/Python/ceval.c:741:12
          40: 0x1eaa0e - _PyEval_EvalCodeWithName
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4298:14
          41: 0x2d4a6c - _PyFunction_Vectorcall
                           at /Users/abbe/code/gbk-python/Objects/call.c:435:12
          42: 0x19e67e - _PyObject_Vectorcall
                           at /Users/abbe/code/gbk-python/./Include/cpython/abstract.h:127:11
          43: 0x19dd65 - method_vectorcall
                           at /Users/abbe/code/gbk-python/Objects/classobject.c:60:18
          44: 0x20bc53 - _PyObject_Vectorcall
                           at /Users/abbe/code/gbk-python/./Include/cpython/abstract.h:127:11
          45: 0x20a7d7 - call_function
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4963:13
          46: 0x200057 - _PyEval_EvalFrameDefault
                           at /Users/abbe/code/gbk-python/Python/ceval.c:3500:19
          47: 0x1eac4f - PyEval_EvalFrameEx
                           at /Users/abbe/code/gbk-python/Python/ceval.c:741:12
          48: 0x1eaa0e - _PyEval_EvalCodeWithName
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4298:14
          49: 0x2d4a6c - _PyFunction_Vectorcall
                           at /Users/abbe/code/gbk-python/Objects/call.c:435:12
          50: 0x20bc53 - _PyObject_Vectorcall
                           at /Users/abbe/code/gbk-python/./Include/cpython/abstract.h:127:11
          51: 0x20a7d7 - call_function
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4963:13
          52: 0x200057 - _PyEval_EvalFrameDefault
                           at /Users/abbe/code/gbk-python/Python/ceval.c:3500:19
          53: 0x1eac4f - PyEval_EvalFrameEx
                           at /Users/abbe/code/gbk-python/Python/ceval.c:741:12
          54: 0x1eaa0e - _PyEval_EvalCodeWithName
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4298:14
          55: 0x2d4a6c - _PyFunction_Vectorcall
                           at /Users/abbe/code/gbk-python/Objects/call.c:435:12
          56: 0x20bc53 - _PyObject_Vectorcall
                           at /Users/abbe/code/gbk-python/./Include/cpython/abstract.h:127:11
          57: 0x20a7d7 - call_function
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4963:13
          58: 0x1ffd1d - _PyEval_EvalFrameDefault
                           at /Users/abbe/code/gbk-python/Python/ceval.c:3469:23
          59: 0x1eac4f - PyEval_EvalFrameEx
                           at /Users/abbe/code/gbk-python/Python/ceval.c:741:12
          60: 0x1eaa0e - _PyEval_EvalCodeWithName
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4298:14
          61: 0x2d4a6c - _PyFunction_Vectorcall
                           at /Users/abbe/code/gbk-python/Objects/call.c:435:12
          62: 0x20bc53 - _PyObject_Vectorcall
                           at /Users/abbe/code/gbk-python/./Include/cpython/abstract.h:127:11
          63: 0x20a7d7 - call_function
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4963:13
          64: 0x200057 - _PyEval_EvalFrameDefault
                           at /Users/abbe/code/gbk-python/Python/ceval.c:3500:19
          65: 0x1eac4f - PyEval_EvalFrameEx
                           at /Users/abbe/code/gbk-python/Python/ceval.c:741:12
          66: 0x1eaa0e - _PyEval_EvalCodeWithName
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4298:14
          67: 0x2d4a6c - _PyFunction_Vectorcall
                           at /Users/abbe/code/gbk-python/Objects/call.c:435:12
          68: 0x20bc53 - _PyObject_Vectorcall
                           at /Users/abbe/code/gbk-python/./Include/cpython/abstract.h:127:11
          69: 0x20a7d7 - call_function
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4963:13
          70: 0x200057 - _PyEval_EvalFrameDefault
                           at /Users/abbe/code/gbk-python/Python/ceval.c:3500:19
          71: 0x1eac4f - PyEval_EvalFrameEx
                           at /Users/abbe/code/gbk-python/Python/ceval.c:741:12
          72: 0x1eaa0e - _PyEval_EvalCodeWithName
                           at /Users/abbe/code/gbk-python/Python/ceval.c:4298:14
          73: 0x2d4a6c - _PyFunction_Vectorcall
                           at /Users/abbe/code/gbk-python/Objects/call.c:435:12
          74: 0x2d2079 - PyVectorcall_Call
                           at /Users/abbe/code/gbk-python/Objects/call.c:199:24
          75: 0x2d2407 - PyObject_Call
                           at /Users/abbe/code/gbk-python/Objects/call.c:227:16
          76: 0x48a8dc - pymain_run_module
                           at /Users/abbe/code/gbk-python/Modules/main.c:302:14
          77: 0x489a3e - pymain_run_python
                           at /Users/abbe/code/gbk-python/Modules/main.c:600:21
          78: 0x489625 - Py_RunMain
                           at /Users/abbe/code/gbk-python/Modules/main.c:685:5
          79: 0x48b4e9 - pymain_main
                           at /Users/abbe/code/gbk-python/Modules/main.c:715:12
          80: 0x48b974 - Py_BytesMain
                           at /Users/abbe/code/gbk-python/Modules/main.c:739:12
          81: 0x421d - __main_argc_argv
                           at /Users/abbe/code/gbk-python/./Programs/python.c:16:12
          82: 0x68a7ff - <unknown>!__main_void
          83: 0x689d72 - <unknown>!__original_main
          84: 0x41b3 - _Py_hashtable_print_stats
                           at /Users/abbe/code/gbk-python/./Modules/hashtable.c:214

With Wasmer
$ wasmer run python.wasm --dir . -- -m test
Traceback (most recent call last):
  File "/Lib/threading.py", line 528, in set
    self._cond.notify_all()
  File "/Lib/threading.py", line 371, in notify_all
    self.notify(len(self._waiters))
  File "/Lib/threading.py", line 352, in notify
    raise RuntimeError("cannot notify on un-acquired lock")
RuntimeError: cannot notify on un-acquired lock

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Lib/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/Lib/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/Lib/test/__main__.py", line 1, in <module>
    from test.libregrtest import main
  File "/Lib/test/libregrtest/__init__.py", line 1, in <module>
    from test.libregrtest.cmdline import _parse_args, RESOURCE_NAMES, ALL_RESOURCES
  File "/Lib/test/libregrtest/cmdline.py", line 1, in <module>
    import argparse
  File "/Lib/argparse.py", line 89, in <module>
    import shutil as _shutil
  File "/Lib/shutil.py", line 22, in <module>
    import bz2
  File "/Lib/bz2.py", line 17, in <module>
    from threading import RLock
  File "/Lib/threading.py", line 1353, in <module>
    _main_thread = _MainThread()
  File "/Lib/threading.py", line 1265, in __init__
    self._started.set()
  File "/Lib/threading.py", line 528, in set
    self._cond.notify_all()
  File "/Lib/threading.py", line 250, in __exit__
    return self._lock.__exit__(*args)
RuntimeError: release unlocked lock

Which Wasmtime version / commit hash / branch are you using?
0.22.1

If relevant, can you include some extra information about your environment?
This is a custom port of Python to WASI and some things are not expected to work. However, running -m test with Wasmer gives the expected Python error whereas running it with Wasmtime gives a memory corruption.

Debugging further, the Python debug malloc (this is a debug build) gets an invalid allocation from dlmalloc causing it to overwrite some internal dlmalloc data structures.
Can also add that simpler things work fine in Wasmtime:
$ wasmtime run --dir . python.wasm
Python 3.8.6 (heads/embed-test-dirty:ee1910e462, Feb  5 2021, 12:02:19)
[Clang 11.0.0 ] on wasi
Type "help", "copyright", "credits" or "license" for more information.
>>> print("hello I am in wasmtime")
hello I am in wasmtime
>>> quit()

If there is a better way we can debug this to provide more/better info, please let us know!

I was not able to reproduce this with 0.22.0 or main (e4827ad7) on x64 linux. I assume from your homedir path that your crash is on x64 macos?

The backtrace also looks like it was in _posix_listdir in Python, so this may have been fixed by either https://github.com/bytecodealliance/wasmtime/pull/2620 or the large wasi rewrite in https://github.com/bytecodealliance/wasmtime/pull/2487. @abbec would you be able to test the master branch of wasmtime and see if it works for you?

Running the install script from wasmtime.dev again should install the latest build based on the main branch, so that should work for testing this, I think.

And indeed, with the latest build I don't get a crash. I do get an error about a missing import, though, which is what #2637 is about.

Output with the latest build
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  program name = 'python.wasm'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = ''
  sys.base_prefix = '/nix/store/7s2gi17s0hb2rjbdxn94cslllcabd13k-wasi-python38-wasm32-unknown-wasi-shell-wasm32-unknown-wasi'
  sys.base_exec_prefix = '/nix/store/7s2gi17s0hb2rjbdxn94cslllcabd13k-wasi-python38-wasm32-unknown-wasi-shell-wasm32-unknown-wasi'
  sys.executable = ''
  sys.prefix = '/nix/store/7s2gi17s0hb2rjbdxn94cslllcabd13k-wasi-python38-wasm32-unknown-wasi-shell-wasm32-unknown-wasi'
  sys.exec_prefix = '/nix/store/7s2gi17s0hb2rjbdxn94cslllcabd13k-wasi-python38-wasm32-unknown-wasi-shell-wasm32-unknown-wasi'
  sys.path = [
    '/nix/store/7s2gi17s0hb2rjbdxn94cslllcabd13k-wasi-python38-wasm32-unknown-wasi-shell-wasm32-unknown-wasi/lib/python38.zip',
    '/nix/store/7s2gi17s0hb2rjbdxn94cslllcabd13k-wasi-python38-wasm32-unknown-wasi-shell-wasm32-unknown-wasi/lib/python3.8',
    '/nix/store/7s2gi17s0hb2rjbdxn94cslllcabd13k-wasi-python38-wasm32-unknown-wasi-shell-wasm32-unknown-wasi/lib/lib-dynload',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00000001 (most recent call first):
<no Python frame>

@tschneidereit you need --dir pointing to a clone of cpython (or at least something containing a Lib folder)

Ah, I see. Does it work for you with that in the latest Wasmtime build?

I was not able to reproduce this with 0.22.0 or main (e4827ad7) on x64 linux. I assume from your homedir path that your crash is on x64 macos?

Do you get the same as @tschneidereit because python needs a copy of its lib dir or else you will not "get to" the crash.
I did try latest but --dir seems broken there

The backtrace also looks like it was in _posix_listdir in Python, so this may have been fixed by either https://github.com/bytecodealliance/wasmtime/pull/2620 or the large wasi rewrite in https://github.com/bytecodealliance/wasmtime/pull/2487. @abbec would you be able to test the master branch of wasmtime and see if it works for you?

Ah that readdir fix does look interesting, will try that. Unfortunately the large wasi rewrite seems to have broken --dir (as stated in the comment above) so it isn't possible to test there :(

@abbec hm can you provide the exact invocations you're using of the wasmtime CLI? I'm only able to get the errors that @tschneidereit mentioned above regardless what version of wasmtime I use, I've never been able to get the original trap you mentioned.

Er, and to clarify, I don't know what repository of cpython you're using, what commit you're using, or the exact working directory of the invocation you gisted above.

Python needs access to its' standard library when running and I am using a checkout of cpython (the 3.8 branch) and passing that in as --dir .

I can create a self-contained example

Here is a self-contained bundle with the crash. Just unpack and run run.sh inside the folder:
python-crash.zip

We made some subtle but, it turns out, breaking changes to how WASI rights work with the new wasi-common that landed yesterday. Without source code for how your python's wasi integration works, I can't debug much further, but here's what is going on to get you the [Errno 76] Capabilities insufficient: './Lib'. I produced this with the environment var RUST_LOG=wasi_common=trace on a debug build.
In short, it looks like when you opened the ./Lib directory under . (Fd(3)), the fs_rights_base argument did not contain the rights to do a readdir or any of the other typical directory operations - only the FILESTAT_GET | FILESTAT_SET_TIMES rights end up being applicable to directories from that set.
The entire WASI rights system is difficult to understand, poorly documented, implemented completely different (if at all) across various WASI implementations, and not actually very useful. We are going to get rid of it soon. In the meantime, I'm not sure why your code requested file rights as the base, and we should figure out how to debug that. I'm happy to look at your python WASI build source to help debug it, or hop on a zoom call together this afternoon...
 TRACE wasi_common::snapshots::preview_1::wasi_snapshot_preview1 > wiggle abi; module="wasi_snapshot_preview1" function="path_open"
 TRACE wasi_common::snapshots::preview_1::wasi_snapshot_preview1 > fd=Fd(3) dirflags=Lookupflags(SYMLINK_FOLLOW (0x1)) path=*guest 0x0/3 oflags=Oflags(DIRECTORY (0x2)) fs_rights_base=Rights(FD_READ | FD_SEEK | FD_FDSTAT_SET_FLAGS | FD_SYNC | FD_TELL | FD_ADVISE | FD_FILESTAT_GET | FD_FILESTAT_SET_TIMES | POLL_FD_READWRITE (0x8a000be)) fs_rights_inheriting=Rights(FD_DATASYNC | FD_READ | FD_SEEK | FD_FDSTAT_SET_FLAGS | FD_SYNC | FD_TELL | FD_WRITE | FD_ADVISE | FD_ALLOCATE | FD_FILESTAT_GET | FD_FILESTAT_SET_SIZE | FD_FILESTAT_SET_TIMES | POLL_FD_READWRITE (0x8e001ff)) fdflags=Fdflags(NONBLOCK (0x4))
 TRACE wasi_common::snapshots::preview_1::wasi_snapshot_preview1 > opened_fd=Fd(11)
 TRACE wasi_common::snapshots::preview_1::wasi_snapshot_preview1 > success=No error occurred. System call completed successfully. (Errno::Success(0))
 TRACE wasi_common::snapshots::preview_1::wasi_snapshot_preview1 > wiggle abi; module="wasi_snapshot_preview1" function="fd_readdir"
 TRACE wasi_common::snapshots::preview_1::wasi_snapshot_preview1 > fd=Fd(11) buf=*guest 0xb83810 buf_len=4096 cookie=0
 DEBUG wasi_common::snapshots::preview_1                         > Error: desired READDIR, has FILESTAT_GET | FILESTAT_SET_TIMES

Caused by:
    Not capable
 TRACE wasi_common::snapshots::preview_1::wasi_snapshot_preview1 > error=Ok(Notcapable)

It is a largely unmodified Python except for a few "hacks".
A zoom call sounds super helpful and I am in the CEST time zone but suggest a time :)
Although that breakage is interesting though, this is more about the crash I get before that change :)

I backed up to v0.22.0 and the rights problem doesn't occur there. instead, we get all the way to a subtraction with overflow panic (compiling to debug mode helps here!) in our fd_readdir impl that has since been fixed (separately of the wasi-common rewrite https://github.com/bytecodealliance/wasmtime/pull/2620)

Also, the code producing the binary is more or less here

ok. mailed you at the address in your github profile as well if you want to zoom in 30 mins

I backed up to v0.22.0 and the rights problem doesn't occur there. instead, we get all the way to a subtraction with overflow panic (compiling to debug mode helps here!) in our fd_readdir impl that has since been fixed (separately of the wasi-common rewrite https://github.com/bytecodealliance/wasmtime/pull/2620)

 TRACE wasi_common::wasi::wasi_snapshot_preview1      > wiggle abi; module="wasi_snapshot_preview1" function="fd_readdir"

 TRACE wasi_common::wasi::wasi_snapshot_preview1      > fd=Fd(4) buf=*guest 0xc88970 buf_len=4096 cookie=1711012349524439084

 TRACE wasi_common::sys::unix::fd                     > fd_readdir: doing seekdir to<PHONE_NUMBER>524439084

 TRACE wasi_common::wasi::wasi_snapshot_preview1      > bufused=4096

 TRACE wasi_common::wasi::wasi_snapshot_preview1      > success=No error occurred. System call completed successfully. (Errno::Success(0))

 TRACE wasi_common::wasi::wasi_snapshot_preview1      > wiggle abi; module="wasi_snapshot_preview1" function="fd_readdir"

 TRACE wasi_common::wasi::wasi_snapshot_preview1      > fd=Fd(4) buf=*guest 0xc88970 buf_len=4096 cookie=3052825016181861124

 TRACE wasi_common::sys::unix::fd                     > fd_readdir: doing seekdir to<PHONE_NUMBER>181861124

thread 'main' panicked at 'attempt to subtract with overflow', crates/wasi-common/src/snapshots/wasi_snapshot_preview1.rs:310:51

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Wow! Nice find! Then we know that :) Thanks a lot!

Just wanted to say that this was some serious first-class support! Thanks everyone! ❤


Determine whether values should be off if default affinity is 1000

Need to check with Nigel and Andrew.
If 1000 is the default, what should they reset to when re-enabled?

Nigel and Andrew think it best to leave this as it is.