Update websocket provider to adonis version 4

Create Context using to websocket is  WsContext
Create Middleware authention  is AuthInitWs and AuthWs
Update Websocket Provider will compatible with Adonis version 4

Hey @NortonPerson! 👋
Sorry for the delay and thank you for your PR! ❤
This feature will be completely rewritten in the near future (more to read about so I'm closing this for now.


[QUESTION] Vector reflection potential error.

https://github.com/mono/SkiaSharp/blob/0adc4b8988b379382a09301c401c3fca80cc3323/binding/Binding/MathTypes.cs#L78
When calculating the reflection of a vector, shouldn't the dot product be between the vector and the noramlized one? Like this:
var dot = point.x * normal.x + point.y * normal.y
Let's say we have a vector with coordinates 10,10 and we have a normalized vector with coordinates 0,1, by using this method to calculate the reflection we get a vector with coordinates 10, -390 which is kind of weird in my opinion, maybe I am wrong.

I think you are right. r=point - 2(point*normal)normal


[21.05] haskellPackages.hakyll: unbreak, jailbreak, patch for pandoc version

Motivation for this change
Unbreak the build for Hakyll on the new stable release.
Things done
• jailbreak
• patch for new pandoc release

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

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Added a release notes entry if the change is major or breaking
[ ] Fits CONTRIBUTING.md.

Pushed a small clarification in a comment and an update to pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml, so that re-running ./maintainers/scripts/haskell/regenerate-haskell-packages.sh won't introduce any regressions.
Hakyll builds on x86_64-linux, LGTM.

Are you interested in becoming a maintainer for hakyll? Seems like there haven't been too many people active in recent times keeping it working in nixos-unstable. If you don't use unstable, this may of course not make too much sense for you.

@ofborg build haskellPackages.hakyll

Also made this a backport (see https://github.com/NixOS/nixpkgs/issues/125191#issuecomment-852032374).

Thanks for the quick merge.
@sternenseemann Yes, I'd love to take maintainership. Will open a separate PR for this.


Upgrade Spring Boot 3.4.0 -> 3.4.1

This PR contains the following updates:

Package
Type
Update
Change

Spring Boot (source)
compile
patch
3.4.0 -> 3.4.1

Release Notes

spring-projects/spring-boot (Spring Boot)
v3.4.1
Compare Source
:lady_beetle: Bug Fixes

KafkaProperties fail to build SSL properties when the bundle name is an empty string #43563
Diagnostics are poor when property resolution throws a ConversionFailedException #43559
SpringApplicationShutdownHandlers do not run in deterministic order #43536
Unable to find a @SpringBootConfiguration results in misleading error message #43507
With multiple ResourceHandlerRegistrationCustomizer beans in the context, only one of them is used #43497
Unable to use Docker Compose support when mixing dedicated and shared services #43472
Kafka dependency management does not include the kafka-server module #43454
Docker API version is incorrectly reported when '/_ping` calls fail and version should be fixed #43452
Methods to build producer / consumer properties from KafkaProperties are inconvienenent to use without an SSL bundle #43448
Failures in -Djarmode=tools do not consistently return a non-zero exit #43436
HttpComponentsClientHttpRequestFactoryBuilder replaces the existing defaultRequestConfigCustomizer rather than adding to it #43429
spring-boot-maven-plugin sets imagePlatform even if it's empty #43424
OnBeanCondition fails to match on annotations when using Scoped Proxies #43423
Failure analysis for InvalidConfigurationPropertyValueException doesn't correctly handle fuzzy matching of environment variables #43382
H2ConsoleAutoConfiguration causes early initialization of DataSource beans #43359
Accept progress on numbers >2GB #43356
Servlet-based UserDetailsServiceAutoConfiguration is active in a reactive app #43334
StructuredLoggingJsonMembersCustomizer implementations declared in spring.factories with a generic type more specific than Object are not called #43312
Overriding log level with an environment variable does not work when using an environment prefix #43307
Management endpoint access and enabled properties are ignored unless the endpoint ID is an exact match #43302
UnsupportedOperationException when starting a Maven shaded application on Java 21 with virtual threads enabled #43291
JmsListener failing with Narayana (pooled ConnectionFactory) since 3.4.0 #43277
SslBundle can no longer open store file locations without using a 'file:' prefix #43274
TestRestTemplate does not allow redirects to be customized #43258
Testcontainers start() methods may be started multiple times #43253

:notebook_with_decorative_cover: Documentation

Fix typo in documentation #43558
Document that server.ssl.cipher and server.ssl.enabled-protocols are not fallbacks used with SSL bundles #43552
Use <annotationProcessorPaths> in Maven examples for configuring an annotation processor #43544
Fix typo #43519
Links to logback javadoc are incorrect #43456
Fix JUnit javadoc links #43428
Reference documentation incorrectly uses 'disabled' rather than 'none' for access restrictions #43351
Restore System property in Logging section of the reference documentation #43342
Fix link to proxyBeanMethods in @AutoConfiguration javadoc #43325
Fix links to Servlet and JPA javadoc #43324
Link to @EnableMethodSecurity instead of the deprecated @EnableGlobalMethodSecurity #43315
Document that StructuredLoggingJsonMembersCustomizer implementations may optionally take constructor parameters #43314
Update javadoc of StructuredLoggingJsonMembersCustomizer to note that implementations can registered through spring.factories #43313
Fix Javadoc link for Hikari #43311
Document how to use structured logging with custom log configuration #43301
Update Javadoc since for OtlpMetricsProperties and OtlpTracingProperties #43249

:hammer: Dependency Upgrades

Upgrade to Byte Buddy 1.15.11 #43529
Upgrade to Couchbase Client 3.7.6 #43500
Upgrade to CycloneDX Maven Plugin 2.9.1 #43398
Upgrade to Dependency Management Plugin 1.1.7 #43543
Upgrade to Elasticsearch Client 8.15.5 #43399
Upgrade to Hibernate 6.6.4.Final #43566
Upgrade to Hibernate Validator 8.0.2.Final #43510
Upgrade to Jackson Bom 2.18.2 #43401
Upgrade to Jetty 12.0.16 #43488
Upgrade to jOOQ 3.19.16 #43468
Upgrade to JUnit Jupiter 5.11.4 #43530
Upgrade to Log4j2 2.24.3 #43501
Upgrade to Micrometer 1.14.2 #43408
Upgrade to Micrometer Tracing 1.4.1 #43409
Upgrade to Native Build Tools Plugin 0.10.4 #43403
Upgrade to Netty 4.1.116.Final #43548
Upgrade to Prometheus Client 1.3.5 #43503
Upgrade to Pulsar 3.3.3 #43405
Upgrade to Pulsar Reactive 0.5.10 #43539
Upgrade to Reactor Bom 2024.0.1 #43410
Upgrade to RxJava3 3.1.10 #43406
Upgrade to Spring AMQP 3.2.1 #43411
Upgrade to Spring Authorization Server 1.4.1 #43412
Upgrade to Spring Batch 5.2.1 #43477
Upgrade to Spring Data Bom 2024.1.1 #43413
Upgrade to Spring Framework 6.2.1 #43414
Upgrade to Spring HATEOAS 2.4.1 #43478
Upgrade to Spring Integration 6.4.1 #43415
Upgrade to Spring Kafka 3.3.1 #43416
Upgrade to Spring LDAP 3.2.10 #43417
Upgrade to Spring Pulsar 1.2.1 #43418
Upgrade to Spring Retry 2.0.11 #43486
Upgrade to Spring Security 6.4.2 #43419
Upgrade to Spring Session 3.4.1 #43420
Upgrade to SQLite JDBC <IP_ADDRESS> #43407
Upgrade to Thymeleaf 3.1.3.RELEASE #43469
Upgrade to Thymeleaf Extras SpringSecurity 3.1.3.RELEASE #43470
Upgrade to Tomcat 10.1.34 #43471
Upgrade to Zipkin Reporter 3.4.3 #43467

:heart: Contributors
Thank you to all the contributors who worked on this release:
@BenchmarkingBuffalo, @Jae-Young98, @arefbehboudi, @izeye, @kgb-financial-com, @minwoo1999, @ngocnhan-tran1996, @nosan, @onobc, @quaff, @scordio, @sobychacko, and @vonZeppelin

[ ] If you want to rebase/retry this PR, check this box

Suggested commit message:
Upgrade Spring Boot 3.4.0 -> 3.4.1

See:
- https://github.com/spring-projects/spring-boot/releases/tag/v3.4.1
- https://github.com/spring-projects/spring-boot/compare/v3.4.0...v3.4.1


Support for Google Cast groups

As per MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/issues/1292
It was revealed that Google Cast groups are advertised on a different service name to individual cast services.
They are advertised on googlezone, we should look into how we support these.
/cc @jostrander

There's no other relevant information in the googlezone result though is there?

Idk, I don't have a cast group setup.
The results in that issue though are the results from a wildcard mdns scan so they are missing a lots of details.

Has there been any progress on this? The app lists my CC audio group, just can't cast to it; it sends the audio to a single speaker that's part of the group.

First a  big thanks to GPMDP developer. I use it a lot. I also have the google cast audio group problem. I can see in the GPMDP the name of the group, the one I have in my setup (a chromecast audio+a Sony gcast enable speaker) but, when selected, the audio is sent only to the chromecast audio. No problem sending just to sony speaker or CC audio. I hope the problem will be sort out in the near future. Thanks again to the development work.

As it stands neither @MarshallOfSound or I have cast groups to test with, so unfortunately were stuck relying on someone who has them to contribute a fix, or provide information that would be useful for debugging.

Thanks for your quick reply. Unfortunatly I am not a programer, I´m a musician, so i´m afraid  I can´t help or be useful in debugging the problem. Anyway, thanks again for your amazing in progress work with GPMDP. I, of course, will keep using it. Much better than a chrome tab. No doubt.

I love the player and I really would love to have the possibility of group playing. I'm not a programmer, so I cannot help, just wanted to show my interest in that feature :) Thanks for this great work

I got the same problem. Got three Chromecast Audio in a group, but GPMDP only cast to one of them. Casting to the group from Chrome & iOS work flawlessly.
Soon Onkyo comes with a firmware to support GC, and and I see more and more AVR's and standalone speakers are supporting GC. So I suspect grouping will be more common :)  GPM & GC have become way better than iTunes, AirPlay, Spotify and Spotify Connect, and after invested in cheap hardware and a subscription Google effectively replaced both Apple and Spotify in my home. Not bad.

Same problem here, maybe you can provide some info as to what kind of debug information you need and how to get the logs? I'd be willing to give it a shot.

Love your work Devs - I use this on every machine I own, and suggest it to all my fellow google music addicts. :)
This bug: When I cast to my "Whole house" group (3x Chromecast Audio + 1x Google Home) it seems to connect only to one Chromecast ("Man Cave Chromecast A") - audio only emits from that Chromecast. However - all the other Chromecasts in the group seem to stop what they are doing (go silent), but don't emit any music...
I'm using GPMDP 4.2.0 on Windows 10.
I'm happy to list all device names and firmware versions of the Chromecasts if that will help.

Can anyone of you provide an mDNS scan of your network with the chromecast groups online and available? You can use this Chrome Extension.

Alternatively, if you are on mac or windows with Bonjour installed you can use dns-sd -Z _googlecast._tcp to scan, it shows more data that might help with researching this.

Here's a screenshot of the Terminal command.

@charles222a203 Thanks for the data set, can you also run dns-sd -Z _googlezone._tcp

Well, I do have coffee I need to drink, but sure :p

Just for clarification, how many groups do you have setup?

Just one.

@charles222a203 Consisting of which casts?

All the Chromecasts Audio. The Homes, Shield, and the Ultra aren't part of a group.

So your living room device in this case appears to be the master. Can you navigate to:
http://7dd3a0c3-baf4-2175-c7bd-980a4f9cbb75.local:8008/setup/eureka_info?options=detail
and see if there is anything related to audio groups in there. There is some private data in there such as mac address and wireless bssid's, feel free to sensor that info, but can you post the result?

Also notice @MarshallOfSound that the Home group operates on port 42800 and not 8009, could that be our issue?

{"bssid":"90:72:40:10:dc:db","build_version":"78337","cast_build_revision":"1.22.78337","closed_caption":{},"connected":true,"detail":{"icon_list":[{"depth":32,"height":55,"mimetype":"image/png","url":"/setup/icon.png","width":98}],"locale":{"display_string":"English (United States)"},"manufacturer":"Google Inc.","model_name":"Chromecast Audio","timezone":{"display_string":"Eastern Daylight Time (New York)","offset":-240}},"ethernet_connected":false,"has_update":false,"hotspot_bssid":"FA:8F:CA:96:D1:CD","ip_address":"<IP_ADDRESS>","locale":"en-US","location":{"country_code":"US","latitude":255.0,"longitude":255.0},,"name":"Living Room audio","noise_level":-88,"opencast_pin_code":"1021","opt_in":{"crash":true,"location":false,"opencast":true,"stats":true},"public_key":"MIIBCgKCAQEAvlgyJ7hDsJ35XIOyGJUJfTbCve/wCPnSUUudBWjFlSR2gfO7mZgoH8VF8gnsIvqQxIYNOU2xGZzlHX+VDccELj4+oJsY1PM59KZ0aNXjSkr7eMVukUuek3bcO+YPjfeeKEqdFFctkBj2vGXxg02Emlhbp74qUZA5ppEHThhsAL5RmU1/LNngwlASy7DJFH6wQSb8iRcpVMU6Sbdpl6Wkd8K4kQrrUZB3aBO9P0Yz9aPjoWdP/grjZEG3DJk3/56oPNAuCz00NQjq3SST7+Wfu+geCoqbehuU6rY2WFoecnEnrz/Zwxl0h7qfKfgjKosuqFoq4EhY4Egu0vRX43/pKwIDAQAB","release_track":"stable-channel","setup_state":60,"setup_stats":{"historically_succeeded":true,"num_check_connectivity":0,"num_connect_wifi":0,"num_connected_wifi_not_saved":0,"num_initial_eureka_info":0,"num_obtain_ip":0},"signal_level":-37,"ssdp_udn":"7dd3a0c3-baf4-2175-c7bd-980a4f9cbb75","time_format":1,"timezone":"America/New_York","tos_accepted":true,"uma_client_id":"704429C2-0B30-4FC1-9202-7C1B2A0A2DE4","uptime":35429.52,"version":7,"wpa_configured":true,"wpa_id":0,"wpa_state":10}
This was the result @jostrander. Doesn't look like there's anything related to groups in there, though.

https://github.com/thibauts/node-castv2/blob/master/lib/client.js#L28
https://github.com/GPMDP/electron-chromecast/blob/master/src/cast/_Classes/Session.js#L12
If we change this to an object with the port number, we could push a test version that someone could potentially check.

sure, I'll beta for you. Might be later today, though.

Just pushed a change up, you will need to have a development version of GPMDP and use this commit cbddb5d697c2ebd795511e09cfe554c0a7df4af3 instead of the npm version of electron-chromecast.

I'm not sure about how to get a dev version and use the commit?

Check out the development FAQ if you are interested in setting up a development environment, from there you'll need to change package.json to use the git hash for electron-chromecast, then rebuild, and start.

Ran into this issue after getting some Google Homes and setting them up in an audio group. Can I help at all? I'm an Android developer so not exactly familiar with Electron but at least somewhat technically competent. I'll see if I can get the dev environment set up.

Has anyone had the chance to test this out? I'm pretty sure this is the way to resolve this but I don't have any audio devices to test with.

I have an audio group and would be happy to work with you guys to fix the issue.

git clone https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-.git gpmdp
cd gpmdp

Changed this line in package.json
From:

"electron-chromecast": "^1.0.17",

To:

"electron-chromecast": "https://github.com/GPMDP/electron-chromecast.git#cbddb5d",

Then ran these to install dependencies, build, and start
npm install
npm run build
npm start

After it started I do not have the chromecast icon in the bottom right corner to try and cast.  I verified chromecast-electron is in the node-modules/ directory and when i look at its package.json i can see that it did pull from the commit.  Willing to do more troubleshooting and thank you for what you do.
MacBook:electron-chromecast$ cat package.json
{
  "_from": "git+https://github.com/GPMDP/electron-chromecast.git#cbddb5d",

Some info when i ran npm start:
$ npm start

><EMAIL_ADDRESS>prestart /Users/braytonstafford/Projects/gpmdp
> pre-flight && node vendor/patch_dev.js && electron-rebuild --types=prod,optional

Starting pre-flight checks
Processing production dependencies
Processing development dependencies
Processing optional dependencies
Dependencies are all up to date, looking good!
Monkey patching your Info.plist
✔ Rebuild Complete

><EMAIL_ADDRESS>start /Users/braytonstafford/Projects/gpmdp
> electron . --dev

info: Application started.
error: Last.fm API keys have not been set!
debug: Renderer process logger initialized.

Screeshot of the UI after npm start
Side Notes:
I only have one cast group with 3 device in it. One google home and 2 chromecast audios.
Now using node v6.2.2 (npm v3.9.5)
Development FAQ
My dns-sd -Z _googlecast._tcp
Browsing for _googlecast._tcp
DATE: ---Thu 10 Aug 2017---
 9:41:17.187  ...STARTING...

; To direct clients to browse a different domain, substitute that domain in place of '@'
lb._dns-sd._udp                                 PTR     @

; In the list of services below, the SRV records will typically reference dot-local Multicast DNS names.
; When transferring this zone file data to your unicast DNS server, you'll need to replace those dot-local
; names with the correct fully-qualified (unicast) domain name of the target host offering the service.

_googlecast._tcp                                PTR     Google-Home-574eb559e8a51a2a7e0baadbad602821._googlecast._tcp
Google-Home-574eb559e8a51a2a7e0baadbad602821._googlecast._tcp SRV     0 0 8009 574eb559-e8a5-1a2a-7e0b-aadbad602821.local. ; Replace with unicast FQDN of target host
Google-Home-574eb559e8a51a2a7e0baadbad602821._googlecast._tcp TXT     "id=574eb559e8a51a2a7e0baadbad602821" "cd=860AD2FE10A0AF558B487AF64F0D0780" "rm=54E05FA7104CD0CE" "ve=05" "md=Google Home" "ic=/setup/icon.png" "fn=Living room Home" "ca=2052" "st=1" "bs=FA8FCA8260BD" "nf=1" "rs=Google Play Music"

_googlecast._tcp                                PTR     Chromecast-Audio-143bb301c914a05d89984df0873c8272._googlecast._tcp
Chromecast-Audio-143bb301c914a05d89984df0873c8272._googlecast._tcp SRV     0 0 8009 143bb301-c914-a05d-8998-4df0873c8272.local. ; Replace with unicast FQDN of target host
Chromecast-Audio-143bb301c914a05d89984df0873c8272._googlecast._tcp TXT     "id=143bb301c914a05d89984df0873c8272" "cd=2453787CECCE14766671E21C693E4A15" "rm=125AF306B2A8BE86" "ve=05" "md=Chromecast Audio" "ic=/setup/icon.png" "fn=Office Speakers" "ca=2052" "st=0" "bs=FA8FCA9112F7" "nf=1" "rs="

_googlecast._tcp                                PTR     Chromecast-Audio-2525945dc4ad7e66ff16e790ca11e036._googlecast._tcp
Chromecast-Audio-2525945dc4ad7e66ff16e790ca11e036._googlecast._tcp SRV     0 0 8009 2525945d-c4ad-7e66-ff16-e790ca11e036.local. ; Replace with unicast FQDN of target host
Chromecast-Audio-2525945dc4ad7e66ff16e790ca11e036._googlecast._tcp TXT     "id=2525945dc4ad7e66ff16e790ca11e036" "cd=C6B782455FAF178DFD87C6B3C53F0B56" "rm=6F58937869843825" "ve=05" "md=Chromecast Audio" "ic=/setup/icon.png" "fn=Bedroom Speakers" "ca=2052" "st=0" "bs=FA8FCA910A07" "nf=1" "rs="

_googlecast._tcp                                PTR     Google-Cast-Group-d208a0994ae94b54ba53de19aa875891-1._googlecast._tcp
Google-Cast-Group-d208a0994ae94b54ba53de19aa875891-1._googlecast._tcp SRV     0 0 42948 143bb301-c914-a05d-8998-4df0873c8272.local. ; Replace with unicast FQDN of target host
Google-Cast-Group-d208a0994ae94b54ba53de19aa875891-1._googlecast._tcp TXT     "id=d208a099-4ae9-4b54-ba53-de19aa875891" "cd=d208a099-4ae9-4b54-ba53-de19aa875891" "rm=125AF306B2A8BE86" "ve=05" "md=Google Cast Group" "ic=/setup/icon.png" "fn=All Speakers" "ca=2084" "st=0" "bs=FA8FCA9112F7" "nf=1" "rs="

My dns-sd -Z _googlezone._tcp
Browsing for _googlezone._tcp
DATE: ---Thu 10 Aug 2017---
 9:39:00.597  ...STARTING...

; To direct clients to browse a different domain, substitute that domain in place of '@'
lb._dns-sd._udp                                 PTR     @

; In the list of services below, the SRV records will typically reference dot-local Multicast DNS names.
; When transferring this zone file data to your unicast DNS server, you'll need to replace those dot-local
; names with the correct fully-qualified (unicast) domain name of the target host offering the service.

_googlezone._tcp                                PTR     574eb559-e8a5-1a2a-7e0b-aadbad602821._googlezone._tcp
574eb559-e8a5-1a2a-7e0b-aadbad602821._googlezone._tcp SRV     0 0 10001 574eb559-e8a5-1a2a-7e0b-aadbad602821.local. ; Replace with unicast FQDN of target host
574eb559-e8a5-1a2a-7e0b-aadbad602821._googlezone._tcp TXT     "id=574eb559-e8a5-1a2a-7e0b-aadbad602821" "d208a099-4ae9-4b54-ba53-de19aa875891=0|All Speakers" "574eb559-e8a5-1a2a-7e0b-aadbad602821=7|Living room Home"

_googlezone._tcp                                PTR     143bb301-c914-a05d-8998-4df0873c8272._googlezone._tcp
143bb301-c914-a05d-8998-4df0873c8272._googlezone._tcp SRV     0 0 10001 143bb301-c914-a05d-8998-4df0873c8272.local. ; Replace with unicast FQDN of target host
143bb301-c914-a05d-8998-4df0873c8272._googlezone._tcp TXT     "id=143bb301-c914-a05d-8998-4df0873c8272" "d208a099-4ae9-4b54-ba53-de19aa875891=1|All Speakers"

_googlezone._tcp                                PTR     2525945d-c4ad-7e66-ff16-e790ca11e036._googlezone._tcp
2525945d-c4ad-7e66-ff16-e790ca11e036._googlezone._tcp SRV     0 0 10001 2525945d-c4ad-7e66-ff16-e790ca11e036.local. ; Replace with unicast FQDN of target host
2525945d-c4ad-7e66-ff16-e790ca11e036._googlezone._tcp TXT     "id=2525945d-c4ad-7e66-ff16-e790ca11e036" "d208a099-4ae9-4b54-ba53-de19aa875891=0|All Speakers"

Just bringing this back up, looks like you guys were on a roll, any solution?
Thanks in advance, great player would love to see group speakers working.

I'm available to do more testing, just not sure how to get that cast icon to show up when running the test build.  I'll dig into it a little more but could use some direction.

@braytonstafford What OS? You need bonjour installed on windows, or avahi dev libs on linux.

MacOS 10.12.6 (16G29)

In the same boat as everyone here.  LOVE GPMDP, but attempts to cast to groups always result in a single audio device in the group receiving the audio.  And since I pretty much only use my laptop for home listening, where I always need to cast to multiple devices, GPMPD is rendered just about useless.  Which pains me.
If someone can confirm the cast icon issue has been resolved in the fix by @jostrander I'll set up a dev environment and give it a go.  I have a few audio groups including both ChromeCast Audios and Google Homes.

I built GPMDP with the commit from @jostrander, and like @braytonstafford experienced, the cast button does not show up (I'm on Windows). When I switch back to the master branch of electron-chromecast, the cast button reappears.
What do you all use for debugging? I wasn't able to get VS Code to hit breakpoints in debug mode. I wanted to look closer at what was going on in electron-chromecast without having to pepper console.log statements everywhere. Here's the launch.json I'm using:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
      },
      "program": "${workspaceRoot}/build/index.js",
      "protocol": "legacy"
    }
  ]
}

