background instance getting terminated constantly

originally reported on google's issue tracker, 2020-03-27. i'm going to copy its comments here, more or less one for one.
for a while now, the background service's single instance (on manual scaling) runs out of memory, dies, and gets restarted a handful of times per day. not great, but tolerable.
suddenly, starting 3/26 around 9am PST (4pm UTC), its instance suddenly started getting terminated multiple times per minute. when this happens, all currently processing requests die, return 500, and show the usual error code 203 log message:
The process handling this request unexpectedly died. This is likely to cause a new process to be used for the next request to your application. (Error code 203)

due to this, roughly 40-50% of all requests to this service 500ed for the first day or so after this, usually after spending some time running normally. the rest of the requests succeeded, as usual, and returned 200 or occasionally 304.
i looked for other 500s from my app itself that might be triggering the scheduler to restart the instance, but no luck. nothing in the rest of the logs seems related either.
did something on App Engine's side change around 9am PST 3/26? i know that's when the Atlanta router failure outage started, but that was supposedly fixed by around 1pm yesterday. could this be related, even though it's still happening?
i didn't deployed or otherwise make any changes to the app at all anytime on 3/26, and i'm not aware of any other changes in external dependencies that could have triggered this.
i tried redeploying from scratch. i also paused the Cloud Tasks queues feeding requests to this instance, waited ~20m, and then resumed them. no luck, the instance still constantly gets terminated while it's serving requests.

3/27 5pm: after about 36h, i now seeing some brief periods of respite for 10-15m here and there without instance terminations, but otherwise it's still happening.
3/28 5pm: this has been gradually subsiding over the last 24h. it's still happening, but less often, now only every 10-15m or so. see attached graph.

3/29 7am, from google: ...Could you please provide me with your application’s runtime environment. I have found a particular issue with NodeJS runtimes which may be the cause of the issue.
I have also identified the possibility of this being an issue with manual scaling, as since there is only one instance setup to deal with the requests coming from Cloud Tasks, that single instance would become overburdened[1] and would not scale up accordingly due to manual scaling. I have also investigated further and noticed a significant burden on that one instance in terms of memory.
I would suggest to see if increasing the number of instances under the respective service will help with your issue[2] or if changing the “intance_class”[3] would help alleviate the stress on the instance.
There is no guarantee for uptime for manual scaling instances[4], so please keep in mind the best practices when implementing manual scaling.
I also investigated the GCP outages, there was a incident on Friday which could have caused issues for all customers. As you have pointed out, there was a influx of 500 messages on Friday likely caused by the outages, however since these outages have already been fixed, and the issue seems to still persist, they are not the root cause of the issue at hand[5].
[1]https://cloud.google.com/appengine/docs/standard/java/how-instances-are-managed#shutdown
[2]https://cloud.google.com/appengine/docs/standard/python/config/appref#manual_scaling
[3]https://cloud.google.com/appengine/docs/standard/python/config/appref#instance_class
[4]https://cloud.google.com/appengine/docs/standard/java/how-instances-are-managed#instance_uptime
[5]https://status.cloud.google.com/

3/29 10am: thank you for your reply!
this app is on the Python 3 Standard runtime. here's the YAML config file for the affected service: https://github.com/snarfed/bridgy/blob/master/background.yaml#L12
i'll try increasing the number of instances. however, this service has been happily serving for years with this same single instance configuration and the same load, including request volume, latency, and utilization. this issue started suddenly without any change to the app or its load.
fortunately, the issue has continued to gradually resolve itself. the instance is still getting terminated with error code 203 and no other cause i can see, but only every 15-60m or so. see attached graph.

this is slowly increasing again. the instance is now back to getting terminated every few minutes or so. graph attached.
i definitely buy that the router outage on 3/26 may have been the original cause, but if so, this issue itself evidently wasn't resolved when the router outage itself was resolved on 3/27.

3/31 9am, from google: From what I have discovered through internal tools, your instance is overburdened and has been seeing memory errors throughout its lifespan including the 200 errors you are facing as well. Please see if any of my solutions I have provided helps with the issue you are facing and please let me know of the results. The issue may have been amplified by the outages, but it is not likely the cause as from what I have seen, the instance has been terminated due to the errors you are seeing from before the outages started occurring.
I have tried to reproduce your issue myself and have also been unsuccessful.

3/31 1pm: thank you for investigating so thoroughly! i very much appreciate it.
you're absolutely right, this instance runs hot and high on memory pressure, and it exceeds the memory limit and gets terminated multiple times per day.
however, that's been happening for many months now. it's definitely not ideal, but it has been stable and not a big problem. these error code 203 terminations are new, different, much more frequent, and started suddenly, at the same time as the router outage.
also, the log messages for the two types of terminations are also different:
"While handling this request, the process that handled this request was found to be using too much memory and was terminated"
vs
"The process handling this request unexpectedly died. This is likely to cause a new process to be used for the next request to your application. (Error code 203)"
so, the two problems do both cause instance terminations (and request 500s), but otherwise they seem unrelated.

Hey, no problem, we are here to help the community identify any discrepancies with Google Cloud Platform functionalities. As I mentioned, your instance has been throwing both of these types of errors throughout the lifespan of the instance, both the memory errors as well as the 203 errors that you have seen a spike in recently. Through my investigation using internal tools and the logs of your application these errors (“The process handling this request unexpectedly died. This is likely to cause a new process to be used for the next request to your application. (Error code 203)”) have been thrown since March 5th, and have increased in rate since, however the outages must have increased the frequency of these errors temporarily. I am still unable to reproduce this error so far, so I would like to ask you for more information.
...

What kinds of operations are being performed by Cloud Tasks and then handled by your Cloud Tasks requests handler?

From what it seems, the load on your instance is significant and I would like to know if these operations are the cause of the failures in terms of memory and/or the 203 you are facing.

4/2 8am: thanks again for the deep investigation! you're absolutely right, this instance is somewhat overburdened, at least in terms of memory. i've added another instance to see if that help, but i suspect it won't, since i believe it runs out of memory due to a memory leak, not due to the workload itself. (i've never quite been able to fix that leak. ☹)
to answer your questions:

If you made any particular changes to your application logic, and/or task request handler code on or near March 5th.

yes! this is a great clue. i use Google's Python 3 ndb library, and on March 5, i switched to using its code for managing compressed TextPropertys in the datastore instead of my own. details in this commit and this ndb PR that added the feature. the engineers who maintain ndb and worked on that change, i expect at Google, are Chris Rossi and Carlos de la Guardia.
i've temporarily reverted this change and redeployed my app without it to see if that helps. fingers crossed!

A minimum reproducible example of your Cloud Tasks request handler[1].
What kinds of operations are being performed by Cloud Tasks and then handled by your Cloud Tasks requests handler?

sure! the app is open source; here's the code for the task handlers. Poll is the heaviest and most frequent task, but all of the task handlers read data from the datastore, make multiple external HTTP requests to social network APIs and other web sites, and then read and write more data to the datastore. Poll tasks in particular can run for a while, often 5-15s or longer, largely due to the HTTP requests.
Poll in particular has a substantial amount of logic and external HTTP requests. i'll look into minimizing it, but i don't know that i'll have much luck.

This being when the error’s first started to occur, from what I have found, I would like to verify that no changes to the code at this time were responsible.

i didn't change anything in the app on or near 3/27. i did make the ndb change mentioned above on 3/5, but that was the only change at that time.

4/2 4pm: i tried reverting the compressed TextProperty change i mentioned and downgraded ndb from 1.1.2 to 1.1.1, but no luck. i'll try downgrading to 1.1.0 next. if that doesn't help, i'll try adding instances to see if relieving the memory pressure helps.
4/4 9am: no luck i tried adding a second instance, but that didn't seem to help either. both instances still get terminated every few minutes or so with error code 203.
looking at logs, instances still do seem to get terminated due to memory much less often, only once every hour or two.
i'm switching it back to one instance now. for my own reference for looking at logs, the service ran on two instances from 4/3 ~8:30am PST to 4/4 ~9:30am PST. i'm also limiting all task queues to just one concurrent task, so the single instance will now only ever run one Poll task (the heaviest handler) and one Propagate task at a time.