It looks like my branch may need to be rebased on top of the current master in order to work with the latest GPMDP, maybe give that a try?

I actually tried that already (merged master into your branch), thinking there might be some fixes in master that were necessary. No luck, unfortunately.

Coming in the next release 👍


Static variable should have UPPER_SNAKE_CASE name

Hello, I get the following error with every uppercase static variable with the version released on 2020-10-26:
Static variable `TEST` should have UPPER_SNAKE_CASE name, e.g. `T_E_S_T` rust-analyzer

This should have been fixed by #6350, which was merged after version 2020-10-26 had been released.

I double checked the version in a new project, after Rust Analyzer: Restart Server in VSCode.

It will be available in the next release (or you could switch to the nightly versions).

Seems OK with nightly. Good to know it's fixed. Thanks!


no items are shown

Hello. It. is the first time Im using your simulator, and the issue is that no items are shown at all, nor am i able to select an item for a slot. Shouldnt the items load by themselves? The problem occurs from both my laptop and my phone, at my phone a message appears if you stay more than 5 seconds at the page saying "A problem repeatedly occurred" and the page doesnt even load. I downloaded the addon you suggested and tried importing my gear but that doesnt work as well.
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
I just enter wowsims.github.io, click feral and no items are shown
Expected behavior
I guess there is an already existing set of items used or at least i am able to import my gear from in game or select an item from each slot.
-my phone: Iphone
-my laptop: browser: safari
Thank you for your understanding.

This is already being tracked in here https://github.com/wowsims/wotlk/issues/1509


Does the deepfm/xdeepfm paper author train the whole criteo dataset?

The criteo training set(http://labs.criteo.com/2014/02/kaggle-display-advertising-challenge-dataset/) has 45,000,000 examples. I found many github deepfm codes only sample small amount of training examples. Could you tell me whether the author of the paper using how many training data to achieve the reported roc and logloss?

I have implemented a keras.utils.Sequence and my own LabelEncoder and MinMaxScaler. I have trained the whole 4,500,000 criteo dataset and got 0.795 auc. It is a little bit distance from the 0.805 auc of the orignal paper, maybe I need fine tuning some hyperparameters.
I have wrote a blog(in Chinese) here: http://fancyerii.github.io/2019/12/19/deepfm/

大佬有没有XDeepFM的实现啊？能否给个链接啊，多谢

I have implemented a keras.utils.Sequence and my own LabelEncoder and MinMaxScaler. I have trained the whole 4,500,000 criteo dataset and got 0.795 auc. It is a little bit distance from the 0.805 auc of the orignal paper, maybe I need fine tuning some hyperparameters.
I have wrote a blog(in Chinese) here: http://fancyerii.github.io/2019/12/19/deepfm/

Hello bro! Would you mind sharing your hyper-parameter setting for criteo data? I have totally no ideas how to set them to improve AUC. Thank you


sift from command line out of memory

I am using sift from command line on mac and got the following error message:
sift(490,0x7fff89999380) malloc: *** mach_vm_map(size=4342377827252789248) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
sift(490,0x7fff89999380) malloc: *** mach_vm_map(size=17369511309011156992) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
sift: err: Could not allocate enough memory. (2)

The code I am working on is (Python):
params="--edge-thresh 10 --peak-thresh 5"

if imagename[-3:] != 'pgm':
  # create a pgm file
  im = Image.open(imagename).convert('L')
  im.save('tmp.pgm')
  imagename = 'tmp.pgm'

cmmd = str("sift " + imagename + " --output=" + resultname + " " + params)
os.system(cmmd)

Image using is of size: 1280 × 1000, 333 KB.
Anyone has idea about how to solve this problem?
Thanks.

I got the same problem, did you solve it? Thanks

I confronted same problem when I was working on 'Programming compute vision with python".
Using the oldest version of vlfeat worked well on my Macbook2017 and Windows10 PC.
32bit/64bit ver doesn't seem a problem. I hope it solves a problem you have.

Just change the param '--output=' to '--output' and everything will work fine.

Changing the output parameter is not working for me. I am working on mac. Does the system architecture have to do anything with this?


Update documents to specify the steps needed to support spaces.

Feature Description
The documents in https://docs.kubestellar.io/main/Coding%20Milestones/PoC2023q1/commands do not fully explain what's needed to support the space framework.
Proposed Solution
.
Want to contribute?

[ ] I would like to work on this issue.

Additional Context
No response

commands have been updated - Thank you
per @effi-ofer and @ezrasilvera closing now


Disallow changes to parameters from BuildServiceRegistration

As part of our expert support for Gradle, we were faced with a great question: Should you be allowed to modify build service parameters after its registration? We provided a hypothesis to our client and confirmed our suggestion with the Gradle team. Let's suppose we have the following build service registration:
interface Parameters extends BuildServiceParameters {
	ListProperty<String> getValue()
}

abstract class MyService implements BuildService<Parameters> {}

def serviceProvider = gradle.sharedServices.registerIfAbsent('service', MyService) {
	parameters {
		value.add('first')
		value.add('second')
	}
}

Expected Behavior
Reaching after the fact to the service registration to modify the exposed parameters should be disallowed (aka throw an exception upon mutating any parameter's properties), e.g.:
gradle.sharedServices.registrations.getByName('service').parameters.value.add('third')

Current Behavior
Changing the parameters from the service registration is always allowed and has unexpected behaviour depending on the state of the service itself (see context).
Context
There are several reasons why we believe parameters mutation after registration should be disallowed:

Gradle generally uses the pattern where a getter should access a read-only version of the subject, and an Action taking API allows modification of the subject in question. Gradle has some instances where this pattern is somewhat enforced. The details and gotcha of that pattern are not the focus here. Using that pattern as a general guideline, BuildServiceRegistration only provides a getter to the parameters and no Action taking API like its counterpart BuildServiceSpec. This would indicate that users should not reach to a BuildServiceRegistration to modify the parameters further.
When we realize a build service, the parameters go through an isolation process (primarily to enable the configuration cache feature). This isolation rightfully disconnects the BuildServiceParameters from the BuildServiceRegistration and the BuildService. From then on, any changes to the registration parameters are no longer considered by the BuildService. This exposes the following confusing behaviour:

def serviceRegistration = gradle.sharedServices.registrations.getByName('service')   // <1>

serviceRegistration.parameters.value.add('third')                                    // <2>

println '===> before service realization:'
println 'registration params ' + serviceRegistration.parameters.value.get()
println 'service params ' + serviceProvider.get().parameters.value.get()             // <3>

serviceRegistration.parameters.value.add('fourth')                                   // <4>

println '===> after service realization:'
println 'registration params ' + serviceRegistration.parameters.value.get()
println 'service params ' + serviceProvider.get().parameters.value.get()

Get a reference for the service registration
Mutate the parameters from the service registration
Realize the service
Further mutate the parameters from the service registration

The output:
===> before service realization:
registration params [first, second, third]
service params [first, second, third]
===> after service realization:
registration params [first, second, third, fourth]
service params [first, second, third]

Notice how, after the service realization, the registration and service parameters differ. This is the parameters isolation at play. There should be a stronger opinion on the Gradle properties to avoid undefined behaviours.

Mutating the parameters through the service registration is vulnerable to the long-lived ordering issue. Not only does it assume the registration was completed before the mutation, but it also assumes the service wasn't realized. These assumptions create a solid coupling to the implementation of the build logic, making the maintenance harder.

Would disallowing mutation after realizing the service (vs just disallowing at any point after registration) be a better option?
We have a build service that exposes some properties (via an extension on the root project) that change its behavior. This works fine for us because the service is only used at execution time, and disallowing any changes after registration would completely break our ability to use build services for this use case. It would likely mean we could never adopt the configuration cache for our builds.

For that, I would suggest layering the configuration. Create an extension that exposes the properties you want to change after the fact, map the properties to the service's parameters, then configure the properties on the extension instead. It doesn't need to be an extension but an object that holds Gradle Property. Remember that Property is always deferred and can be chained together.
It also allows for a different interface for the different layers, i.e. some properties that define the behaviour in the higher layer. In comparison, the lower layer focuses on passing the correct data to the service. This is a much better approach as it has virtually zero assumptions.

That is more or less what we have:
  interface Params: BuildServiceParameters {
...
    /**
     * Additional configuration that needs to be captured at configuration time but available at
     * execution time.
     */
    val spec: Property<SigningProfileFactorySpec>
  }

abstract class SigningProfileFactorySpec @Inject constructor() {
  /**
   * Should the factory be allowed to create the implicit default profile?
   */
  @get:Input
  abstract val allowDefaultProfile: Property<Boolean>

  /**
   * Additional registrations for [ISigningProfileFactory]s which are also [BuildService] implementations
   */
  @get:Input
  abstract val signingServiceFactoryServiceRegistrations: MapProperty<String, Provider<out BuildService<*>>>
}

abstract class SigningServices @Inject constructor(
  objectFactory: ObjectFactory
) {
  val signingProfileFactorySpec: SigningProfileFactorySpec = objectFactory.newInstance<SigningProfileFactorySpec>()

  fun signingProfileFactory(action: Action<in SigningProfileFactorySpec>) {
    action.execute(signingProfileFactorySpec)
  }
}

Where SigningServices is an extension that gets added by the same plugin that registers our build service.
As long as something like that would continue to work we'd be fine. Clearly there's something that needs to be done here as your example shows -- having the service just not have expected parameters is not good.

I don't see any issue, the layers are already present. I would probably expose a provider to signingProfileFactorySpec on SigningServices, say Provider<SigningProfileFactorySpec> getSigningProfileFactoryProvider() (or create an ad-hoc provider to use as value). When the plugin registers the service, it will look something like this:
SigningServices extension = ...
gradle.sharedServices.registerIfAbsent('service', TheService) {
    parameters {
        spec = extension.signingProfileFactoryProvider // or provider { extension.signingProfileFactorySpec }
     }
}

However, I would consider marking the SigningProfileFactorySpec properties as finalizeValueOnRead so that your model that gets configured via the extension throws an exception if someone tries to mutate the properties after the service is realized. It's a small detail but it ensures fast failure in case of an obvious mistake that may not be obvious to the user.


Include a guide on how to upload the training data and config yaml to the Runpod version.

What piece of documentation is affected?
The Runpod guide, which is currently severely lacking, only having a direct link to the Axolotl Runpod without any instructions on how to utilize it.
What part(s) of the article would you like to see updated?
Step-by-step documentation on how to use any of the SSH methods on Runpod to upload the needed training data and config to Runpod. Virtually every method throws errors/doesn't work, and not everyone has the technical expertise to get the files on there (Google proves unhelpful in resolving this). Alternatively, having some way to load files from the local disk would be extremely helpful and solve the issue entirely. I saw that someone requested that functionality, and it was implemented about 3 days ago on the commit here, so it seems doable.
Additional Information
No response
Acknowledgements

[X] My issue title is concise, descriptive, and in title casing.
[X] I have searched the existing issues to make sure this feature has not been requested yet.
[X] I have provided enough information for the maintainers to understand and evaluate this request.

Hey, I saw someone replied to your question in Discord. If you've got it working, do you mind adding a PR to the docs about this?

Alternatively, having some way to load files from the local disk would be extremely helpful and solve the issue entirely.

What do you mean here? Local disk on run pod instance? That should already work?

Hey, I saw someone replied to your question in Discord. If you've got it working, do you mind adding a PR to the docs about this?

Alternatively, having some way to load files from the local disk would be extremely helpful and solve the issue entirely.

What do you mean here? Local disk on run pod instance? That should already work?

Hi! Yeah, I could try to add something. I meant more "ability to interact with local machine files on runpod", which seems to be working fine for everyone except me. The HTTP Service Port (8888) says that it's "not ready", and won't open at all. Clicking it just leads to a Cloudflare error. From what I've heard, this is the reason I don't have access to the Jupyter-style file explorer on Runpod. Not sure what the deal is, but I'm including a picture of both the errored out button and Cloudflare error.

Hey, I think I saw caseus reply to you about this in Discord about waiting a bit for the server to load. Did that fix it for you? are you still having this issue?

Closing as this was a runpod issue that should've been resolved per discord conversation.


Config Option

This adds a config option to the command line interface. I find this easier to
use than putting something into /etc/.
I'm afraid I couldn't test this yet as:
a) I get an error when runnin the unit-tests
b) I don't have my environment setup so that I can easily sudo with all
environment variables left untouched.
Let me know if you would merge this and I'll put some more time into it.