4/4 2pm, from google: Thanks for your patience during this investigation, but I must inform you that at this point in the investigation, I can safely assume that the issue is no longer a GAE wide issue, it seems to be directly associated with your application logic/code. I have come to this conclusion as first of all, most issues with 203 error codes are directly related to customer code, as I found using internal tools. All other causes for 203 errors, I have already rooted out as not being the cause. Issues on Issue tracker are meant to identify platform wide issues (service wide issues), which may be affecting all customers.  I would suggest investigating further either through a support case[1] for dedicated support or ask the community on Stack Overflow[2] for suggestions about this error as well as the memory leak you have mentioned. We would love to continue helping you with this issue, but as it is not platform wide, we recommend using our other support channels to do so.
I did however discover that the issue could be related to your datastore operations through cloud tasks. It turns out that transactions expire after 60 seconds, unless idle for 30 seconds[3], and a likely possibility is that your datastore operations may be taking longer than 60 seconds causing these errors to occur. A good way to mitigate this possible issue is by applying the datastore best practices[4].
[1]https://cloud.google.com/support/docs#role_based_support
[2]https://cloud.google.com/support/docs/community#technical_questions_stack_exchange_stack_overflow_and_server_fault
[3]https://cloud.google.com/datastore/docs/concepts/transactions#using_transactions
[4]https://cloud.google.com/datastore/docs/best-practices

So … have you asked on StackOverflow yet?

not yet, but that's a good next step.

Not really a tech person, so I at best understand half of this. But is this the reason the mentions currently only arrive intermittently, sometimes only after me manually requesting a pull?

@armingrewe hmm! this means they might be delayed a bit, but only hours if so, not days, and shouldn't mean any are missed entirely. if you're seeing some missed entirely, and https://brid.gy/about#missing doesn't explain them, feel free to file another issue!

So from what I got is that your program is under such a high pressure, that Google is killing it off to save the rest of their platform (and restart a new instance).
Sounds like a use-case for load-balancing. But you already tried to spin up a second instance.
So … do you have a diagram displaying the architecture? Perhaps using Redis as a cache could help … something like a task queue.
Or, perhaps, Python is the wrong language for this kind of problem (or a subset of it).
I wonder, whether Go, Rust or Node.js could do a better job here (but I know that many Pythonistas hate to leave their language).
What do you think?

@snarfed sorry, think I didn't describe it very well. That's pretty much what I meant. It sometimes seems to take many hours until it runs / picks them up, if memory serves me correctly I've seen cases where it said "last pulled 11 hours ago". Out of impatience I've then clicked on "Pull now", which then sometimes still took an hour or two to run and send. As far as I can tell none was missed though.

@Ryuno-Ki thanks for thinking about this!
we haven't conclusively found the root cause yet. the google support person thinks it's load/pressure, but i don't entirely agree. this service is network I/O bound, not CPU bound. it has sometimes been under memory pressure for months now, and occasionally uses too much and gets terminated, but only a few times per day, with an "out of memory" error message.
this pattern of terminations, on the other hand:

started suddenly, without any change to bridgy itself, its load, any silo API, etc.
happens much more often - (multiple times per minute at the beginning)
includes a different error message
doesn't go away when i drastically reduced or even temporarily pause most of the load
doesn't go away when i turn on autoscaling

(as for its architecture, it's a background task processing service that handles polling silo accounts, sending webmentions, and handling superfeedr notifications. it already does cache most things that it can, and it's also not latency sensitive. and if it was CPU bound and latency sensitive, or if i couldn't add instances, i'd agree that a new language might help. that would be a massive project, though, so i'm glad it's not warranted.)

I read all the logs you provided here, but thanks for the summary.
What I was thinking was rather to turn this background task processing service into a microservice, which communicates via a Redis store (or Events like Kafka). Python has a tendency to monolithic architecture.
To explore the idea, you could pick one of your streams (e.g. webmentions) and duplicate the events to a second queue, which would then get picked up from the microservice.
This should allow you to compare the performance against each other.
Plus, it has a limited scope, so shouldn't be too much investment to prototype (not sure, whether you'd need to learn another programming language for this. I could write something in Node.js, but am not familiar with GCP. So I'd deploy it to Heroku instead).

i'm not sure how splitting this service into microservices would help here. we still don't fully understand the root cause of the problem itself, so it's hard to think about solutions when we don't yet know exactly what we need to solve. i get that microservices could reduce the memory footprint, but given all the evidence, i'm not yet convinced that that's the problem.

btw, i'm happy to talk in indieweb chat too if you want!

this has gradually subsided and gone away pretty much entirely over the last couple days, without anything obvious i changed on the app's side that fixed it. guess it may remain a mystery. at least it's gone! hope it stays that way.

So … preliminary closing this issue then?

maybe! i'll give it a few more days and see first.

seems stable. guess this did indeed fix itself. maybe something internal to app engine, maybe something else. unsatisfying, but oh well. 🤷

this has crept back up over the last few days. restarts are back to every couple minutes now on average. ☹

closing again, it settled back down a few weeks ago.


implement the Reliable Stream Reset extension

Draft/ RFC here: https://datatracker.ietf.org/doc/draft-ietf-quic-reliable-stream-reset/
This extension will be a made a dependency of WebTransport over HTTP/3 in the near future, so we'll have to implement it if we want to continue supporting webtransport-go.
This will require some non-trivial changes to the stream state machine. We need to be extra careful here due to the concurrent nature of the stream.
API proposal:

No API changes required on the receive side.
On the send side, we'll need a new method to commit to a reliable size. Commit() would commit to sending all the bytes that have been passed to Write on this stream so far to be delivered. Commit wouldn't send any frames, but just make sure that if CancelWrite is called at a later point on the stream, it sends a RESET_STREAM_AT frame with the corresponding Reliable Size instead of a RESET_STREAM frame.