Thanks, I'll have to get around using this fairly soon.


why only one epoch for train and 10 for adapt?

Hi, for the training, the training set is quite large. The clean training set is > 3000 hours and after augmentation is > 12000 hours. I tried to train more epochs, but that seems to be very time consuming.
For adaptation, training more epochs will decline the performance. Maybe overlapping problem on a small dataset. (CALLHOME less than 20 hours)


ARROW-3948: [GLib][CI] Set timeout to Homebrew

We can't get Homebrew log when Travis detects hanged Homebrew process and kill the CI job.
We need to detect hanged Homebrew process and kill the Homebrew process to get Homebrew log.

Umm.
It seems that we can't use after_failure for this case.

Codecov Report

Merging #3115 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3115      +/-   ##
==========================================
- Coverage   87.08%   87.07%   -0.01%
==========================================
  Files         492      492
  Lines       69163    69163
==========================================
- Hits        60228    60226       -2
- Misses       8834     8836       +2
  Partials      101      101

Impacted Files
Coverage Δ

cpp/src/plasma/thirdparty/ae/ae.c
72.03% <0%> (-0.95%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 494ef75...fe23b04. Read the comment docs.

Thanks. I'll merge this after some more tries.

I've restarted the macOS Travis IC job some times but the problem isn't reproduced.
I'll merge and wait the problem is reproduced in future builds.


causalityDuration Hides code execution in duration method

https://github.com/ReactiveX/RxGo/blob/e94d354069f3579c0a0fcabe00738859dc5c0d94/duration.go#L84
It is not expected that duration method will actually do such sophisticated thing. I expect it to return duration value only.

I disagree, it is expected. Actually, that's the purpose of it. Let's see why with a concrete example.
There's this BufferWithTime operator that batches the items at a given frequency. How would we implement unit tests for that? Most likely using a couple of time.Sleep(), right?
Now, let's see how the nominal test is implemented:
func Test_Observable_BufferWithTime(t *testing.T) {
	ctx, obs, d := timeCausality(1, 2, 3, tick, tick, 4, tick, 5, 6, 7, tick)
	obs = obs.BufferWithTime(d, WithContext(ctx))
	Assert(context.Background(), t, obs, HasItems(
		[]interface{}{1, 2, 3},
		[]interface{}{4},
		[]interface{}{5, 6, 7},
	))
}

Using timeCausality() that returns an Observable, we can configure whenever the timer is going to be triggered. This creates a deterministic unit test without any single time.Sleep().
If you need a simple mock, you can use mockDuration.

I understand why it is there and how it works. My point is that it is not obvious and may confuse others.
As to example with test it could be like this:
buf := Interval(WithDuration(time.Second), WithContext(ctx)).BufferWithTime(3 * time.Second, WithContext(ctx)).Observe()
assert.Len(t, buf, 3)

Another thing is that having pauses while sending data will hide things like this https://github.com/ReactiveX/RxGo/issues/234

Let's keep only https://github.com/ReactiveX/RxGo/issues/234


Get Radius attributes for authentication request from SIP Header

Hi @sobomax,
I wanted to add the sip realm in the authentication radius request (without perform digest authentication), and I've been looking through RadiusAuthorization; there is an extra_attributes parameter in the do_auth method which is not used anywhere and got me thinking.
Similarly to pass_headers parameters it would be nice to have an option to define a sip header from which b2bua will get specific radius attributes and add them to the Authentication request (via the extra_attributes property)
So I've modified the b2bua a bit to support exactly that. The patch adds an -x option, from which the user can add a sip header for b2bua to read radius attributes.
So for example, opensips might do something like:
append_hf('X-Test-Header: h323-ivr-out=SomeProperty=1\r\n');
$du = 'b2bua.ip'

route(RELAY);

sippy would have to run with -x x-test-header parameter and in the authentication request the header contents is added to the radius request. Obviously it's up to the administrator/ matching dictionary to supply valid radius key/ value pairs for this to work.
I am providing the patch in this comment, I don't know if you would be willing to add it to the b2bua source code. If you are, I'd be happy to supply you with a PR
Index: sippy/b2bua_radius.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- sippy/b2bua_radius.py	(revision f1c375b3454445b66b88c4b3cdc365306bb0ef18)
+++ sippy/b2bua_radius.py	(date<PHONE_NUMBER>780)
@@ -119,11 +119,12 @@
     rtp_proxy_session = None
     huntstop_scodes = None
     pass_headers = None
+    extra_attributes = None
     auth_proc = None
     proxied = False
     challenge = None

-    def __init__(self, remote_ip, source, global_config, pass_headers):
+    def __init__(self, remote_ip, source, global_config, pass_headers, extra_attributes):
         self.id = CallController.id
         CallController.id += 1
         self.global_config = global_config
@@ -137,6 +138,7 @@
         self.remote_ip = remote_ip
         self.source = source
         self.pass_headers = pass_headers
+        self.extra_attributes = extra_attributes

     def recvEvent(self, event, ua):
         if ua == self.uaA:
@@ -191,11 +193,12 @@
                 elif auth == None or auth.username == None or len(auth.username) == 0:
                     self.username = self.remote_ip
                     self.auth_proc = self.global_config['_radius_client'].do_auth(self.remote_ip, self.cli, self.cld, self.cGUID, \
-                      self.cId, self.remote_ip, self.rDone)
+                      self.cId, self.remote_ip, self.rDone, extra_attributes=self.extra_attributes)
                 else:
                     self.username = auth.username
                     self.auth_proc = self.global_config['_radius_client'].do_auth(auth.username, self.cli, self.cld, self.cGUID,
-                      self.cId, self.remote_ip, self.rDone, auth.realm, auth.nonce, auth.uri, auth.response)
+                      self.cId, self.remote_ip, self.rDone, auth.realm, auth.nonce, auth.uri, auth.response,
+                      extra_attributes=self.extra_attributes)
                 return
             if self.state not in (CCStateARComplete, CCStateConnected, CCStateDisconnecting) or self.uaO == None:
                 return
@@ -465,7 +468,27 @@
                 hfs = req.getHFs(header)
                 if len(hfs) > 0:
                     pass_headers.extend(hfs)
-            cc = CallController(remote_ip, source, self.global_config, pass_headers)
+
+            extra_attributes = None
+
+            if 'auth_extra_header' in self.global_config:
+                header = self.global_config['auth_extra_header']
+
+                hfs = req.getHFs(header)
+
+                if len(hfs) > 0:
+                    extra_attributes = []
+
+                    for header in hfs:
+                        kvPairs = header.body.body.split(';')
+
+                        for pair in kvPairs:
+                            [key, _, value] = pair.partition("=")
+
+                            if value != '':
+                                extra_attributes.append((key, value))
+
+            cc = CallController(remote_ip, source, self.global_config, pass_headers, extra_attributes)
             cc.challenge = challenge
             rval = cc.uaA.recvRequest(req, sip_t)
             self.ccmap.append(cc)
@@ -668,7 +691,7 @@
     global_config['_orig_argv'] = sys.argv[:]
     global_config['_orig_cwd'] = os.getcwd()
     try:
-        opts, args = getopt.getopt(sys.argv[1:], 'fDl:p:d:P:L:s:a:t:T:k:m:A:ur:F:R:h:c:M:HC:W:',
+        opts, args = getopt.getopt(sys.argv[1:], 'fDl:p:d:P:L:s:a:t:T:k:m:A:ur:F:R:h:c:M:HC:W:x:',
           global_config.get_longopts())
     except getopt.GetoptError:
         usage(global_config)
@@ -759,6 +782,9 @@
         if o == '-h':
             for a in a.split(','):
                 global_config.check_and_set('pass_header', a)
+            continue
+        if o == '-x':
+            global_config.check_and_set('auth_extra_header', a)
             continue
         if o == '-c':
             global_config.check_and_set('b2bua_socket', a)
Index: sippy/MyConfigParser.py
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- sippy/MyConfigParser.py	(revision f1c375b3454445b66b88c4b3cdc365306bb0ef18)
+++ sippy/MyConfigParser.py	(date<PHONE_NUMBER>519)
@@ -98,6 +98,8 @@
                              'and "SUBSCRIBE" messages. Address in the format ' \
                              '"host[:port]"'),
  'nat_traversal':     ('B', 'enable NAT traversal for signalling'), \
+ 'auth_extra_header': ('S', 'sip header containing radius parameters to pass ' \
+                            'to authentication request'), \
  'xmpp_b2bua_id':     ('I', 'ID passed to the XMPP socket server')}

 class MyConfigParser(RawConfigParser):

I went a step further and added another parameter named parameter on the Routing h323-ivr-in response in the authentication that a user could supply a set of radius attribute-value pairs that b2bua later adds in the accounting messages.
So for example if the authorization response if of this sort:
h323-ivr-in = 'Routing:123@<IP_ADDRESS>:5060;credit-time=7200;expires=15;np_expires=5;bill-to=123@realm;parameters=h323-ivr-out=Test-Data:d=2,vr=1,ar=8'
both originate and answer, start, stop accounting will containing the header:
h323-ivr-out = 'Test-Data:d=2,vr=1,ar=8'
The idea is that when the billing engine performs authorisation for a call, it could provide information to the accounting events so that the engine could easily charge the call without having to recalculate everything from scratch.
Please let me know if you are interested in such feature additions on b2bua. :)

Looks promising. I don't mind having this as a feature, would you please
convert this to a PR?
Thanks!
-Max
On Thu., Oct. 29, 2020, 7:38 a.m. Paris<EMAIL_ADDRESS>wrote:

I went a step further and added another parameter named parameter on the
Routing h323-ivr-in response in the authentication that a user could
supply a set of radius attribute-value pairs that b2bua later adds in the
accounting messages.
So for example if the authorization response if of this sort:
h323-ivr-in = 'Routing:123@<IP_ADDRESS>:5060
;credit-time=7200;expires=15;np_expires=5;bill-to=123@realm
;parameters=h323-ivr-out=Test-Data:d=2,vr=1,ar=8'
both originate and answer, start, stop accounting will containing the
header:
h323-ivr-out = 'Test-Data:d=2,vr=1,ar=8'
The idea is that when the billing engine performs authorisation for a
call, it could provide information to the accounting events so that the
engine could easily charge the call without having to recalculate
everything from scratch.
Please let me know if you are interested in such feature additions on
b2bua. :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sippy/b2bua/issues/37#issuecomment-718796698, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AABVMJTZKUTBGWG2UPC3PCLSNF47ZANCNFSM4TA2F7HQ
.

@sobomax there you go, I've split them up into two PRs one for each new feature.


Poison & Venom Information

Coming from using Konduit, I am used to seeing current information on how much damage I will take per hit of poison, and watch it tick down, knowing if I need to remove it or just wait it out. Similar with venom, and how worried I will need to be.
Currently on RuneLite we only get information on if we are poisoned or venomed, we do not get any information on damage and possibly how long until it hits or changes damage.
If possible making this information available would definitely be a nice QoL, but it is not a life or death issue.

Duplicate of #1005


Increase output to match recipe maximums

Sifting recipes allow a maximum of 16 outputs but the internal inventory of the sifter only allows for 9 outputs which voids all other outputs. This is a simple PR to adjust the internal inventory to 16 to match the possible max sifter outputs

Merged!
Thx!


Segfault while reloading/stopping nginx

This problem was originally reported by @defanator. @defanator also investigated the issue, nailing down the problem to the exactly point where the code is crashing.
Bellow is a simple configuration that will lead to the crash:
    server {
        listen 80;

        modsecurity on;
        modsecurity_rules '
           SecDefaultAction "phase:2,deny"
        ';

        location / {
            proxy_pass http://backend;
        }

        location /another/one {
            proxy_pass http://backend;
        }

        location /and/third/one/ {
            proxy_pass http://backend;
        }
    }

Here crash stack trace:
#0  0x0000000000000061 in ?? ()
#1  0x00007fbeb7867376 in modsecurity::Rules::~Rules (this=0x23f4440, __in_chrg=<optimized out>) at rules.cc:97
#2  0x00007fbeb786739e in modsecurity::msc_rules_cleanup (rules=0x23f4440) at rules.cc:357
#3  0x00007fbeb7b45645 in ngx_http_modsecurity_config_cleanup (data=0x23f1438) at ../ModSecurity-nginx/src/ngx_http_modsecurity_module.c:611
#4  0x000000000040df2c in ngx_destroy_pool (pool=0x236c4f0) at src/core/ngx_palloc.c:57
#5  0x000000000043031a in ngx_worker_process_exit (cycle=cycle@entry=0x236c540) at src/os/unix/ngx_process_cycle.c:1001
#6  0x0000000000430407 in ngx_worker_process_cycle (cycle=cycle@entry=0x236c540, data=data@entry=0x0) at src/os/unix/ngx_process_cycle.c:758
#7  0x000000000042ee60 in ngx_spawn_process (cycle=cycle@entry=0x236c540, proc=proc@entry=0x430352 <ngx_worker_process_cycle>, data=data@entry=0x0,
    name=name@entry=0x481297 "worker process", respawn=respawn@entry=-3) at src/os/unix/ngx_process.c:198
#8  0x000000000043053b in ngx_start_worker_processes (cycle=cycle@entry=0x236c540, n=8, type=type@entry=-3) at src/os/unix/ngx_process_cycle.c:358
#9  0x0000000000430e0f in ngx_master_process_cycle (cycle=cycle@entry=0x236c540) at src/os/unix/ngx_process_cycle.c:130
#10 0x000000000040c94e in main (argc=<optimized out>, argv=<optimized out>) at src/core/nginx.c:367

The following patch seems to fix this issue: https://github.com/SpiderLabs/ModSecurity/commit/3ee7b2492849be9abdee0e7b931458bc9b63227f#diff-e221cb70032281cab47059fcdde13418
Thanks!

Thanks @defanator ;)
This issue is now closed.


Missing cpp header

Problem
With recent gcc version (such as gcc v11.2.0), the following error occurs when compiling a program which include rapidcsv.h.
In file included from /home/nusget/develop/rapidcsv/tests/test001.cpp:3:
/home/nusget/develop/rapidcsv/src/rapidcsv.h:62:69: error: ‘numeric_limits’ is not a member of ‘std’
   62 |                              const long double pDefaultFloat = std::numeric_limits<long double>::signaling_NaN(),

Solution
Add the missing  header where std::numeric_limits is defined.
Changes at lines 718, 793 and 959 arise from the code formatting tool: uncrustify -c uncrustify.cfg --no-backup src/rapidcsv.h
Tested on Linux, gcc v11.2.0
That's my two cents to your easy-to-use CSV parser 🥇

Thanks for contributing! The PR looks very good, will proceed to merge.


Unable to detect changes

@tchupp I'm trying to use your gh action but it seems to be unable to detect any changes even though folders have change. This is my CI file:
name: Gosec Security Scan

on:
  push:
    branches:
      - "master"
      - "main"
  pull_request:
    branches:
      - "*"