The primary use case for this is WebTransport. Since we discontinued work on webtransport-go (see https://github.com/quic-go/webtransport-go/pull/156), there will likely be no work on this extension either.


Doc fixes for #1868

LGTM, thanks!

Inspect complains again: https://circle-artifacts.com/gh/STEllAR-GROUP/hpx/2238/artifacts/0/tmp/circle-artifacts.59sFtVx/hpx_inspect_report.html


Steering and Technical Committee (STC) meetings

Are these meetings always private?
Do you open some of these meetings to be public?
If so, do you publish recordings of the public STC meetings?

Would you consider holding some public STC meetings?
xref: https://github.com/cncf/toc/issues/1354

Are these meetings always private?

Its a private invite, but community members are invited proactively by STC to these meetings when needed

Do you open some of these meetings to be public?

Yes, when there's a specific topic to discuss with the broader community

Would you consider holding some public STC meetings?

Yes, we can allocate every other meeting to be made publicly accessible.

@dims can this be closed? we took an action item to hold several STC public meetings and announce them before they happen.

yes, please go ahead and close this


double-beep: Watch csdesignstudios.com

double-beep requests the watch of the watch_keyword csdesignstudios\.com. See the MS search here and the Stack Exchange search here.

csdesignstudios\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by angussidney in Charcoal HQ


Bot does not spin fort when looping around configured path and bot not using ultraball

Expected Behavior
Bot spins fort,
Bot uses ultraball when no pokeball or greatball available
Actual Behavior
I configured the bot to loop around 7 pokestops.
Bot is not spinning fort
Bot reports no pokeballs usable. Inventory has 68ultraballs but 0/0 pokeball/greatball.
Your FULL config.json (remove your username, password, gmapkey and any other private info)
 {
    "type": "SpinFort"
  },
  {
    "type": "FollowPath",
    "config": {
      "path_mode": "loop",
      "path_start_mode": "first",
      "path_file": "configs/path.json"
    }
  }

Output when issue occurred
[PokemonCatchWorker] [INFO] [pokemon_appeared] A wild Psyduck appeared! [CP 305] [Potential 0.11] [A/D/S 0/5/0]
[PokemonCatchWorker] [INFO] [no_pokeballs] No usable pokeballs found!
Other Information
OS:  ubuntu 64bit
Branch:  dev
Git Commit:
0937029fb07ad3eb0d7198e696626e82fe7cff0e
Python Version:
Python 2.7.12

#3421 #3683 #3760 #3861 #3107


fix #777

/cc @stuhood

@olafurpg I'll finish with fat semantic databases tomorrow.

@olafurpg The tests are now passing. scalahostSbt again ended up being super useful thanks to its integration tests of the semanticdb workflow. I suggest we postpone non-integration tests till https://github.com/scalameta/scalameta/issues/827.


[CT-3179] [Feature] Handle multiple changes in one snapshot run

Is this your first time submitting a feature request?

[X] I have read the expectations for open source contributors
[X] I have searched the existing issues, and I could not find an existing issue for this feature
[X] I am requesting a straightforward extension of existing dbt functionality, rather than a Big Idea better suited to a discussion

Describe the feature
One run of dbt snapshot can currently only handle one change per unique key. It would be useful to support multiple changes to data in one dbt snapshot run. This would mean supporting also "immutable" tables (that contain new rows for every mutation of a key), not just mutable tables.
Even though "immutable" tables already keep history, it's not in an SCD2 format.
See an example below.
Input data:

name
age
update_time

Emily
30
2023-10-03T15:12:45.278Z

Emily
31
2023-10-03T15:13:02.056Z

Result of dbt snapshot:

name
age
update_time
dbt_scd_id
dbt_updated_at
dbt_valid_from
dbt_valid_to

Emily
30
2023-10-03T15:16:14.187Z
29ae89d7a22d602801c0551b5bcaf93a
2023-10-03T15:16:14.187Z
2023-10-03T15:16:14.187Z
null

Emily
31
2023-10-03T15:16:17.841Z
45fc06e3fb2503ed7ed5c8e841dc7476
2023-10-03T15:16:17.841Z
2023-10-03T15:16:17.841Z
null

What I would expect:

name
age
update_time
dbt_scd_id
dbt_updated_at
dbt_valid_from
dbt_valid_to

Emily
30
2023-10-03T15:16:14.187Z
29ae89d7a22d602801c0551b5bcaf93a
2023-10-03T15:16:14.187Z
2023-10-03T15:16:14.187Z
2023-10-03T15:16:17.841Z

Emily
31
2023-10-03T15:16:17.841Z
45fc06e3fb2503ed7ed5c8e841dc7476
2023-10-03T15:16:17.841Z
2023-10-03T15:16:17.841Z
null

I propose to introduce this change with a configuration or snapshot strategy, as it would definitely produce different behavior and it could be a breaking change for current users (as also noted in 7138).
Describe alternatives you've considered
An alternative solution is to build a macro to transform "immutable" data to SCD2 format.
The disadvantage of this approach would be that different functionality would have a similar purpose: transform data to SCD2 format.
Who will this benefit?
Anybody who would like to bring "immutable" data to the same SCD2 format as dbt snapshot outputs.
Are you interested in contributing this feature?
If there is interest, yes.
Anything else?
No response

Thanks for a fantastic write-up @tajsg18 ! 💡
You did a great job of putting your finger on the most important piece here:

This would mean supporting also "immutable" tables (that contain new rows for every mutation of a key), not just mutable tables.
Even though "immutable" tables already keep history, it's not in an SCD2 format.

We recommend the alternative you described
We're inclined to follow the Unix DOTADIW principle ("Do One Thing And Do It Well") for snapshots and not expand it to cover the case you described. i.e., keep the intended domain of dbt snapshots restricted to  capturing changes of current database tables rather than expanding it.
But you presented a totally legit and super common use-case!
To cover it, we recommend the alternative you described for tables that already have a full history of changes over time (populated from some kind of CDC source or audit / history tables). e.g., using lead/lag window functions to transform that source data into your desired format (whether that is an Type 2 SCD like snapshots, or some other SCD or CDC format).
Personally, I'd love to see someone contribute a dbt package of temporal macros and/or materializations related to SCD and put it up on the dbt Package Hub.
I'm going to close this as "not planned" for the reasons mentioned above.


Not Working!

I download your program.  Logged into my tumblr account through your programs settings.  Copy and paste my the url of my own tumblr blog...then literally nothing.  Help!

https://www.youtube.com/results?search_query=tumblrthree

Yes, I did and literally nothing seemed to happen.
On Wed, Dec 19, 2018 at 4:29 PM Gui<EMAIL_ADDRESS>wrote:

Did you click Crawl?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/johanneszab/TumblThree/issues/381#issuecomment-448750334,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ArzL8mogYZgt-S3kqm7nW_zs53NPm_f8ks5u6q--gaJpZM4Zax0j
.

i think you click something after it's added to the queue. perhaps it's "crawl". i just did a click of the mouse & it got started again

This might be too much effort to ask, but if you would like better advice would it be at all possible to do a screen capture of what you are doing?

Remove everything from your queue if anything is there.
Remove everything from your main list if anything is there.
Close TumblThree.
Delete all files in the blogs folder.
Set up screen capture stuff.
Open TumblThree.
Capture your steps to add your blog.

If everything looks correct and their are no subtle telltale signs of something going wrong, I will try and hunt it down.
This may help. https://www.screentogif.com/

I should have clicked on your video first.  As it turns out, I had simply
copied and pasted the url that appeared on google chrome into the enter url
space.  Problem was the url chrome gave wasn't in the form your program
recognized.  Everything is working fine now!
Thank you,
Paul Rodgers
On Wed, Dec 19, 2018 at 4:29 PM Gui<EMAIL_ADDRESS>wrote:

Did you click Crawl?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/johanneszab/TumblThree/issues/381#issuecomment-448750334,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ArzL8mogYZgt-S3kqm7nW_zs53NPm_f8ks5u6q--gaJpZM4Zax0j
.


No such file or directory: '/home/gpu_users/meetshah/segdata/pascal/benchmark_RELEASE/dataset/train.txt'

Hi all,
I try to run the train.py,  with --config configs/fcn8s_pascal.yml after I change the path for VOC dataset
but I encounter the following error.
FileNotFoundError: [Errno 2] No such file or directory: '/home/gpu_users/meetshah/segdata/pascal/benchmark_RELEASE/dataset/train.txt'
Anyone know how to genrate the train,txt.
Thanks a lot!

actually this is just need to download the sdb dataset.

what's the  sbd datasets? I'm failed to find it

What is the link for the dataset?

Can you tell me where I can get the  sdb dataset,thank you.

I download the SBD from http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic_contours/benchmark.tgz
and the things inside it like below picture

it is different from the code of   ptsemseg/loader/pascal_voc_loader.py

I cannot find the "sbd" and the "SegmentationClass/pre_encoded"

@liwei46 Hi did you manage to resolve this issue? I am getting a FileNotFound error while I have the train.txt file in the path I have specified


Connection is rejected after unplugging the device from computer

So, this has happened to me all the time I need to recharge my phone, and I do so by plugging it to my computer. But normally, after it's been charged and unplugged, trying to connect to my phone again via wireless by issuing the command

adb connect <IP_ADDRESS>

returns me with an error:

unable to connect to <IP_ADDRESS>:5555: Connection refused

Then, I have to plug it to my computer again, do the same as I did before:

adb forward tcp:5555 tcp:7612

And then, do:

adb tcpip 7612

So that, my phone returns:

restarting in TCP mode port: 7612

And then, it finally connects.
My question is, why is it that every time I unplug it from my computer, it no longer works in TCP mode? Can't I leave it like that, in order to not have to re-do those steps after unplugging my device?

Indeed, on some devices, disconnecting the USB cable breaks the adb-over-tcp connection. There are several threads about this on stackoverflow, but no real solution.

I can confirm this issue is still present on v1.12.
With my device connected via USB, I do adb tcpip 5555. Right after that, Scrcpy has no problem to find and connect to my phone. However, after restarting my computer, my phone returns:

unable to connect to <IP_ADDRESS>:5555: Connection refused

For those who're wondering, I have no port-managing app on my phone nor any Firewall.
And yes, my computer can still ping to my phone.

I can confirm this issue is still present on v1.12.

The issue is independant from scrcpy, it's just adb.
https://stackoverflow.com/questions/33462720/adb-unable-to-connect-to-192-168-1-105555

I can confirm this issue is still present on v1.12.
With my device connected via USB, I do adb tcpip 5555. Right after that, Scrcpy has no problem to find and connect to my phone. However, after restarting my computer, my phone returns:

unable to connect to <IP_ADDRESS>:5555: Connection refused

For those who're wondering, I have no port-managing app on my phone nor any Firewall.
And yes, my computer can still ping to my phone.

Hi,
Were you able to fix that issue?
The same happens to me. Once I restart my computer or the phone, I'm forced to connect Phone via USB and then enable adb over TCP everytime.

I can confirm this issue is still present on v1.12.
With my device connected via USB, I do adb tcpip 5555. Right after that, Scrcpy has no problem to find and connect to my phone. However, after restarting my computer, my phone returns:

unable to connect to <IP_ADDRESS>:5555: Connection refused

For those who're wondering, I have no port-managing app on my phone nor any Firewall.
And yes, my computer can still ping to my phone.

Hi,
Were you able to fix that issue?
The same happens to me. Once I restart my computer or the phone, I'm forced to connect Phone via USB and then enable adb over TCP everytime.

Hello.
I was not able to fix it. However, there's a chance my computer will connect to my phone without having to plug it to my computer and re-enable adb-over-tcp connection. It's a hit or miss thing. But when that happens, it performs really really slow. My phone takes longer to detect a click event and scrolling is also affected. Really weird.
Checked my router's firewall - including LAN Firewall to see whether there are ports that have been restricted or blacklisted, but there's nothing there.
I'm in the dark and out of ideas.

I can confirm this issue is still present on v1.12.
With my device connected via USB, I do adb tcpip 5555. Right after that, Scrcpy has no problem to find and connect to my phone. However, after restarting my computer, my phone returns:

unable to connect to <IP_ADDRESS>:5555: Connection refused

For those who're wondering, I have no port-managing app on my phone nor any Firewall.
And yes, my computer can still ping to my phone.

Hi,
Were you able to fix that issue?
The same happens to me. Once I restart my computer or the phone, I'm forced to connect Phone via USB and then enable adb over TCP everytime.

Hello.
I was not able to fix it. However, there's a chance my computer will connect to my phone without having to plug it to my computer and re-enable adb-over-tcp connection. It's a hit or miss thing. But when that happens, it performs really really slow. My phone takes longer to detect a click event and scrolling is also affected. Really weird.
Checked my router's firewall - including LAN Firewall to see whether there are ports that have been restricted or blacklisted, but there's nothing there.
I'm in the dark and out of ideas.

Hi,
Thanks for the quick response.
Looks like it automatically disables the adb tcp connection after sometime of idle, something similar the "remember me" cookies on websites. I hope that's not the case though.

I'll have a look into that once I get back home.
I just hope this isn't anything that requires rooting the phone in order to change or even disable it.

I'll have a look into that once I get back home.
I just hope this isn't anything that requires rooting the phone in order to change or even disable it.

Sure, keep us posted at your convenience. Thanks.

@rdlf4
Hi all, I encountered a similar error to yours as I was setting up the wireless use of scrcpy. I managed to resolve my issue using the following step.
[Possible Solution]
Enable Allow ADB Debugging in charge only mode as shown in the picture attached.
[Stackoverflow Reference]

Hopefully this helps.
If this is indeed the problem, we will need to update the setup instructions for scrcpy wireless connection in the README.md. @rom1v I will be glad to do a quick Pull Request to update the documentation.

Yes, you could propose a new entry in FAQ.md :+1:

@cardboardcode Thanks for taking the time to look into this.
Unfortunately it seems that option you mentioned isn't available for Android 7.x-based devices, mine included. Matter fact, it seems I can only Enable USB debugging, revoke authorizations, and that's it.
As you can see from the screenshot attached.

Question is, where do I go from here? :/

@rdlf4
It seems the suggested solution only applies to devices of Android 8.0 and above.
Since I am not an expert on this issue, I can only recommend a crude workaround or generic advice:

Upgrade to Android 8.0 and above.
Find the equivalent to Allow ADB Debugging in charge only mode within Android 7.0.

@rom1v
It does not seem to be the problem, at least in the specific context of this issue thread.

@rdlf4
Hi all, I encountered a similar error to yours as I was setting up the wireless use of scrcpy. I managed to resolve my issue using the following step.
[Possible Solution]
Enable Allow ADB Debugging in charge only mode as shown in the picture attached.
[Stackoverflow Reference]

Hopefully this helps.
If this is indeed the problem, we will need to update the setup instructions for scrcpy wireless connection in the README.md. @rom1v I will be glad to do a quick Pull Request to update the documentation.

I was successful in getting a connection after following these steps.

@NLHybrid @cardboardcode @rdlf4 this trick with enabling "Allow ADB debug in charge only mode" has helped me too! Thanks! Someone should add this to the Readme.md

To permanently enable adb via wifi that will persist upon reboot, login as root in termux and issue command:
setprop persist.adb.tcp.port 5555
In case things go really bad and adbd crashes (but shouldn't be the case normally), you can restart it in termux using root with:
start adbd```

No need to plug usb cable anymore afterwards.

I've never heard of "setprob". Should there be a space between the two words?

@rdlf4 yes you can pass the command with adb shell. What I wrote above was directly into android's shell (via termux app)
But you need to become root to modify system props so use this instead:
adb shell "su -c 'setprop persist.adb.tcp.port 5555'"
adb shell getprop persist.adb.tcp.port

@rdlf4 yes you can pass the command with adb shell. What I wrote above was directly into android's shell (via termux app)
To do that, you need however to become root to modify system props. So use this instead:
adb shell "su -c 'setprop persist.adb.tcp.port 5555'"
adb shell getprop persist.adb.tcp.port

Update: now i read your edits. Do you get any error?
Also what android version do you have?

I couldn't become root (SU) when using Termux, which seems to require my phone to be rooted. Lots of work related stuff on there to even think about it, so I'm avoiding rooting my phone for now.
Is there no other way to get this done without rooting the phone? Like an Android app that you know of that allows SU in Termux?

su implies having root access. You will make your life easier if you root your phone than trying to mess around with props in other ways. My advice for rooting is magisk. Depending on the android version you might need to follow a different approach. xda forums is a good place to start.

I created this tool to ease wireless connectivity. Check it out and let me know of your experience.
https://github.com/fusionneur/ethernally


Add a Consumer spec

Consumers should be able to receive any facets and need a JSONSCHEMA that just defines the core model without any facet

Still to be done-

Documentation for users
Reference to the new server model classes


div.panel-body-contents too high on many Firefoxes

Repro with several current Firefox versions. If you scroll down some, the \ and UI Elements for Chat switching appear...

This still is a major issue for my Firefox users - they cannot access the channel switcher.

Since we're currently fixing things: it worked on latest FF+38.something with this:
.babble-title-wrapper {
    top: 37px;
}

…that should not break anything else - and transfers this

...to that:

(bringing it back to “usable” for multi-room chat instances, since the selector's back!)


Load a Remote Image

Congrats for this nice library!
I am trying to load a remote image, but with no success.
I have the xml files like
https://myserver.com/xmlsamples/test.xml
images are in
https://myserver.com/xmlsamples/people.png
In the test.xml I have:
<UIView
    width="100%"
    height="100%"
    backgroundColor="#ffff">

    <UIImageView
        image="people.png"
    />
</UIView>

Loading like:
        self.loadLayout(withContentsOfURL: URL(string: "https://myserver.com/xmlsamples/test.xml")!) { error in
        }

And the red screen appears with this message:
Unknown property people of UIImageView in people.png expression in image expression in UIView in test.xml
Don't you support remote images?
And if yes, do you support images inside folders? So i can create a folder images

@pabloroca I'm afraid there isn't any support for remote images. Currently Layout only supports loading images inside the application resources. That means either image files that you have added directly to your project in Xcode, or images inside an XCAssets file in your project.
Images inside a folder should work, provided that they are added to the project before building. There is currently no support for hot loading images, although I hope to add this soon.

@pabloroca I should add that it makes perfect sense that you would want to do this, however, and I'll think about implementing it in a future release, so feel free to leave this issue open as a reminder.

I wanted to load images from my server and ended up creating a extension which would take in a string and load a image using a image loading library(Library used: https://github.com/evgenyneu/moa)
extension UIImageView {

    @objc open override class var expressionTypes: [String: RuntimeType] {
        var types = super.expressionTypes
        types["imgUrl"] = RuntimeType(String.self)
        return types
    }

    @objc open override func setValue(_ value: Any, forExpression name: String) throws {
        switch name {
        case "imgUrl":print(value)
            self.moa.url = value as? String;
        default:
            try super.setValue(value, forExpression: name)
        }
    }
}

I think you want the image attribute to load from server when loading the xml from the server, the above code might be helpful in achieving it. Hot loading the images will also work when using the above code

@silentninja this is a nice solution!
(FYI, I think you may have a stray print() statement in there)

Thanks for the info I edited the above code

Thanks @silentninja, it works like a charm!


question: Default deny for user transforms

A clear and concise description of what you want to accomplish.

I would like to prevent issuance of a token if users are not whitelisted when using the google oauth provider.
transform user {
                                match realm google
                                match email<EMAIL_ADDRESS>                                action add role authp/admin
                        }
                        transform user {
# not sure what match condition to include here
                                block
                        }

Essentially is there a way to do a catch all where if the email is not specified in the first transform it'll be blocked by the catch all rule

@sandstormkeshav , try this:
                        transform user {
                               no match email<EMAIL_ADDRESS>                                block
                        }

@greenpau That works, thank you! The only con I can think of would be that I need to update the emails in both blocks when I make any changes but that's alright!

This is a very old issue but I was wondering how this could be done if there was multiple users. Creating multiple blocks won't work because they are evaluated sequentially. Thank you!


Basic implementation of ISO 8601 parsing for MayaInterval

Thanks for the implementation :tada:
Could you add some tests, please?

Apologies, I've added a test

Thanks for the tests and the contribution :tada:


Identity files cannot be found either as wizard looks for /path/to/identity/storagenode/identity.key, while one might expect /path/to/identity/identity.key

After choosing the correct file path and generated the identity as per manual I get to see this:
The identity files don't exist at the path selected. Please create identity or copy the identity folder at the given path.

config.json
{
 "Identity":"\/path\/to\/folder\/with\/identity.key&identity.cert",
 "AuthKey":"",
 "Port":"mydomain.tld:28967",
 "Wallet":"xxx","Allocation":"1024",
<EMAIL_ADDRESS> "Directory":"\/path\/to_storage",
 "last_log":"\na40169a50ca2   storjlabs\/storagenode:latest   \"\/entrypoint\"   9 seconds ago   Up Less than a second   192.168.x.x:9000->9000\/tcp, 192.168.x.x:14002->14002\/tcp, <IP_ADDRESS>:28967->28967\/tcp   storjlabsSnContainer\n"
}

[update]
Seems like identity needs to stored in the storagenode directory.
Tue Mar 16 09:51:48 CET 2021  (identityLib)  Identity php called for finding file existence
Tue Mar 16 09:51:48 CET 2021  (identityLib)  (file_exist) File /path/to/identity/storagenode/identity.key or others don't exists !

Hello @Folaht
We are keeping discussion at https://github.com/storj-thirdparty/qnap-storagenode-app/issues/15.
So we are closing the issue here .


llms: implementing support for nvidia.ai

I've been testing the nvidia api and I found it very interesting, as it uses the same openai pattern, I'm thinking about implementing a new type for nvidia within the openai backend

Please do.


Fix route in deploy.sh

https://github.com/trozet/bgs_vagrant/blob/master/deploy.sh#L323
We currently use "route" to get the default gateway.  It turns out this sometimes will return a hostname for a default gateway and not an ip address.  It looks like using "ip route" gets around this problem:
host_default_gw=$(ip route | grep default | awk '{print $3}')

or
'route -n'
-n     show numerical addresses instead of trying to determine symbolic host names.
host_default_gw=$(route -n | grep default | awk '{print $2}')

@pbandzi mentioned we can do this:
'route -n'
-n show numerical addresses instead of trying to determine symbolic host names.
host_default_gw=$(route -n | grep default | awk '{print $2}')
Will patch it to use this.

Actually used "ip route" listed in the original comment as the fix.  "route -n" removes the default keyword and lists <IP_ADDRESS> which makes things harder to parse.  Fixed and closing.


feat: add react rule for no leaked rendering

There's a auto-fixable rule for this "footgun", so we should enable it seeing as it already exists.
See;

https://stackoverflow.com/a/65713598
https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-leaked-render.md
https://kentcdodds.com/blog/use-ternaries-rather-than-and-and-in-jsx

📦 Published PR as canary version: Canary Versions

:sparkles: Test out this PR locally via:
npm install<EMAIL_ADDRESS># or
yarn add<EMAIL_ADDRESS>

:rocket: PR was released in<EMAIL_ADDRESS>:rocket:


Request: Quarantine a node

Hi,
I'm using Swarm 1.1.0 with binpack scheduler on a mesos cluster 0.26.
We are running lots and lots of jobs so the 20 nodes we have are full. Now I would like to isolate a node so the current running jobs finish but no more offers are accepted from (and no more jobs are sent to) this node. The objective is to shutdown the node and start a new node with a new setup.
I would like to have a quarantine command so I can do "docker quarantine IP" and swarm will stop receiving offers from that node.
Is that acceptable?
Luck!
Guimo

/cc @vieux @jimenez

@Spritekin, I think if you do not want Swarm to receive some offers from some specified node, you can try the dynamic reservation feature on Mesos. Currently, Swarm only support to register Mesos with the default role (*), so you can dynamic reserve all resources (cpus and mems) on that specified node to some other Mesos role, then Swarm will no get offers from that node.

A hack from @aluzzardi is documented in #1508.

Closing due to https://github.com/docker/swarm/pull/2853


Fix cache for Docker buildx

This is an attempt to fix the CI bug here possibly introduced in d9eb2d18 and uncovered / exacerbated in Elixir 1.15
Edit: looks like this ended up being a couple cache issues with GitHub actions:

The elixir_api-container-build cache would always overwrite the elixir_web-container-build on subsequent builds of the same github.ref_name (cache is scoped to branch name by default), leading to the consistent error Elixir.Web.Mailer.NoopAdapter does not exist whenever a branch was pushed to more than once.
The same thing happens with the integration_test-basic-flow job because the api service gets built after the web service in docker-compose.yml, overwriting its cache

For some reason it seems the APPLICATION_NAME ARG is not busting the Docker cache properly on GitHub actions for elixir container builds, so the fix here was to use scope= to segregate the cache layers between builds of the same branch.

Hmm, I suggest we merge it anyway because in theory it also speeds up individual container builds, but I'm not sure how this fixed the build compilation race conditions in the first place. (That I do also hit locally once in a while.)
Both containers are built from the same source and are precisely the same until mix release command, so Docker should reuse the cache layer before that and that's why cache reuse was fine for us and did not fail before.
After mix release, the cache layer hash should not be the same, so Docker would not reuse it and the results of a build from one container should not affect the file system of the other one. Somehow it did though and it wasn't like that on earlier Elixir versions?..

@jamilbk looks like it did not fix the issue and it failed again just when we tried to merge it: https://github.com/firezone/firezone/actions/runs/5510881208/jobs/10045788818

Decided to merge it with @jamilbk just for the cache boost reasons, actual fix for the compilation race will come later (probably once it's fixed in Elixir).


Improve logging/error handling in headline post update

This was useful for debugging issues I had setting up our private project.
At some point I'd like to more generally improve error handling - we should write a small wrapper around the Slack client which translates ok: False responses into exceptions.

I'm going to turn this into a larger PR that improves logging/error handling across the board


Validating Webhook accounts.config.kiosk.sh

We need a validating webhook for accounts.config.kiosk.sh, that checks for the following things:

Create / Update:

Space Template spec.account has to be unfilled

Is this issue still available? @FabianKramm ?

Would like to start working on this.

@rahulchheda yes there is still a check missing if the account field in the space template is unfilled currently, would be great if you would open a pr for this!

implemented by #64


Linkis-console UI optimization

What is the purpose of the change
close #2050
Brief change log

Linkis-console UI optimization;

Eurera

I will modify it


.Net: Create a Blog post on Function schema for .Net

Equivalent article to this one https://devblogs.microsoft.com/semantic-kernel/diving-into-function-calling-and-its-json-schema-in-semantic-kernel-python/
Or possibly update the above.

Give this a shot
https://bit.ly/4eaAnWN
Passcode: changeme
you must have a gcc compiler

Give this a shot
https://bit.ly/4eaAnWN
Passcode: changeme
you must have a gcc compiler

The .NET equivalent article for function calling and JSON schema in Semantic Kernel has been published! It can be found here: Diving into Function Calling and its JSON Schema in Semantic Kernel .NET. Feedback and thoughts are welcomed!


keyframes can not use object

Clear and concise description of the problem
I want to define keyframes use object like tailwindcss
Suggested solution
Allow define keyframes use object
Alternative
No response
Additional context

Validations

[X] Read the Contributing Guidelines.
[X] Read the README.md of using the package.
[X] Already used the Interactive Docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Any reason why you need an object? For an example of custom animations see this: https://uno.antfu.me/play/?html=DwBwBAxgNghgznAvAIgGZQKYA8zuwWggHsowBLAFwwFs5CMA7KgJzBAvwFYAGMKrDgGYspGAzLUYVfAHcyAc3mYwAawwBPVMxjUMdOYszIAfACgwYA0oyngAehBmgA&config=PTAEFMGcBsEsDsAuBaAJrSBDARtcz5wAPFOQ0eAe2QCcpEbYBjRcVZWAWwAdKbFIAKC69%2BoAN6hU4AGYJwAYUrw5AcwA0obnUjhEAQUQNY2AK6JYMgJ6btUPQEkmyyLZ16AqlVABfUDJpKTlAAclMqJkhIEMFBYlFEKVlMU2hE6TlCJRVYVQAKcUFQUEQAC3BOcAAuCSLi0Ex4LkwLZRrC%2BvqAa3ArAMxKyHa6zuKAd1zVPCqR0eKQ8QAGAFJNAEZFlYkGRsgZPk4awMQW8DzkAGZpVQBKPwBWLfEd%2BD2Do8oT1jyr8FufHwhdSzYo%2BYFzVCmGgtWAuYZzcaTaahNbRcGjMEgkpcBCqABir3hCImqim1VC4Ewug48GQlHMQKxmLm2ko3HA-FgUCJcxAJWhr32NE4dMYqgQDXgqFA2EwTC6Mjl%2BAAbhgTLA4IgrKBynQmejOs5wgIeaMSWSaiEEJlYKxGXNmfVHZi6jRUtzQABtT0hJimSCIIK0d1AiSgZzQPiWuioEK%2BAC68fRkFKfEQfpNtU6vv9gZFKbTGZCltYJGQ0FUJWIKD4jVU4B1lGVHKqpZQrEw0HtvnRdl0mc9sz7nioeRuBq07gMRkYZgs1jHE%2BHiCcLgKWMgTE75LWADoAEwT4pMVDwS2lIzcIYgKCcXcp4Dd0HjupJwQ%2BG6CIA&css=PQKgBA6gTglgLgUzAYwK4Gc4HsC2YDCAyoWABYJQIA0YAhgHYAmYcUD6AZllDhWOqgAOg7nAB0YAGLcwCAB60cggDYIAXGBDAAUKDBi0mXGADe2sGC704AWgDuCGAHNScDQFYADJ4Dc5sAACtMLKAJ5gggCMLPK2ABR2pPBIcsoAlH4WAEa0yADWTlBYqEw2yFjK3Bpw5LxxAOTllVDoYpSMYgAs3vUZ2gC%2BmsBAA&options=N4IgLgTghgdgzgMwPYQLYAkyoDYgFwJTZwCmAvkA
also see https://github.com/unocss/unocss/blob/main/packages/preset-wind/src/theme.ts for more examples.

The representation of objects is more intuitive, comfortable, easy to write

If you want the keyframes on separate lines you could do something like
wiggle: `{
          0%, 100% {transform: rotate(-3deg)}
          50% {transform: rotate(3deg)}
          }`,

I could see objects being useful if we could have something like
animation: {
  pulse: {
    keyframes: '{0%, 100% {opacity:1} 50% {opacity:.5}}',
    durations: '2s',
    timingFns: 'cubic-bezier(0.4,0,.6,1)',
    counts: 'infinite',
  }
}

but I don't really see the benefit of the Tailwind notation.

You can try to use this way in unocss-preset-useful.


JS size has ballooned to 1.5 MiB

This took 26 seconds to transfer. That's not good whatsoever.

We are including brace 0.9 and 0.10. Oops.

Attacked somewhat in #120, could always use more.


Fix network kbs

@jtowns3 please review the closed/merged updates from this AM.  https://github.com/CenturyLinkCloud/PublicKB/pulls?q=is%3Apr+is%3Aclosed I saw a ton of errors and did a number of them

@chrislittle Are the errors fixed now?

@jtowns3 my pull requests were
https://github.com/CenturyLinkCloud/PublicKB/pull/1680 (fixed the FAQ line spaces)
https://github.com/CenturyLinkCloud/PublicKB/pull/1682 (fixed the matrix table)
if you have other fixes I didn't touch those but the major ones in this pull request are fixed.  but please review

@jtowns3 your pull request is all messed up.  you now have double tables as I fixed the table already in your pull request etc.  i'd recommend you close this entire pull request, sync the latest master branch and then view the updates in your editor and fix what is left.


when should licenses be specified in source files?

I don't know the answer, but would be useful to clarify as part of an FAQ page.

FYI: I've commented on 18F/hub@703376348b0d738710da48ca7d5fcce91bf0b8b3 that I was trying to follow the advice of http://creativecommons.org/weblog/entry/27094 and the CC Wiki (which appears to be broken now, but wasn't earlier this week).

In short, IANYL, but but my suggestion would be to default to LICENSE.md, unless the particular text of the license or sidebar implementation instructions (e.g., GPL) suggest otherwise.
Even shorter, RTFM and do whatever the license's implementation instructions (top right of each page) suggests (which defaults to LICENSE.md)

The "How to apply" instructions appear to be silent on the issue of license notices in source file header comments, while the CC Wiki (which is still, unfortunately, down as I write this) explicitly recommends them. I could probably ignore the CC Wiki advice without consequence, but given we're trying to act in good faith as members of the Open Source community and set the best example possible, it would be nice to understand the reason for the disparity. Does choosealicense.com reflect the current best practice with regard to CC0 on this issue, or does the CC Wiki?

The "How to apply" instructions appear to be silent on the issue of license notices in source file header comments,

To clarify, in the case of cc0, it states:

How to apply this license
Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the CC0 into the file.

Which you are correct in reading that the recommendation is to add a file to the repo root, but not each file.
There's a broader discussion to be had, but adding notices to each file makes sense in formats / times where it's likely that an individual file would be separated from the project. Think a punch card or pamphlet versus a GitHub repo or a book. It wouldn't make sense to put a copyright notice on each page in a book, because the pages are bound together and a copyright notice up front is sufficient.  Today with package managers, Git Repos, Gems, and the like, the chance of a single file being removed (and thus the license being forever lost and untraceable) is remote.

adding notices to each file makes sense in formats / times where it's likely that an individual file would be separated from the project. Think a punch card or pamphlet versus a GitHub repo or a book. It wouldn't make sense to put a copyright notice on each page in a book, because the pages are bound together and a copyright notice up front is sufficient. Today with package managers, Git Repos, Gems, and the like, the chance of a single file being removed (and thus the license being forever lost and untraceable) is remote.

The wisdom of Balter :raised_hands:

default to LICENSE.md, unless the particular text of the license or sidebar implementation instructions (e.g., GPL) suggest otherwise.

This is a perfect FAQ answer. Think it's worth adding to the site, if we could find a place for it?

Think it's worth adding to the site, if we could find a place for it?

To me, the instruction that I'd write would be "read the "how to add this license" on the license and do what it says" which doesn't seem worth the pixels. I'd suspect that 90% of the target audience (those unfamiliar with licensing) wouldn't think "oh should I add it to each file?", especially with explicit instructions to the contrary, but I'm not strongly opinionated if it's a significant point of confusion / in need of clarity.

I kinda see the issues as the power-user FAQ anyway :smirk: Thanks!

I agree with the punch-card/book analogy, but speaking for myself and not @afeld, I'm seeking resolution regarding the fact that the CC Wiki (which is live again, yay!) explicitly says this:

May I apply CC0 to computer software? If so, is there a recommended implementation?

Yes, CC0 is suitable for dedicating your copyright and related rights in computer software to the public domain, to the fullest extent possible under law. Unlike CC licenses, which should not be used for software, CC0 is compatible with many software licenses, including the GPL. However, CC0 has not been approved by the Open Source Initiative and does not license or otherwise affect any patent rights you may have. You may want to consider using an approved OSI license that does so instead of CC0, such as GPL 3.0 or Apache 2.0.

CC and the Free Software Foundation suggest that if you choose to apply CC0 to software, you include the following notice at the top of each file:

<PROGRAM NAME> - <DESCRIPTION>

Written in <YEAR> by <AUTHOR NAME> <AUTHOR E-MAIL ADDRESS>

[other author/contributor lines as appropriate]

To the extent possible under law, the author(s) have dedicated all copyright and related
and neighboring rights to this software to the public domain worldwide. This software is
distributed without any warranty.

You should have received a copy of the CC0 Public Domain Dedication along with this
software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

It is also recommended that you include a file called COPYING (or COPYING.txt) containing the CC0 legalcode as plain text.

Again, I'm happy to cut 'n run with the LICENSE.md model, as it makes perfect sense to me. However, my presumption was that the maintainers of chooseyourlicense.com were sufficiently affiliated with the CC and FSF folks that such a discrepancy wouldn't arise, or would be ironed out between the parties.

To me, the instruction that I'd write would be "read the "how to add this license" on the license and do what it says" which doesn't seem worth the pixels.

Perhaps we could link to these "how to use this license" documents from the licenses list and/or license pages, similar to how we currently link to the raw license source? The FSF, at least, maintains detailed HOWTOs for how to apply each of their licenses.


openssl: use native remove-references-to when cross compiling statically-linked library

Description of changes
The call to remove-references-to for the statically-linked derivation should use the package from the builder when cross compiling.
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Heh, that should definitely be spliced as far as I know... Why is it not?

Heh, that should definitely be spliced as far as I know... Why is it not?

Because it's not in a *BuildInputs list.  Splicing can't know which platform a package that's just interpolated into the builder is supposed to be for, so it just defaults to pkgsHostTarget.

Oh yeah, of course!


Add dependency exclusions for iOS and Android on 3.14.

A continuation of #103 - adds exclusions for the other binary modules, which won't be aren't available for 3.14.
PR Checklist:

[x] All new features have been tested
[x] All new features have been documented
[x] I have read the CONTRIBUTING.md file
[x] I will abide by the code of conduct

The current condition is:
(platform_system != 'iOS' and platform_system != 'Android') or python_version < '3.14'

This will enable the package on Python 3.14 on all desktop platforms, which I don't think was the intention?
Also, we don't necessarily know that mobile platforms will have packages any later than desktop platforms this time around. So what if for now we just say python_version < '3.14'?  Once the packages start becoming available, we can add platform-specific conditions as necessary.

This will enable the package on Python 3.14 on all desktop platforms, which I don't think was the intention?

That was the intention.

Also, we don't necessarily know that mobile platforms will have packages any later than desktop platforms this time around. So what if for now we just say python_version < '3.14'?  Once the packages start becoming available, we can add platform-specific conditions as necessary.

The difference is that on Desktop, source compilation is an option. With the PR that was merged yesterday, macOS successfully installs cryptography, Pillow and lru-dict under a 3.14 build, from source. I haven't tested Linux and Windows, but I suspect they will work (but we also can't turn on CI until the support packages exist - but building the support package on macOS should test binary module support).
A source build isn't possible on numpy because it specifically gates an upper Python versipn; and pandas has numpy as a requirement.
At least for now, source builds aren't possible for Android and iOS, so gating will be required until we publish wheels (either formally, or in the wheels folder of this repo).
My thinking is that until we resolve the mobile-source-install problem, we're always going to have a 2 tier gating - it's just that the upper gate may be a release that doesn't exist yet (3.15 today).


Optimization (release mode) absent

With the following kernel:
Server Information:

You are using Jupyter notebook.

The version of the notebook server is: 5.7.0
The server is running on this version of Python:

Python 3.6.6 |Anaconda, Inc.| (default, Oct  9 2018, 12:34:16)
[GCC 7.3.0]

both in SoS and running bare, I cannot replicate the performance of optimized Rust code outside of the notebook.  In particular, I've been running the following in a Jupyter cell:
:opt
:dep zip = "0.5.0"

#[derive(Debug, Clone, Copy)]
pub struct CompressionResult {
    pub dt: f64,
    pub MBps: f64,
    pub shrink: f64
}

impl CompressionResult {
    pub fn new(dt: f64, MBps: f64, shrink: f64) -> CompressionResult {
        CompressionResult { dt, MBps, shrink }
    }
    pub fn from(dt: f64, old_size: u64, new_size: u64) -> CompressionResult {
        let MBps = ((old_size as f64)/(1024.0*1024.0))/dt;
        let shrink = (new_size as f64)/(old_size as f64);
        CompressionResult {
            dt: (dt*1000.).round()/1000.,
            MBps: (MBps*100.).round()/100.,
            shrink: (shrink*1000.).round()/1000.
        }
    }
}

let compression_source = "speed.log";
let compression_target = "speed-rust.zip";

pub fn compress_the_target(cs: &str, ct: &str) -> CompressionResult {
    use std::*;
    use std::io::Write;
    let source_p = path::Path::new(cs);
    let target_p = path::Path::new(ct);
    if target_p.exists() { fs::remove_file(target_p); }
    let data = fs::read(source_p).unwrap();
    let t0 = time::Instant::now();
    {
        let target = fs::File::create(target_p).unwrap();
        let mut zw = zip::ZipWriter::new(io::BufWriter::with_capacity(65536, target));
        zw.start_file(
            source_p.file_name().unwrap().to_str().unwrap(),
            zip::write::FileOptions::default().compression_method(
                zip::CompressionMethod::Deflated
            )
        );
        zw.write(data.as_ref());
        zw.finish();
    }
    let elapsed = {
        let d = t0.elapsed();
        (d.as_secs() as f64) + (d.subsec_nanos() as f64)/1e9
    };
    let old_size = fs::metadata(source_p).unwrap().len();
    let new_size = fs::metadata(target_p).unwrap().len();
    CompressionResult::from(elapsed, old_size, new_size)
}

println!("{:?}", compress_the_target(compression_source, compression_target));

and getting 20x worse results than the equivalent code run externally with cargo run --release, and roughly equivalent to cargo run.
It makes no difference whether or not I leave off :opt.
(The file speed.log can be any ~10 MB file that isn't just noise.  Note also that the zip crate has mediocre performance even when optimized compared to e.g. zip on the command-line, but the slowdown here is far more.)

Note: I get the same behavior on the evcxr REPL.

Thanks for reporting that. I was able to fix it, although I don't understand what was happening. I was compiling with "cargo rustc -- -O", but the "-O" seemed to be getting ignored. If I did the same thing outside of evcxr, the "-O" appeared to be used. In the end I switched to using a profile in Cargo.toml instead of passing optimization argument(s) on the command line. That works.


Update move-ea-csp-subscriptions.md

@jjaygbay1

After this PR is out of draft, please review
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Learn Build status updates of commit 8d733fa:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/azure-vmware/move-ea-csp-subscriptions.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Initial stack for interrupt handlers

First of all, thank you for ESP32Forth. It's perfect for the project I'm doing. As my first forth, I'm enjoying learning about the internals of the implementation as well as the language.
I love the ease of adding existing Arduino libraries. As part of adding ESP-NOW support I need a way to pass arguments received in an interrupt routine into forth. I'm using your existing pinchange and HandleInterrupt code as a template. However for me the one-item stack that is set up in HandleInterrupt in lines 496 and 498 is not making it into forth.
My simple test:
interrupts
: chg  depth . cr ;
' chg 13 pinchange
--> -38717

I think the DROP on line 31 of forth_run may be interfering with things but I'm not very familiar with the memory layout. If this is indeed a bug I'm happy to work on a fix but I could use some guidance.
Thanks in advance.
https://github.com/flagxor/eforth/blob/168f68963164f2df65c483da0cc31d5717419f62/ueforth/esp32/bindings.fs#L150-L151
https://github.com/flagxor/eforth/blob/168f68963164f2df65c483da0cc31d5717419f62/ueforth/esp32/template.ino#L489-L501
https://github.com/flagxor/eforth/blob/168f68963164f2df65c483da0cc31d5717419f62/ueforth/common/interp.h#L21-L40

After more research into adjusting the stack ahead of calling the xt, a simpler (and working) option is to push the value on the stack via code, as below. I'd welcome any criticisms, corrections, and suggestions. For now this solves my immediate issue and doesn't seem too hacky. Thanks!
diff --git a/ueforth/esp32/template.ino b/ueforth/esp32/template.ino
index 73ebc49..e77e763 100644
--- a/ueforth/esp32/template.ino
+++ b/ueforth/esp32/template.ino
@@ -522,12 +522,13 @@ static void IRAM_ATTR HandleInterrupt(void *arg) {
   debounce = now;

   struct handle_interrupt_args *args = (struct handle_interrupt_args *) arg;
-  cell_t code[2];
-  code[0] = args->xt;
-  code[1] = g_sys.YIELD_XT;
+  cell_t code[4];
+  code[0] = g_sys.DOLIT_XT;
+  code[1] = args->arg;
+  code[2] = args->xt;
+  code[3] = g_sys.YIELD_XT;
   cell_t stack[INTERRUPT_STACK_CELLS];
   cell_t rstack[INTERRUPT_STACK_CELLS];
-  stack[0] = args->arg;
   cell_t *rp = rstack;
   *++rp = (cell_t) (stack + 1);
   *++rp = (cell_t) code;


facebookEmailSave

facebook email isn't included as part of the frontend authentication response. It's a separate request once user is authenticated via facebook. Once we receive this response we need a way to save it to the user's account in the backend. Propose new facebookEmailSave endpoint (like facebookPhotoSave)

In order to prevent a proliferation of specialized voter-data-update endpoints, I am thinking about transforming this API endpoint:
https://api.wevoteusa.org/apis/v1/docs/voterPhotoSave/
to: voterUpdate
and include a variety of voter fields we will want to update. If you don't pass a variable for a field (or pass "False"), the field wouldn't update.
Any objections @lisamcho?

Sounds good, @DaleMcGrew

Fixed and live @lisamcho


Please use semver

http://semver.org/
https://dave.cheney.net/2016/06/24/gophers-please-tag-your-releases

@ybbus, this ought to do it, right? https://github.com/ajg/form/releases/tag/v1.5.1


Create "import helpers" for some resource types

Some resource types inherit a required format for import IDs which is (at best) hard to create - for example importing a Route 53 record requires the import ID to be structured like this following:
HostedZoneId_Name_Type[_Set]

To my knowledge this construction is not available via either the AWS console or the CLI.
We could make this easier by having functions for constructing these IDs from their constituent parts - for example:
function recordImportId(zoneId: string, recordName: string, type: RecordType, set: string);

If these can be made to take Output instead of prompt values, all the better since it is then possible to construct them from other imported resources.

Found this trying to import some Route 53 Records. What does "Set" represent @jen20? Thanks.

Related: https://github.com/pulumi/pulumi/issues/1635


[DEMO] Recommendation service errors when calling product catalog service

Repeated errors in the recommendation service matching the trace screenshot below. It seems to be a problem communicating with product catalog service but I don't have the bandwidth to investigate at the moment.
I have confirmed that this behavior only occurs with Kubernetes — running the latest version of the demo with docker-compose does not produce this error.

This seems to be resolved with the latest version of the Helm chart.  Can you re-test this?

I'm still seeing this with chat version 0.9.2 but now I see errors in the log for the recommendation service, which I don't think were there before, so... progress? It's possible that this is an issue with my cluster if nobody else is seeing this.

@joshleecreates whats your setup? I had a pretty annoying day with an M1 pro and Kind.

@TylerHelmuth I'm using single-node k3s with containerd, cilium, and metallb on an x86 machine.

@joshleecreates in that case, when you get a chance, can you test if the featureflag service is starting up successfully.

@TylerHelmuth yes in my tests it always succeeds in connecting to postgres after 1-2 restarts.

@TylerHelmuth Unfortunately yes. I'll do some digging this week if I have time.

This is no longer occurring for me. Closing.


Create artwork page

We're starting to collect a lot of Deno artwork - it would be good to have a place to collect and display them all.
Ideally each piece would have the artist with a link to their website, and the copyright license.
I've got a whole folder full of artwork from various artists - some of which hasn't been published online yet.

I'll take this on this weekend.


v3.7 link is not correct for Linux

I confirm (by marking "x" in the [ ] below):

[x] This is not a troubleshooting question. Troubleshooting questions go here: http://www.mattermost.org/troubleshoot/.
[x] This doesn't reproduce on web browsers (such as in Chrome). If it does, issue reports go to the Mattermost Server repository.
[x] I have read contributing guidelines.

Summary
Following links are incorrect.

.tar.gz: x64
.deb: amd64, i386

It seems that filename format has been changed by electron-builder.
Steps to reproduce
Start Jenkins job to cut release.
Possible fixes

Configure electron-builder to explicitly set format.
Fix renaming script of Jenkins job.

Fixed the Jenkins job. The filename format was changed by https://github.com/electron-userland/electron-builder/issues/803 .
It's correct in Debian though, but we should keep previous format for consistence of URLs now.


[R][CI] Nightly CI jobs failing with Thrift error

Describe the bug, including details regarding any error messages, version, and platform.
Multiple nightly CI jobs, including test-r-depsource-system and test-r-dev-duckdb are failing with a Thrift error:
e.g.
Error: package or namespace load failed for ‘arrow’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/arrow/r/check/arrow.Rcheck/00LOCK-arrow/00new/arrow/libs/arrow.so':
  /arrow/r/check/arrow.Rcheck/00LOCK-arrow/00new/arrow/libs/arrow.so: undefined symbol: _ZTIN6apache6thrift8protocol9TProtocolE
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/arrow/r/check/arrow.Rcheck/arrow’

Failing jobs:

test-r-depsource-system
test-r-dev-duckdb
test-r-gcc11
test-r-gcc-12
test-r-rhub-ubuntu-22.04

Component(s)
R

I've submitted a crossbow build on one of the commits that may or may not be the cause: https://github.com/apache/arrow/pull/37399#issuecomment-1708261906

@kou Do you mind taking a look at this? I think it might be due to the changes in #37399 as the nightly builds started failing after this point

Oh, sorry.
I'll take a look at this.

Note that DuckDB's R bindings were moved recently: https://github.com/duckdb/duckdb/pull/8793
We need to update our CI code.

Note that DuckDB's R bindings were moved recently: duckdb/duckdb#8793 We need to update our CI code.

Thanks for highlighting this, I'll open an issue


Can't retrieve document memory in chat

I've initiated a chat session and uploaded a Word document.
My aim is to utilize AI to rewrite the document with a specified Markdown style.

However, the Copilot indicates it can't access the document. The document should already be stored in the "DocumentMemory" and should be accessible for the conversion.
Are there any errors here? Or is there a misunderstanding on my part? What do I need to do in order to read the document content during the session?

I am looking into this.

I am looking into this.

@ahmadabuhattab  I discovered that this issue was cuased by a previous bug fix. After changing the minRelevance param to 0 instead of relevanceThreshold, then it's now working correctly. The document memory can now be retrieved.
Here is the commit with the bug fix code:
https://github.com/microsoft/chat-copilot/commit/b0fe77ae2f9b71e5c2b529e5bd7288e3b0123c05

@ahmadabuhattab More:
The default value is 0.8: internal float DocumentMemoryMinRelevance { get; } = 0.8F;
However, I've tested many documents, and all have a relevance below 0.75. Any suggest?
Test result:

I am looking into this.

@ahmadabuhattab I discovered that this issue was cuased by a previous bug fix. After changing the minRelevance param to 0 instead of relevanceThreshold, then it's now working correctly. The document memory can now be retrieved.
Here is the commit with the bug fix code: b0fe77a

That's amazing, it failed some checks though, but I see how you did it. Let me know if you want me to fix them.

The relevance score threshold in the system is set at 0.8, which is higher than the scores your documents are receiving (should be a small issue with the memory thing). Try adjusting the DocumentMemoryMinRelevance parameter if that is available. This will help to lower the value to 0.7....and to see if that allows more documents to pass the relevance check. Let me know if you need me to step in.

For good measure, the default DocumentMemoryMinRelevance value was lowered from 0.8 to 0.66 in #1006