jobs:
  detect-changes:
    runs-on: ubuntu-latest
    outputs:
      changed: ${{ steps.detect.outputs.changed }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Detect Directory Changes
        id: detect
        uses: tchupp/actions-detect-directory-changes@v1
        with:
          included-paths: "!./.github/**"

  gosec-scan:
    runs-on: ubuntu-latest
    needs: detect-changes
    env:
      GO111MODULE: on
    strategy:
      matrix:
        modules: ${{ fromJSON(needs.detect-changes.outputs.changed) }}
    steps:
      - name: Fetch Repository
        uses: actions/checkout@v4
      - name: Install Go
        uses: actions/setup-go@v4
        with:
          go-version: '^1.19.x'
          check-latest: true
          cache: false
      - name: Install gosec
        run: go install github.com/securego/gosec/v2/cmd/gosec@latest
      - name: Run gosec
        working-directory: ${{ matrix.modules }}
        run: gosec ./...

When running the following output shows only changes in .github/, I also have changes in the redis directory
env:
    INCLUDED_PATHS: !./.github/**
    IF_THESE_PATHS_CHANGE_RETURN_ALL_INCLUDED_PATHS:
    CHANGED_DIRECTORIES: ./.github/workflows
    ALL_DIRECTORIES: . .github .github/ISSUE_TEMPLATE .github/scripts .github/workflows arangodb azureblob badger bbolt coherence couchbase dynamodb etcd memcache memory memory/internal minio mongodb mssql mysql pebble postgres redis ristretto rueidis s3 scylladb sqlite3

This warning also shows for the whole action .yml file:
Error when evaluating 'strategy' for job 'gosec-scan'. .github/workflows/gosec.yml (Line: 45, Col: 18): Matrix vector 'modules' does not contain any values

I took this out:
        with:
          included-paths: "!./.github/**"

And it seems the problem is, the action is ONLY detecting changes compared to the last commit. It should be all the commits in the Pull Request compared to the default branch.

Got it to work using https://github.com/tj-actions/changed-file


Yet Another (container) MANager

A bunch of commands have been partially implemented to get a feeling of where I want to go, I'll try to have different PRs for the additional commands but that looks quite cool already:
gitpod /workspace/containers (yaman) $ yaman images
NAME                  TAG         CREATED                PULLED                 REGISTRY
library/hello-world   latest      2021-09-23T23:47:57Z   2022-06-09T21:18:50Z   docker.io
library/redis         latest      2022-06-08T18:34:43Z   2022-06-09T21:36:53Z   docker.io
gitpod /workspace/containers (yaman) $ yaman ps
CONTAINER ID                       IMAGE                            COMMAND        STATUS      NAME
be89771e4c7b43e486769e550f131cb1   docker.io/library/redis:latest   redis-server   running     angry_kepler
gitpod /workspace/containers (yaman) $ yaman logs be89771e4c7b43e486769e550f131cb1
1:C 09 Jun 2022 21:47:35.310 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 09 Jun 2022 21:47:35.310 # Redis version=7.0.1, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 09 Jun 2022 21:47:35.310 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1:M 09 Jun 2022 21:47:35.311 * monotonic clock: POSIX clock_gettime
1:M 09 Jun 2022 21:47:35.311 * Running mode=standalone, port=6379.
1:M 09 Jun 2022 21:47:35.311 # Server initialized
1:M 09 Jun 2022 21:47:35.311 # WARNING WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:M 09 Jun 2022 21:47:35.312 * Ready to accept connections

(ahm, looks like my gitpod env clock is stuck in the past)
gitpod /workspace/containers (yaman) $ date
Thu 09 Jun 2022 10:23:42 PM UTC


Include the Wizcorp facebook plugin

Could the Wizcorp facebook plugin be included in the developer app, it would make testing on IOs devices a whole lot easier!  Very popular plugin too!
https://github.com/Wizcorp/phonegap-facebook-plugin

Hi @ZeroT,
When we look into adding a plugin to the developer app we have to make sure that it supports all the platforms (Android, iOS, Windows). This plugin only has support for Android and iOS.
However if you would like to add this plugin yourself and create a build of the developer app with it included, please follow these steps.

We definitely want to add popular plugins that help developers focus on building apps. If the plugin can be updated to fail gracefully on Windows, then we could look at adding to the Dev App.

for now you will need to build it yourself to get these functions.


No longer logging in, even though auth and cookie is successful

This had been working fine for weeks, along with updating the pwsuffix and all, but broke in the past couple days. I've tried moving between several releases in the 13/14/15 tags, and none seem to work at the moment.  It seems to successfully sign in, save a local cookie, and then fail to pull the data after going through some redirect loop or something.  Hitting the URL 'https://customer.xfinity.com/apis/csp/account/me/services/internet/usage?filter=internet' in an incognito browser after logging in does seem to work:
xfinity    | 2021-09-12 21:28:31 [info] : Connected to MQTT
xfinity    | 2021-09-12 21:28:31 [verbose] : Fetching Data
xfinity    | 2021-09-12 21:28:31 [debug] : Loading (https://customer.xfinity.com)
xfinity    | 2021-09-12 21:28:36 [debug] : Page Title: Sign in to Xfinity
xfinity    | 2021-09-12 21:28:36 [debug] : Logging in
xfinity    | 2021-09-12 21:28:39 [debug] : Page Title: Sign in to Xfinity
xfinity    | 2021-09-12 21:28:39 [debug] : Saving cookies for next fetch
xfinity    | 2021-09-12 21:28:39 [debug] : Loading Usage https://customer.xfinity.com/apis/csp/account/me/services/internet/usage?filter=internet
xfinity    | 2021-09-12 21:28:40 [debug] : Not logged in
xfinity    | 2021-09-12 21:28:40 [debug] : Loading (https://customer.xfinity.com)
xfinity    | 2021-09-12 21:28:43 [debug] : Page Title: Sign in to Xfinity
xfinity    | 2021-09-12 21:28:43 [debug] : Logging in
xfinity    | 2021-09-12 21:28:45 [debug] : Page Title: Sign in to Xfinity
xfinity    | 2021-09-12 21:28:45 [debug] : Saving cookies for next fetch
xfinity    | 2021-09-12 21:28:45 [debug] : Loading Usage https://customer.xfinity.com/apis/csp/account/me/services/internet/usage?filter=internet
xfinity    | 2021-09-12 21:28:46 [debug] : Not logged in
xfinity    | 2021-09-12 21:28:46 [debug] : Loading (https://customer.xfinity.com)
xfinity    | 2021-09-12 21:28:48 [debug] : Page Title: Sign in to Xfinity
xfinity    | 2021-09-12 21:28:48 [debug] : Logging in
xfinity    | 2021-09-12 21:28:50 [debug] : Page Title: Sign in to Xfinity
xfinity    | 2021-09-12 21:28:50 [debug] : Saving cookies for next fetch
xfinity    | 2021-09-12 21:28:50 [debug] : Loading Usage https://customer.xfinity.com/apis/csp/account/me/services/internet/usage?filter=internet
xfinity    | 2021-09-12 21:28:51 [error] : Unable to login
xfinity    | 2021-09-12 21:28:51 [info] : Next update in 60 minutes @ 10:28:31 PM

I have seen it hit and miss a lot recently too.
Based on your logs it actually is not completing the log-in sequence. It saves cookies whether it logs in or not. This means nothing is probably wrong on your end.
What I have seen in recent days is even if the correct username and password are used Xfinity is just returning the browser to the login page with the error of "Your username or password is incorrect." But if you try again a couple of hours later without changing anything it works a couple of times then fails again.
I just need to find some time to look deeper.

Try the latest release and see if that works for you.

I pulled latest image, but still got error.  Seems to be a new line in the debug logging showing "Login redirects: 3", but otherwise appears to be same results.  I'm not positive, but I think it did do a password reset in the last 24 hours.  I think my suffix was at 7 yesterday morning when I was troubleshooting, but this morning is at 8.  I just logged in manually via MS Edge with the latest pwsuffix, and was able to get in. I have no idea if it's related, but after manual login, it always redirects me to the URL https://customer.xfinity.com/?beta=1 , which seems to be a page where it's trying to get you to sign up for xfinity rewards.
xfinity    | 2021-09-14 07:11:59 [verbose] : Fetching Data
xfinity    | 2021-09-14 07:11:59 [debug] : Loading (https://customer.xfinity.com)
xfinity    | 2021-09-14 07:12:07 [debug] : Login redirects: 3
xfinity    | 2021-09-14 07:12:07 [debug] : Logging in
xfinity    | 2021-09-14 07:12:11 [debug] : Page Title: Sign in to Xfinity
xfinity    | 2021-09-14 07:12:11 [debug] : Saving cookies for next fetch
xfinity    | 2021-09-14 07:12:11 [debug] : Loading Usage https://customer.xfinity.com/apis/csp/account/me/services/internet/usage?filter=internet
xfinity    | 2021-09-14 07:12:12 [debug] : Not logged in
xfinity    | 2021-09-14 07:12:12 [debug] : Loading (https://customer.xfinity.com)
xfinity    | 2021-09-14 07:12:15 [debug] : Login redirects: 3
xfinity    | 2021-09-14 07:12:15 [debug] : Logging in
xfinity    | 2021-09-14 07:12:17 [debug] : Page Title: Sign in to Xfinity
xfinity    | 2021-09-14 07:12:17 [debug] : Saving cookies for next fetch
xfinity    | 2021-09-14 07:12:17 [debug] : Loading Usage https://customer.xfinity.com/apis/csp/account/me/services/internet/usage?filter=internet
xfinity    | 2021-09-14 07:12:18 [debug] : Not logged in
xfinity    | 2021-09-14 07:12:18 [debug] : Loading (https://customer.xfinity.com)
xfinity    | 2021-09-14 07:12:20 [debug] : Login redirects: 3
xfinity    | 2021-09-14 07:12:20 [debug] : Logging in
xfinity    | 2021-09-14 07:12:22 [debug] : Page Title: Sign in to Xfinity
xfinity    | 2021-09-14 07:12:22 [debug] : Saving cookies for next fetch
xfinity    | 2021-09-14 07:12:22 [debug] : Loading Usage https://customer.xfinity.com/apis/csp/account/me/services/internet/usage?filter=internet
xfinity    | 2021-09-14 07:12:23 [error] : Unable to login

I just wanted to close the loop on this one.  I did some more debugging, and for some reason, the was a problem with my pwsuffix reading properly.  I went ahead and tried removing the pwsuffix and just putting the last character in my password, and then everything started working, so the problem must've been on my end.  I may have manually created the pwsuffix at one point while testing, which may have broken it at that time.  I'll go ahead and close this issue.  Thanks again for all your work on this project.

Specifically, I did find the root cause, which was that there was a line feed or carriage return in my pwsuffix file.  I opened it up in and editor and removed it so that it was just the integer without a space or return, and the file works again.


Update java-openliberty-gradle devfile

What does this PR do?:
This PR updates the java-openliberty-gradle sample:

Update schemaversion to 2.2.2
Update endpoint protocol to https

Which issue(s) this PR fixes:
Link to github issue(s)
PR acceptance criteria:

[ ] Contributing guide
Have you read the devfile registry contributing guide and followed its instructions?
[ ] Test automation
Does this repository's tests pass with your changes?
[ ] Documentation
Does any documentation need to be updated with your changes?
[ ] Check Tools Provider
Have you tested the changes with existing tools, i.e. Odo, Che, Console? (See devfile registry contributing guide on how to test changes)

How to test changes / Special notes to the reviewer:

Thank you, I fixed the changes, but I had to force push to my branch to remove the unsigned commit

/ok-to-test

Thank you, I fixed the changes, but I had to force push to my branch to remove the unsigned commit

Thanks! @ajm01 as you are the owner of the stack could you please review the PR?
/hold

Note there's a known issue with a failing check and we're working to address it: https://github.com/devfile/api/issues/1494.

Thank you, I fixed the changes, but I had to force push to my branch to remove the unsigned commit

Thanks! @ajm01 as you are the owner of the stack could you please review the PR?
/hold

@ajm01 kind reminder to review the PR as you are listed as an owner. As discussed in the devfiles community call, we will wait for a week, until 23 Apr 2024, so the owner has time to review. In case we don't have a review from the owner, the devfile services team will review & merge the updates to unblock the eclipse che team.

Thank you, I fixed the changes, but I had to force push to my branch to remove the unsigned commit

Thanks! @ajm01 as you are the owner of the stack could you please review the PR?
/hold

@ajm01 kind reminder to review the PR as you are listed as an owner. As discussed in the devfiles community call, we will wait for a week, until 23 Apr 2024, so the owner has time to review. In case we don't have a review from the owner, the devfile services team will review & merge the updates to unblock the eclipse che team.

Merged


Add a new feature to expose the socket handle

In my specific case I need get access to incoming connection socket.Handle from application code. If I am correct understand current working model (#1980) I need some feature that will be transfer socket.Handle from transport layer to application code.
More details
Please correct me if I am wrong.

It doesn't sound like you need the actual socket handle in application code, what you need is the security label, correct? What if there was an event inside the socket transport that fired when the socket was first connected, gave you access to the handle, and let you pass your own state up the stack via the feature collection?

Having arbitrary access to the handle from the application layer seems like a recipe for disaster.

Having arbitrary access to the handle from the application layer seems like a recipe for disaster.

I agree with you.

It doesn't sound like you need the actual socket handle in application code, what you need is the security label, correct? What if there was an event inside the socket transport that fired when the socket was first connected, gave you access to the handle, and let you pass your own state up the stack via the feature collection?

How it can looks like in code? Here I can fire the event.
https://github.com/aspnet/KestrelHttpServer/blob/55e5e564226e7b27742c91f46ea71841071e4ac3/src/Kestrel.Transport.Sockets/SocketTransport.cs#L153
Which place will be suitable to subscribe?

It’s completely fine to expose the socket handle via an obscure feature. That’s the entire point of features

I'd expect the subscription to happen through SocketTransportOptions:
https://github.com/aspnet/KestrelHttpServer/blob/55e5e564226e7b27742c91f46ea71841071e4ac3/src/Kestrel.Transport.Sockets/SocketTransportOptions.cs and you'd set it like this:
            hostBuilder.ConfigureServices(services =>
            {
                services.Configure<SocketTransportOptions>(options =>
                {
                     options.OnAccept = context => { .. };
                });
            })

I'm not sure this is the right approach but let me ask a question. @westfin how are you using the the handle? Are you reading from the socket itself or are you doing something else with it? What does the API handling it off

I'm not sure this is the right approach but let me ask a question. @westfin how are you using the the handle? Are you reading from the socket itself or are you doing something else with it? What does the API handling it off

I just simple reading from the socket.

Yea that may not work well. As multiple parties would be reading from the socket. A transport level hook seems more appropriate.
Or consider refactoring the native library to not do the actual reading.

Or consider refactoring the native library to not do the actual reading.

I can't refactoring this library.

Yea that may not work well. As multiple parties would be reading from the socket. A transport level hook seems more appropriate.

Ok, can I try work on this issue? @Tratcher if in pocess of work I have some question - can I ask you here? In your solutaion action should have two params?
options.OnAccept => (context, socket) {/* Get socket handle */};

I expect the context to be a new object that has the handle on it along with other connection information like the feature collection.

How I can put this information up to the top? In middleware I have HttpContext with Features.
Actualy I don't fully understand what is the context. Kestral has HttpConnection , Http1Connection, TransportConnection -> SocketConnection, KestrelConnection and etc. Most of them somehow use ConnectionContext, but I don't see where this inforamtion set up to middleware.
My new object context have same function like all these connections? Or not?

That's definitely on the right track.

You'll want to move the OnAccept invocation from RunAcceptLoopAsync to HandleConnectionAsync to avoid blocking the accept loop.
SocketHandleContext could be named SocketAcceptContext.
What kind of work do you plan on doing in OnAccept? Would it make sense for that to be async? Func<SocketAcceptContext, Task>

What kind of work do you plan on doing in OnAccept? Would it make sense for that to be async? Func<SocketAcceptContext, Task>

At the moment it sync work, but may be in future it can be async. Therefore, this makes sense.

@Tratcher I try it in my repository https://github.com/westfin/KestrelHttpServer/commit/a14b8854dcdcb385dc610739ed1c91534ca8588e. It works as expected for me.
Actualy I don't have any more questions about issue. It just about project structure.

What place will be correct for new object class?

https://github.com/westfin/KestrelHttpServer/blob/a14b8854dcdcb385dc610739ed1c91534ca8588e/src/Kestrel.Transport.Sockets/SocketAcceptContext.cs#L6

And this how I modify HandleConnectionAsync method

https://github.com/westfin/KestrelHttpServer/blob/a14b8854dcdcb385dc610739ed1c91534ca8588e/src/Kestrel.Transport.Sockets/SocketTransport.cs#L192-L199
If it's correct can I create PR for this issue?
Thanks for your help.

Yes that looks like a good place for SocketAcceptContext.
As for HandleConnectionAsync, I'd expect SocketConnection to make the Socket available as an internal property. Then SocketAcceptContext can be constructed inside HandleConnectionAsync rather than passed to it.
SocketAcceptContext should also take/expose the Socket as a parameter rather than just the handle, the handle can be retrieved by anybody from the Socket, but Socket provides much more functionality.
I'll talk to @shirhatti and @davidfowl on if we'd accept a PR for this feature. It's pretty dangerous to mess with the raw socket underneath the transport and we're not sure if there are enough scenarios to justify exposing it.

@westfin have you tested that this implementation works with your library yet? You can use the sample apps to try it.

Proxying also affords you opportunity to asynchronously buffer the security label before P/Invoking into a method that could block a managed thread and, depending on how you're trying to implement this, the entire accept loop! 😱

Yes that looks like a good place for SocketAcceptContext.
As for HandleConnectionAsync, I'd expect SocketConnection to make the Socket available as an internal property. Then SocketAcceptContext can be constructed inside HandleConnectionAsync rather than passed to it.
SocketAcceptContext should also take/expose the Socket as a parameter rather than just the handle, the handle can be retrieved by anybody from the Socket, but Socket provides much more functionality.

I updated the repository with your recommendations https://github.com/westfin/KestrelHttpServer/commit/7797b99ed05d8798261aa0690cdc1e0ad24541e1

@westfin have you tested that this implementation works with your library yet? You can use the sample apps to try it.

I create own test sample in repository
https://github.com/westfin/KestrelHttpServer/tree/release/2.2/samples/SocketAcceptContextSample
But without my native library. I use stub method
https://github.com/westfin/KestrelHttpServer/blob/75998b46b046a56d057c3f335caa149047743234/samples/SocketAcceptContextSample/Startup.cs#L42-L45
It works well for me.

You might want to at least simulate what operations the native module will perform on the socket. E.g. it's going to read x bytes?

@westfin Have you considered writing connection middleware that proxies the security label from the Transport PipeReader to a managed Socket and then passes the handle from the managed socket to the GetSecurityLabel method? Connection middleware is invoked immediately after accept without anything else reading or writing to the socket, so in principle it seems like this should work.

Proxying also affords you opportunity to asynchronously buffer the security label before P/Invoking into a method that could block a managed thread and, depending on how you're trying to implement this, the entire accept loop! 😱

@halter73 I do not fully understand your idea. I need get accepting Socket.Handle. In PipeReader I can't get this object. https://github.com/aspnet/KestrelHttpServer/blob/10458d5ecc548ba77541259dfcf954be714d9c7f/src/Kestrel.Transport.Sockets/SocketTransport.cs#L153
I create repository to try implement @Tratcher solution.
And I create a sample.
Maybe you'll try to explain on it?
https://github.com/westfin/KestrelHttpServer/tree/release/2.2/samples/SocketAcceptContextSample

You might want to at least simulate what operations the native module will perform on the socket. E.g. it's going to read x bytes?

I unfortunately do not know how this library is implemented. But I think it's read some bytes from it.

The idea is to create your own acceptSocket in the connection middleware that listens on localhost. You would then establish a loopback connection where you proxy/send just the bytes containing the security label you read from the PipeReader over the client socket. You could then take the accepted server-side socket and pass that to GetSecurityLabel.

The idea is to create your own acceptSocket in the connection middleware that listens on localhost. You would then establish a loopback connection where you proxy/send just the bytes containing the security label you read from the PipeReader over the client socket. You could then take the accepted server-side socket and pass that to GetSecurityLabel.

@halter73 What does mean connection middleware? Write own ConnectionHandler?

@halter73  I think I understand what you mean. Maybe I am wrong but I can't read security label from PipeReader, because security label is in options IP datagram. And to get access to this bytes I need raw socket.

I think I understand now. Are the security labels your trying to read described by RFC 1108? If that's the case, you're right that the IP header data cannot be read from the PipeReader. The RFC seems to indicate that each datagram is supposed to cary this option. Is it acceptable to check only the first datagram? I suppose it wouldn't make sense for the security option to change mid connection.
If the first datagram of the TCP connection always contains the security option you're looking for, blocking the accept loop isn't too much of a concern for your specific use case. However, if we want to ship SocketTransportOptions.OnAccept, as a supported API, we'll probably want to Task.Run the OnAccept callback.

I think I understand now. Are the security labels your trying to read described by RFC 1108?

Yes you are right 😃

Is it acceptable to check only the first datagram? I suppose it wouldn't make sense for the security option to change mid connection.

Yes, I also think that this will be enough.

Proxying also affords you opportunity to asynchronously buffer the security label before P/Invoking into a method that could block a managed thread

Can you explain this point in more detail or maybe provide a link to the docs? :) What you mean when say "block a managed thread" - that specific for p/invoke?

My point about how the P/Invoke could "block a managed thread" was theoretical.
Without knowing anything about GetSecurityLabel other than the fact that it takes a socket handle as a parameter, it seemed possible that GetSecurityLabel might not return immediately. For all I knew, GetSecurityLabel might make a blocking call to recv(). It would be bad if that were the case, because for as long as no security label arrived on the newly accepted socket, the server would be unable to accept any new connections.
Since I was under the impression that GetSecurityLabel was reading data instead of options from the socket, I thought you could wait to make sure data arrived before P/Invoking. Now that I know the security label arrives via an option in the TCP SYN packet, waiting for data doesn't seem useful.
I'm interested in how GetSecurityLabel can read options from a TCP packet via a socket handle at the app layer. I'm guessing the customized OS might have something to do with exposing the necessary metadata.

Now I understand. Thank you.

I'm interested in how GetSecurityLabel can read options from a TCP packet via a socket handle at the app layer. I'm guessing the customized OS might have something to do with exposing the necessary metadata.

I don't know how.
But "OnAccept" solution works for me 😃

@Tratcher what to do with this issue?

@davidfowl

@davidfowl What's your current thought on this? It looks risky to expose this in general, no?

@westfin We don't think this is a general enough feature to add to the SocketsTransport. I recommend you fork the transport and add it. We'd be ok making something virtual on the transport so that you could derive instead of forking the entire code base.

Yes I agree. Yhis is not general feature.
Any way thank you.


add load test for amd; clean up tests folder

Hey Jason, my pleasure to help out. And thank you so much for coming up with this project. this is exactly what I was looking for : )
a few changes in this PR:

add require js to test amd
clean up tests structure

Any chance you could bump the release to bower after this :)?
thanks, -Neil

Looks good!  I merged in the PR.  I'll tweak a few things in the project tonight and then push to Bower shortly after.

Thanks again!

And I released 1.2.0, it appears to be in Bower.  Let me know if any issues arise.

works perfectly. Thanks for the quick update! :)


test: Use Let's Encrypt for CI interface

This will require changes to the runner flags:

Remove -tls-key and -tls-cert
Add -tls-dir pointing at an empty directory to persist the certificate cache.
Add -domain ci.flynn.io

We should update the runner flags in the sample Upstart script: https://github.com/flynn/flynn/blob/master/test/scripts/upstart.conf#L40-L49

We should update the runner flags in the sample Upstart script

Done.


Quick fix code action MVP

Motivation

Starts on support for quick fix code actions. Liberal TODOs are in place for future work.
Test plan

See included automated tests.

Super excited about this!
This is going to be a major feature!

LGTM


Application Stoped

When i start windows form app . and incoming too many message. my app stoped
Problem signature:
Problem Event Name:	CLR20r3
Problem Signature 01:	MyTestBot.exe
Problem Signature 02:	<IP_ADDRESS>
Problem Signature 03:	578b4562
Problem Signature 04:	Telegram.Bot
Problem Signature 05:	<IP_ADDRESS>
Problem Signature 06:	577c400d
Problem Signature 07:	2fd
Problem Signature 08:	5a7
Problem Signature 09:	TH2YEZIPEGVCMVOH3BPXD2RPSLO2UOX2
OS Version:	6.1.76<IP_ADDRESS>.272.7
Locale ID:	1033
Additional Information 1:	0a9e
Additional Information 2:	0a9e372d3b4ad19135b953a78882e789
Additional Information 3:	0a9e
Additional Information 4:	0a9e372d3b4ad19135b953a78882e789
Read our privacy statement online:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt

Can you provide a screenshot of the exception being thrown? Run the application from Visual Studio (with the debugger attached) and then you should be able to see the exception.
Kind regards,
Martijn Verbakel

hi dude . this error for Limit Message Text .
solved .


pipenv run migrate报错缺失tbl_user表项问题

首先是有一个报错：
mysqlclient 1.4.3 or newer is required; you have 1.0.3
什么原因我不懂总之改下这个backend/backend/init.py添加一行就可以了

可是这是为什么呢？解决链接原文在这里
https://stackoverflow.com/questions/55657752/django-installing-mysqlclient-error-mysqlclient-1-3-13-or-newer-is-required

解决完成编辑.env得数据库连接配置后执行：
[root@bf179903968b backend]# pipenv run makemigrations
Loading .env environment variables...
No changes detected

没有问题成功执行
但是执行数据库迁移生成时报错了：
[root@bf179903968b backend]# pipenv run migrate
Loading .env environment variables...
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, exam, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying admin.0001_initial...Traceback (most recent call last):
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 73, in execute
    return self.cursor.execute(query, args)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.OperationalError: (1824, "Failed to open the referenced table 'tbl_user'")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/core/management/__init__.py", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/core/management/base.py", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/core/management/base.py", line 398, in execute
    output = self.handle(*args, **options)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/core/management/base.py", line 89, in wrapped
    res = handle_func(*args, **kwargs)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/core/management/commands/migrate.py", line 244, in handle
    post_migrate_state = executor.migrate(
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/migrations/executor.py", line 117, in migrate
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/migrations/executor.py", line 230, in apply_migration
    migration_recorded = True
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/backends/base/schema.py", line 118, in __exit__
    self.execute(sql)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/backends/base/schema.py", line 145, in execute
    cursor.execute(sql, params)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/backends/utils.py", line 98, in execute
    return super().execute(sql, params)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/backends/utils.py", line 66, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 73, in execute
    return self.cursor.execute(query, args)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/root/.local/share/virtualenvs/backend-uuyuvXgx/lib/python3.8/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
django.db.utils.OperationalError: (1824, "Failed to open the referenced table 'tbl_user'")

说无法创建tbl_user得意思大概，但是我看代码里又是有定义的，这是为什么啊，执行该命令后只有这三个库出现了：

希望大佬帮解答下，十分感谢！

解决了看了下django得文档：再加上这两句即可
pipenv run python manage.py makemigrations question
pipenv run python manage.py makemigrations users
然后执行pipenv run migrate成功创建所有需要得表

大腿请问login管理账号密码错误怎么搞，明明是对的


Abstract NFP logging library which will auto append required metadata

… without changing the module code and no extra coding required to add metadata into each log
@pkharat @njagadish @songole

@ashutosh-mishra - Can you also review this. Make sure orchestrator or any other component is not broken because of these changes.

Fix pep8 errors, warnings

Changes are fine.


Rename dotnetapp-prod to dotnetapp

We had a scheme in the past for our naming, but based on changes in the ecosystem and our own learning, I'm starting to wish we didn't have "-prod" in the sample names and just considered the default sample to be the right one and everything else to be variations. Basically, "prod" should be our default use case.
Thoughts on renaming?

This was resolved with https://github.com/dotnet/dotnet-docker/pull/362.


feat: Add a minimal prometheus server manifest

Signed-off-by: Simon Behar<EMAIL_ADDRESS>Checklist:

[ ] My organization is added to USERS.md.

Could you do a hands-on with me and Bala?

Would be happy to. Today at standup?

Stand-up demo - yes please. What would be neat? make start RUN_MODE=kubernetes PROFILE=prometheus and it just works.

What would be neat? make start RUN_MODE=kubernetes PROFILE=prometheus and it just works.

Will have this ready by standup time

@alexec Ready again


Add sale alert json to undercut generator

For @fabiantorrestech
We can have the undercut generator also give the sale alert json.  The sale alert is very simple, just the seller_id an server we already have and then an empty list for item_ids
{
        "seller_id": "fasdfasdfasdfasdafadsfadfadfadf",
        "server": "Omega",
        "item_ids": []
}

Hi, @cohenaj194 is this what we're looking for?

Great, added the title and description to it
Just need to have it reviewed and create a PR (:


Please add Backup_Promotion parameter to Data Domain Backups

Request : - Please add a new parameter to backups stored procedure "DatabaseBackup" for avoiding backup promotion (Data Domain terminology for log backups to be converted to full backups) in the case of log backups after a failover in AG.
How I could avoid this auto backup promotion scenario : -
I added a new default input parameter @DataDomainBoost_BACKUP_PROMOTION  nvarchar(max) = 'Y' in your script and used the following statement in the 'DATA_DOMAIN_BOOST'  section
IF @DataDomainBoost_BACKUP_PROMOTION  = 'N' SET @CurrentCommand += ' -a "BACKUP_PROMOTION=NONE"'
Script version : - 2020-01-26 14:06:53
How the Data Domain script should look like : -
DECLARE @ReturnCode int EXEC @ReturnCode = dbo.emc_run_backup ' -c ServerName-l full -y +30d -S 1 -a "NSR_DFA_SI_DD_HOST=DD_Host_details" -a "NSR_DFA_SI_DD_USER=DD_User_Details" -a "NSR_DFA_SI_DEVICE_PATH=/DD_Device_Path" -a "NSR_DFA_SI_DD_LOCKBOX_PATH=Z:\lockbox\location" -a "NSR_SKIP_NON_BACKUPABLE_STATE_DB=TRUE" -a "NSR_COPY_ONLY=TRUE" -a "BACKUP_PROMOTION=NONE" "MSSQL:DB_IN_AG"' IF @ReturnCode <> 0 RAISERROR('Error performing Data Domain Boost backup.', 16, 1)
Thank you,
Sree Kandula

@vijaygopal1216, thank you for your feedback on this.
I am thinking that I have a parameter for changing the backup type and logic for that.
https://ola.hallengren.com/sql-server-backup.html#ChangeBackupType
Maybe I could just set BACKUP_PROMOTION=NONE, with no additional parameter?

Yeah, I believe that will do.
Thank you for looking into it.

I have added this now.
https://ola.hallengren.com/versions.html


Send valid authorization ID when creating check

The task that will be created from check needs an authorizationID. UI needs to send an authorizationID that can (1) read from the buckets query is reading from and (2) write to alerts bucket.
As a part of this issue also check with @desa that we will in fact be needing this authorizationID for creating a task.

Authorization ID is no longer required.


inline JsBuiltIn helper CallInstanceFunction

JsBuiltIns cannot do callback.call(thisArg, ...) because .call is loaded off the function prototype which could be changed a user. CallInstanceFunction performs the same operation, taking the form CallInstanceFunction(callback, thisArg, ...). This commit results in callback being directly inlined.

@jackhorton This will apply to Intl's uses as well, it's the same function just called off of different objects.


Add return types for getter methods

I believe it would ease integration into 3rd party code and improve correctness and error handling in the future. I can open a PR if needed.

Hi @nikbott , I agree with it
You can proceed adding the changes and creating a PR for it

I will now close this, Fixed by PR #35
Thanks to @nikbott


next13 app directory hydration error

I get a hydration error when I try to use the  tag. I haven't found a good solution for this so far.
layout.tsx
import "./globals.css";
import<EMAIL_ADDRESS>import type { Metadata } from "next";
import { Inter } from "next/font/google";
import { Theme } from "@radix-ui/themes";

const inter = Inter({ subsets: ["latin"] });

export const metadata: Metadata = {
  title: "Create Next App",
  description: "Generated by create next app",
};

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (

      <Theme>
        {children}
      </Theme>

  );
}

And I tried something. Create a radix-provider.tsx file and moved <Theme> in this file.
radix-provider.tsx
"use client";

import { useState, useEffect } from "react";
import { Theme } from "@radix-ui/themes";

export default function RadixProvider({
  children,
}: {
  children: React.ReactNode;
}) {
  const [mounted, setMounted] = useState(false);

  useEffect(() => {
    setMounted(true);
  }, []);

  if (!mounted) {
    return null;
  }

  return <Theme>{children}</Theme>;
}

And when i did this, convert layout.tsx file with:
import "./globals.css";
import<EMAIL_ADDRESS>import type { Metadata } from "next";
import { Inter } from "next/font/google";
import RadixProvider from "./radix-provider";

const inter = Inter({ subsets: ["latin"] });

export const metadata: Metadata = {
  title: "Create Next App",
  description: "Generated by create next app",
};

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (

      <RadixProvider>
        {children}
      </RadixProvider>

  );
}

But it's didn't worked. Still getting Hydration error.

Try move Theme component inside the body

          <Theme>
            {children}
          </Theme>

@joaom00 my bad, the code i wrote there is wrong. Actually the  tag is outside the  tag. I keep getting errors though.

@joaom00 Yes, this solved my problem, thank you. So is this a correct method? For example, when using ChakraUI, I was using it outside the  tag. Will this have any side effects?

Will this have any side effects?

I don't think so. Let's wait for someone from the team to answer

Ok, thank you so much for your help you are the nice one dude @joaom00 !

So happy to hear that. Thanks for help folks.