ICU Lexing Error: Unexpected character

Steps to Reproduce

Follow steps for adding l10n support to app
In app_es.arb file update the hello world string with this one: "helloWorld": "This character {"
Run the app.

Expected results:
I was expecting to be able to use the localization string to get that string in my app.
Actual results:
Error is thrown:

[app_es.arb:helloWorld] ICU Syntax Error: Expected "identifier" but found no tokens.
This character {
^
Generating synthetic localizations package failed with 1 error:
Exception: Found syntax errors.

Logs

[  +19 ms] executing: [C:\src\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[  +97 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] b06b8b2710955028a6b562f5aa6fe62941d6febf
[        ] executing: [C:\src\flutter/] git tag --points-at b06b8b2710955028a6b562f5aa6fe62941d6febf
[ +103 ms] Exit code 0 from: git tag --points-at b06b8b2710955028a6b562f5aa6fe62941d6febf
[   +2 ms] 3.7.0
[  +18 ms] executing: [C:\src\flutter/] git rev-parse --abbrev-ref --symbolic @{upstream}
[  +89 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{upstream}
[        ] origin/stable
[   +1 ms] executing: [C:\src\flutter/] git ls-remote --get-url origin
[  +83 ms] Exit code 0 from: git ls-remote --get-url origin
[   +1 ms] https://github.com/flutter/flutter.git
[ +100 ms] executing: [C:\src\flutter/] git rev-parse --abbrev-ref HEAD
[  +93 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[  +72 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +79 ms] executing: C:\Users\Julian\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
[  +94 ms] List of devices attached
           R9YT60RH43P            device product:gta8wifieea model:SM_X200 device:gta8wifi transport_id:1
[   +8 ms] C:\Users\Julian\AppData\Local\Android\sdk\platform-tools\adb.exe -s R9YT60RH43P shell getprop
[  +98 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[  +12 ms] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +180 ms] Initializing file store
[   +4 ms] Done initializing file store
[  +23 ms] gen_localizations: Starting due to {}
[ +113 ms] [app_es.arb:helloWorld] ICU Syntax Error: Expected "identifier" but found no tokens.
                        This character {
                                         ^
[  +16 ms] Persisting file store
[   +6 ms] Done persisting file store
[  +16 ms] "flutter run" took 824ms.
[  +36 ms] Generating synthetic localizations package failed with 1 error:

           Exception: Found syntax errors.
[   +1 ms]
           #0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
           #1      generateLocalizationsSyntheticPackage (package:flutter_tools/src/dart/generate_synthetic_packages.dart:67:5)
           <asynchronous suspension>
           #2      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:1402:7)
           <asynchronous suspension>
           #3      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1257:27)
           <asynchronous suspension>
           #4      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
           <asynchronous suspension>
           #5      CommandRunner.runCommand (package:args/command_runner.dart:209:13)
           <asynchronous suspension>
           #6      FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:283:9)
           <asynchronous suspension>
           #7      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
           <asynchronous suspension>
           #8      FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:229:5)
           <asynchronous suspension>
           #9      run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:64:9)
           <asynchronous suspension>
           #10     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
           <asynchronous suspension>
           #11     main (package:flutter_tools/executable.dart:91:3)
           <asynchronous suspension>

[ +218 ms] ensureAnalyticsSent: 213ms
[   +1 ms] Running 0 shutdown hooks
[        ] Shutdown hooks complete
[        ] exiting with code 1

[app_es.arb:helloWorld] ICU Syntax Error: Expected "identifier" but found no tokens.
    This character {
                     ^
Generating synthetic localizations package failed with 1 error:

Exception: Found syntax errors.

[√] Flutter (Channel stable, 3.7.0, on Microsoft Windows [Version 10.0.19045.2486], locale de-DE)
    • Flutter version 3.7.0 on channel stable at C:\src\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b06b8b2710 (4 days ago), 2023-01-23 16:55:55 -0800
    • Engine revision b24591ed32
    • Dart version 2.19.0
    • DevTools version 2.20.1

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at C:\Users\Julian\AppData\Local\Android\sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Professional 2022 17.4.2)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Professional
    • Visual Studio Professional 2022 version 17.4.33122.133
    • Windows 10 SDK version 10.0.19041.0

[√] Android Studio (version 2022.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[√] Connected device (4 available)
    • SM X200 (mobile)  • R9YT60RH43P • android-arm64  • Android 13 (API 33)
    • Windows (desktop) • windows     • windows-x64    • Microsoft Windows [Version 10.0.19045.2486]
    • Chrome (web)      • chrome      • web-javascript • Google Chrome 109.0.5414.76
    • Edge (web)        • edge        • web-javascript • Microsoft Edge 109.0.1518.69

[√] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Its seems it is now checking some errors at runtime. Just check this line where it shows you and check if you have everything correct.
And its seems it now has some issue with placeholder with camelCase
for example.
selectedItems

@BetterB0y, the problem is the curly brackets. They are part of the syntax to declare variables inside a string in an arb file. I tried a few things to escape the curly brackets to be able to show them in text in my App, but all i tried failed included simple quotes, double cuotes, backslash...
I already oppened two related questions in SO, but i am affraid it is a but in the parser...
https://stackoverflow.com/questions/75263861/how-to-fix-icu-lexing-error-unexpected-character-in-flutter
https://stackoverflow.com/questions/75235288/how-to-fix-icu-syntax-error-expected-identifier-but-found-0-error-in-f

@RedBrogdon, do you by any chance have any insight on this?

Thanks for the report.
I followed the steps mentioned to add localization in the document and then ran flutter gen-l10n which resulted in below:
[app_es.arb:helloWorld] ICU Syntax Error: Expected "identifier" but found no tokens.
    This character {
                     ^
Found syntax errors.
dhs@Dhss-MacBook-Pro test_app %

Keeping this issue open for team's insights on expected behavior.

 stable, master flutter doctor -v
[!] Flutter (Channel stable, 3.7.0, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.7.0 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b06b8b2710 (28 hours ago), 2023-01-23 16:55:55 -0800
    • Engine revision b24591ed32
    • Dart version 2.19.0
    • DevTools version 2.20.1
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.7.0-29.0.pre.26, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 3.7.0-29.0.pre.26 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 15cd00f1ed (2 hours ago), 2023-01-29 21:58:05 -0500
    • Engine revision a7bb0e4108
    • Dart version 3.0.0 (build 3.0.0-179.0.dev)
    • DevTools version 2.20.1
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

/cc @thkim1011

Helllo! There is an escaping syntax that is implemented but not enabled by default as it is a new feature that wasn't completely backward compatible with existing ICU message strings.
First, add the following to your l10n.yaml file:
use-escaping: true

Then, this will allow you to wrap parts of your strings in single quotes to ignore any syntax within the single quotes; to use a single quote normally as a character and not an escape, use a double single quote. For example,
{
  message: "This '{isn''t}' obvious"
}

becomes
String get message => "This {isn't} obvious";

See here for information on the syntax. I'll add this to the documentation later.
See here for the PR in which this was introduced.

By the way the documentation has been updated to include how to escape parts of the syntax. See here: https://docs.flutter.dev/development/accessibility-and-localization/internationalization#escaping-syntax.


HTTP parser middleware

Request struct should be populated with http data.
Headers, body, etc.

Solved internally.
The solution should be revisited for performance and usability/reliability concerns.


Fix the DOI button link in the README document

The link target was not an absolute URL and therefore did not function as a link to the zenodo record. I hadded the DOI resolver prefix and this fixes it.

@IvdL22 I noticed that the DOI in the README file is not the same the one on the main page of the training material itself. https://doi.org/10.5281/zenodo.10676532 vs https://doi.org/10.5281/zenodo.13867278. Is this intentional? If it needs to be changed, I can update the pull request first..


Error  when running krustlet with Kind

Hi, I am experiencing the following error when I tried the steps in the link. I used version 0.4.0 for krustlet. Output is:
$ krustlet-wascc --node-ip <IP_ADDRESS> --bootstrap-file=~/.krustlet/config/bootstrap.conf
BOOTSTRAP: TLS certificate requires manual approval. Run kubectl certificate approve inst1-tls
BOOTSTRAP: received TLS certificate approval: continuing
[2020-08-12 ERROR kubelet::kubelet] Unable to patch status during pod failure for kube-proxy-4m6f4: ApiError: pods "kube-proxy-4m6f4" not found: NotFound (ErrorResponse { status: "Failure", message: "pods "kube-proxy-4m6f4" not found", reason: "NotFound", code: 404 })
[2020-08-12 ERROR wascc_provider] Unable to find pod kube-proxy-l5x4t in namespace kube-system when trying to stop all containers
Any sugestion on how to resolve this?

On the release page, it's mentioned as an issue, however it does not impact the running of krustlet.


web3signer remote registration, unable to delete keys

Description
I am starting Teku with --validators-external-signer-url http://web3signer:9000 --validators-external-signer-public-keys external-signer so that keys loaded into web3signer come in on startup, and users do not need to manually register these keys if they switched consensus layer clients.
I also register the keys with Teku when loading them into web3signer, so that they are immediately live.
This creates an issue when trying to delete the remote registration.

Load keys into web3signer and register as remote key with Teku, via keymanager API
Restart Teku, it loads keys from the web3signer URL
Attempt to delete keys and delete remote registration, this fails. Likely because the remote registration was created upon startup from the web3signer URL:

Remote registration for validator 0x8fe5b2c0ce05093e3c6bbe1db0363b542709dfb4b8433e13ce23f1e7a7d840cc09a2ad97c5fd03980988df48bbe840f2 was found but an error was encountered trying to delete it:
Cannot remove read-only validator

Restart Teku again. It would now not get a key list from web3signer, but it still sees the remote registration that was created on key import:

No keys loaded into web3signer
Remote keys registered with consensus
0x9642bbe4853617cb603863e4c90398304724ad192c4d6337fded814a6ab0c04ede5dafd9d9148ae4c0d1a51354a17687 http://web3signer:9000
0x8fe5b2c0ce05093e3c6bbe1db0363b542709dfb4b8433e13ce23f1e7a7d840cc09a2ad97c5fd03980988df48bbe840f2 http://web3signer:9000

This is worrisome for users: They deleted keys but still see the registration. One user came to me with slashing fears.
Expected behavior:
I'd like to be able to remove registrations that I created, or that were created from web3signer when Teku starts, so key deletion also removes the remote registration from Teku.
I'd like to keep the behavior where keys are immediately live on import, which is why they are imported into web3signer and then registered with Teku, both via keymanager API.
Frequency:
Reproducible
Versions (Add all that apply)

Software version: teku/v23.9.0/linux-x86_64/-eclipseadoptium-openjdk64bitservervm-java-17

any Key that is added outside of keymanager is 'read only', because each startup it's going to load from the configuration and we have no control to remove it.
It can be very confusing attempting to load keys via config AND via keymanager, so my initial suggestion would be avoiding attempting to do that.
Using --validators-external-signer-public-keys external-signer basically tells teku to load the key via configuration, and I'd expect that any loaded via keymanager after that should actually fail to import given that they're present in the signer list already, are you saying you can add via config AND keymanager?
I'll play around, but my initial assumption is avoid specifying --validators-external-signer-public-keys external-signer, as this loads via configuration (meaning they're read only), and you're wanting to manage keys with key-manager by the sounds.

I’m trying to have my cake and eat it, too.
When users load new keys into web3signer I’d like those to be live right away, so hence the use of keymanager. Is there another way, like sending a signal?
When users switch clients, I’d like Teku to pick up web3signer keys without the need to use keymanager, hence the use of the command line parameter to load public keys.

@yorickdowne you can try https://docs.teku.consensys.net/how-to/load-validators-without-restarting
I don't know if it is add-only

I had a play today and was able to use kill -s HUP <TEKU_PID> to load more validators owned by a web3signer.
Is this what we were looking to understand from this ticket ultimately?
Basically my process:

loaded a set of keys to web3signer (about 130) - used my interop-keys.sh script

start teku as minimal, with

validators-external-signer-url: http://localhost:19000
validators-external-signer-public-keys: external-signer

saw 130 keys loaded...

load more keys into web3signer, send hup, get notified Loading 126 validator keys...
normal prompts about slashing protection data etc,
issue another HUP, get loading 0 validator keys, because there were no new keys to load.

I'm not sure removing would be so easy, as this process does seem additive, just putting it out there, in case that's a problem..

We actually have a test explicitly showing that we don't remove keys from an external signer, so if key a is there on load, and only b is there on reload, you'd be attempting duties for (a,b)
I don't think this would be super hard to modify if it's helpful to remove the keys on HUP... probably a day or 2 of playing...

This is actually less simple than I was hoping, I might have to re-evaluate.
My use case:

start a network with 256 external validators
after a few epochs, remove them from the external signer
send HUP to teku (reloads) - still trying to perform duties (not great)
send keys to signer again  - successfully perform duties on teku with no hup (so the keys didnt get removed correctly)

I'm going to close that PR un-merged, as this won't be the change you're looking for giving that odd behaviour, we'll have to have a closer look at it all.

@tbenr Thanks! I changed my code to not register web3signer keys via keymanager and instead use SIGHUP. Works well for adding keys!
@rolfyone Appreciate the effort! That's a doozy for sure.

Going to close this. We will re-evaluate if there is actual need.


Feature Request : Allow access to raw data on Stream class.

Basically I want something that works the same as detach() .. but without the two lines of code that are below
$this->stream = $this->size = $this->uri = null;
$this->readable = $this->writable = $this->seekable = false;

So maybe like a getRawStream() or something, that just returns the stream
    public function getRawStream()
    {
        $result = $this->stream;

        return $result;
    }

Adding this would break the stream abstraction and would leave the stream object in an inconsistent state (e.g., some stream decorators rely on this). By detaching the stream, you're telling Guzzle that Guzzle is no longer responsible for managing the stream and therefore Guzzle makes it no longer possible to use it. You'll need to recreate a new Guzzle stream in order to work with a detached PHP stream.

Well can you allow me to pass in PHP methods to call upon the stream point?
$row = $stream->call('fgetcsv');

That still breaks the abstraction because you are assuming that each Guzzle stream owns a PHP stream and assuming that invoking these methods on the stream directly will not affect the internal state of any decorators. If you really want to do this, you'll need to hold on to a reference of a PHP stream before wrapping it in a Guzzle stream.


UFL models

The UFL catalog, http://<IP_ADDRESS>/thredds/remoteCatalogService?catalog=http://thredds.coastal.ufl.edu:8080/thredds/catalog.xml, has several links with NAM, WRF, and NHC-SYN for 2D and 3D setups.
When I click on WRF or NHC-SYN I get a FatalError like this one:
http://<IP_ADDRESS>/thredds/remoteCatalogService?catalog=http://thredds.coastal.ufl.edu:8080/thredds/catalog/CH3D-SSMS/EastCoast/2D/NHC-SYN-FC/catalog.xml
NAM seems to be OK.
@vembus and @jcothran Any ideas?

OK.  It seems that these catalogs are dead.  Closing this.


Update rds-storage-spaces-direct-deployment.md

Updating broken link in step 10

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


[Feature] Determine in advance whether there are changed fields, otherwise the latest schama information will not be obtained.

Search before asking

[X] I searched in the issues and found nothing similar.

Motivation
Optimize the logic of org.apache.paimon.flink.sink.cdc.UpdatedDataFieldsProcessFunctionBase#extractSchemaChanges: prioritize whether updatedDataFields is empty to avoid accessing the latest schema information every time
Solution
prioritize whether updatedDataFields is empty to avoid accessing the latest schema information every time
Anything else?
No response
Are you willing to submit a PR?

[X] I'm willing to submit a PR!

Background

Here, each thread maintains a set of field information separately. If different threads process the same field one after another, the shema change check will be triggered. In this case, the latest schame information will be frequently obtained, resulting in a decrease in the overall throughput of the task, which will cause subsequent exceptions such as checkpoint failure.
Solution
Maintain a state cache for the latest shema information to avoid direct access to the file system.

For example, the Paimon table has 1500 fields, the Parallelism of the Write operator is 500, and the task is restarted. In extreme cases, it will trigger 1500500 calls to the latest schema information. If each call takes 20ms, the total time is: 1500500*30ms=6.25h. This will greatly affect the throughput of the task.


Feature ignore umount

The proposal is to use a shared lib hook to completely ignore umount, that is being called by "test_UP" utility under undetermined circumstances.
I've noticed that sometimes NFS directory becomes unexpectedly unmounted, mount_nfs script kicks a reboot and then the camera dies and becomes irresponsible until a power down\up hard restart.

A similiar implementation with more checks to only ignore unmounting sdcard partition is added into the latest release 0.5.1, i'm closing this pull request.

A similiar implementation with more checks to only ignore unmounting sdcard partition is added into the latest release 0.5.1, i'm closing this pull request.


must be super admin to setup pglogical

There is a step when setting up pglogical: GRANT azure_pg_admin, replication to myUser;
However, it requires super admin to grand replication and Azure does not provide access to the super user privilege in Flexible server.  This step fails, and I'm uncertain how replication can be setup without super user when the pglogical document states: "Currently pglogical replication and administration requires superuser privileges. ...."

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8d7e3fa6-b282-55d8-ef23-ce4a106edf3f
Version Independent ID: d815c733-fce0-dc0e-8d8b-c8c76acbc182
Content: Logical replication and logical decoding - Azure Database for PostgreSQL - Flexible Server
Content Source: articles/postgresql/flexible-server/concepts-logical.md
Service: postgresql
Sub-service: flexible-server
GitHub Login: @sr-msft
Microsoft Alias: srranga

@tbecks We are reviewing this and will get back shortly. Thank you

@Oury-MSFT I've resolved the issue.  I logged a new issue with the resolution (sorry I should have kept this thread).  Let me know if the documentation can be updated.

@tbecks Could you please point me to the doc where it says ""Currently pglogical replication and administration requires superuser privileges. ....". I was not able to find in this doc.

@Oury-MSFT its the link on step 1.b. pglogical.  If you look at that document under limitaitons, you will see "Superuser is required"
Document link is this one: https://github.com/2ndQuadrant/pglogical#limitations-and-restrictions

@Oury-MSFT I've resolved the issue. I logged a new issue with the resolution (sorry I should have kept this thread). Let me know if the documentation can be updated.

@tbecks Is it possible for you to share how you resolved this please?  I have the same issue.  Thank you, J

@jaslend You need to run the following command on the master server to grant replication privileges to the user account:
ALTER ROLE  replication;

👍

As the issue is resolved closing the PR

#please-close


Re-export types to avoid typescript errors

When used library, typescript complain about types.

Published as 3.8.4, thanks @maherma-adg

Published as 3.8.4, thanks @maherma-adg


dashboard/app: auto-dup some bugs

For context see the mailing list discussion:
https://groups.google.com/g/syzkaller/c/ZUHIOdRurJc/m/rAkts7uUAQAJ
Short version: lots of races are reported under multiple titles (UAF read in foo, UAF write in foo, GPF in foo). Changing titles now will produce lots of churn.
Dan proposed to add a note to bug reports that that other bug may be a dup of this one.
But if we have this notion of "main title" and "bug domain title for dup detection" (for all of bugs mentioned above we would have "bad-access in foo" here and would be able to connect them), then we could also auto-dup these bugs. Is it a good idea? Basically, the first one reported becomes the canonical bug and the subsequently reported bugs are auto-duped. As is there is a problem with reproducers, a newly found reproducer for a dup won't be reported to the canonical bug, so nobody will know that there is a repro available now, and say patch testing/fix bisection won't work. So this would require figuring out story with repros.
One thing to note is that while the dups won't be reported at all, it's still possible to take HASH from dashboard and send e.g. undup command to syzbot.
Another thing to keep in mind is that this needs to work across reporting stages: the dup bug needs to be auto-promoted to the canonical bug reporting stage. This needs more thought.
So just saying "here are potential dups" is easier...

This may be very helpful for KCSAN reports because we have lots of clusters with 5-8 bugs, which really should be 1. This may be able to handle "triangles" of races "A <-> B <-> C <-> A".
KCSAN: data-race in __add_to_page_cache_locked / ext4_writepages			33	5d20h	181d
KCSAN: data-race in __add_to_page_cache_locked / file_write_and_wait_range			11	7d09h	156d
KCSAN: data-race in __add_to_page_cache_locked / filemap_write_and_wait_range			41	22h27m	180d
KCSAN: data-race in __add_to_page_cache_locked / invalidate_inode_pages2_range (2)			21	3h50m	142d
KCSAN: data-race in __add_to_page_cache_locked / iomap_dio_complete			1	33d	33d
KCSAN: data-race in __add_to_page_cache_locked / kill_bdev			3	33d	86d
KCSAN: data-race in __add_to_page_cache_locked / nr_blockdev_pages			12	38d	132d
KCSAN: data-race in __add_to_page_cache_locked / truncate_inode_pages_range			3	55d	130d

KCSAN: data-race in __delete_from_page_cache / ext4_writepages			8	1d01h	105d
KCSAN: data-race in __delete_from_page_cache / file_write_and_wait_range			6	23d	59d
KCSAN: data-race in __delete_from_page_cache / invalidate_inode_pages2_range			9	60d	98d
KCSAN: data-race in __delete_from_page_cache / nr_blockdev_pages			5	13d	125d
KCSAN: data-race in __delete_from_page_cache / page_mapping			15	4d18h	143d

KCSAN: data-race in do_nanosleep / do_task_stat (2)			3	63d	144d
KCSAN: data-race in do_nanosleep / get_task_mm (2)			10	45d	143d
KCSAN: data-race in do_nanosleep / prepare_signal			9	25d	154d
KCSAN: data-race in do_nanosleep / proc_task_name			6	45d	86d
KCSAN: data-race in do_nanosleep / task_dump_owner (2)			10	8d14h	137d
KCSAN: data-race in do_nanosleep / task_set_jobctl_pending			1	62d	62d
KCSAN: data-race in do_nanosleep / watchdog

@elver

Good point. I think the simplest thing to do here is to post-process the titles and just strip '/*', but the problem with that is that it'd be harder to spot interesting bugs just from the title.
It might be nicer to consolidate all the races under one title after at least 2 have been observed, and the title could go from "KCSAN: data-race in foo / bar" to "KCSAN: data-race in foo / <2>". This will then still allow spotting bad races with lots of other functions easily. The internal bug-handling might be a little more complicated though, but I imagine there is an API to change title of a bug and mark duplicates.

but I imagine there is an API to change title of a bug.

No. And it's quite problematic. Bug titles are effectively bug IDs. That would be a bad design for computer program manipulation only, but these are also used in email subjects (that are already mailed, we can't really go back and change subjects in everybody's mail clients who already received this, and Gmail does use subjects for grouping) and in e.g. #syz dup: bug-title commands (which somebody may be typing concurrently with us changing the title).
The assumption that titles don't change is pretty fundamental in the system currently.

This feature may also be very useful for migration of bug titles to a better form.
Some bug titles are extracted poorly and we periodically want to improve them, however, it's problematic if we have lots of existing bugs with the old title (syzbot will produce lots of duplicate bugs). With this feature we could change the title, but auto-dup old and new title. This will provide a very nice capability.
One such bug is "kernel BUG at file:line" which we need to migrate to "kernel BUG in func". This would allow to apply standard skipping of common functions that we use everywhere. See #2350

For KMSAN we could auto-dup reports with the same origin. In some cases the same uninit origin pops up in different places. E.g. there is a number that originated in batadv_iv_send_outstanding_bat_ogm_packet:
https://syzkaller.appspot.com/bug?extid=c16d7137565d0bc150b7
https://syzkaller.appspot.com/bug?id=41d7354b65c5d74d0ef391847775a4d125b66125
Or maybe it's a bad idea, because lots of bugs have a common source, but it's indicative of the bug, e.g. all bugs in netlink message parsing originate in netlink_sendmsg.

For KMSAN we could auto-dup reports with the same origin. In some cases the same uninit origin pops up in different places. E.g. there is a number that originated in batadv_iv_send_outstanding_bat_ogm_packet:
https://syzkaller.appspot.com/bug?extid=c16d7137565d0bc150b7
https://syzkaller.appspot.com/bug?id=41d7354b65c5d74d0ef391847775a4d125b66125
Or maybe it's a bad idea, because lots of bugs have a common source, but it's indicative of the bug, e.g. all bugs in netlink message parsing originate in netlink_sendmsg.

Thinking of the design and implementation, there seems to be a number of options with different implications for user interactions and implementation. Some assorted points:

duping can happen before we reported the bug for the first time (no report yet)
or dupping can happen when we already reported the bug
the latter can happen if the set of alternative titles changes over time, this can happen for old bugs (we don't have any alt titles), or due to different kernel crashes (extracted different titles), or due to kernel changes over time (now the report looks differently), or due to changes in our alt title extraction logic
should users be notified about auto-duping and alternative crashes, or it should be done silently?
should users be able to undup these auto-duped bugs? how?
if users can see and undup these bugs, then we should be careful about auto-duping them again (don't override user's decision)
we may also need to be careful with auto-duping bugs that have patch testing requests or fixing patch
we need to carefully choose the direction of duping (which one is the canonical bug), intuitively an older bug should be canonical, but what if a newer bug has reproducer, patch testing, user activity?
there are 2 subtly different cases for duping: (1) merging 2 bugs that we currently report as different (e.g. UAF read vs UAF write in the same function), (2) renaming a bug to a different title (and leaving the old title as alternative); if for (1) it can make sense to notify users and undup, for (2) it does not make sense and notifications will only annoy users with our internal churn
if we have lots of duplicates, we may need way better support for the cases when dup has a repro/bisection or should be auto-closed, etc; it may require lots of additional code and it's even not clear how these things should be handled and reported
generally there is a question of user transparency and clarity: what happens and why; for example, if we report bisection results on a bug for a seemingly different crash; or what if auto-duped bugs cause/fix bisected to different commits (which may happen before or after they were auto-duped)
there is whole lot of questions regarding auto-duping across different reporting stages:

auto-duping can happen in stage 1, then we upstream these and it may need to be explained in the report in stage 2
canonical bug can be in next or even in previous stage (see above for choosing canonical bug), what should happen with these bugs?
we may identify bug in stage 1 as auto-dup of a bug in stage 2, which was manually marked as a dup of a bug in stage 3

Looking at this list, it does not seem to be feasible to handle this in all generality. I think we need to restrict the scope of what's implemented/supported.
One possible simplification is to give up on auto-duping when bugs are in different/conflicting reporting stages. Namely, if we don't yet reported a bug, we can freely promote it to required reporting and auto-dup there as necessary. Otherwise, we auto-dup only when a bug is promoted to the suitable reporting by other means. Otherwise (if bugs are in conflicting stages), we do nothing. This avoids some of the problems related to different reporting stages, but this still leaves lots of questions related to duplicates.
Another possible radical simplification is to only apply auto-duping when we first report a bug (won't work for already reported bugs) and merge crashes together in the same bug rather than creating a real duplicate bug. This significantly limits the scope but as far as I see it avoid all mentioned problems/questions (we just have 1 bug and everything works as it is now). It implies it's not possible to undup/override this auto-duping. However, if we assume low rate of false auto-duping, the false dup will pop up as new bug once the canonical bug is fixed. So it's not different from the current false dups that we have (exactly the same title now for different root causes).
This last option if what I am leaning towards now. I've spent hours thinking about this and drawing diagrams, and I am not getting anywhere for more complex/flexible schemes.

Thinking of the design and implementation, there seems to be a number of options with different implications for user interactions and implementation. Some assorted points:

duping can happen before we reported the bug for the first time (no report yet)
or dupping can happen when we already reported the bug
the latter can happen if the set of alternative titles changes over time, this can happen for old bugs (we don't have any alt titles), or due to different kernel crashes (extracted different titles), or due to kernel changes over time (now the report looks differently), or due to changes in our alt title extraction logic
should users be notified about auto-duping and alternative crashes, or it should be done silently?
should users be able to undup these auto-duped bugs? how?
if users can see and undup these bugs, then we should be careful about auto-duping them again (don't override user's decision)
we may also need to be careful with auto-duping bugs that have patch testing requests or fixing patch
we need to carefully choose the direction of duping (which one is the canonical bug), intuitively an older bug should be canonical, but what if a newer bug has reproducer, patch testing, user activity?
there are 2 subtly different cases for duping: (1) merging 2 bugs that we currently report as different (e.g. UAF read vs UAF write in the same function), (2) renaming a bug to a different title (and leaving the old title as alternative); if for (1) it can make sense to notify users and undup, for (2) it does not make sense and notifications will only annoy users with our internal churn
if we have lots of duplicates, we may need way better support for the cases when dup has a repro/bisection or should be auto-closed, etc; it may require lots of additional code and it's even not clear how these things should be handled and reported
generally there is a question of user transparency and clarity: what happens and why; for example, if we report bisection results on a bug for a seemingly different crash; or what if auto-duped bugs cause/fix bisected to different commits (which may happen before or after they were auto-duped)
there is whole lot of questions regarding auto-duping across different reporting stages:

auto-duping can happen in stage 1, then we upstream these and it may need to be explained in the report in stage 2
canonical bug can be in next or even in previous stage (see above for choosing canonical bug), what should happen with these bugs?
we may identify bug in stage 1 as auto-dup of a bug in stage 2, which was manually marked as a dup of a bug in stage 3

Looking at this list, it does not seem to be feasible to handle this in all generality. I think we need to restrict the scope of what's implemented/supported.
One possible simplification is to give up on auto-duping when bugs are in different/conflicting reporting stages. Namely, if we don't yet reported a bug, we can freely promote it to required reporting and auto-dup there as necessary. Otherwise, we auto-dup only when a bug is promoted to the suitable reporting by other means. Otherwise (if bugs are in conflicting stages), we do nothing. This avoids some of the problems related to different reporting stages, but this still leaves lots of questions related to duplicates.
Another possible radical simplification is to only apply auto-duping when we first report a bug (won't work for already reported bugs) and merge crashes together in the same bug rather than creating a real duplicate bug. This significantly limits the scope but as far as I see it avoid all mentioned problems/questions (we just have 1 bug and everything works as it is now). It implies it's not possible to undup/override this auto-duping. However, if we assume low rate of false auto-duping, the false dup will pop up as new bug once the canonical bug is fixed. So it's not different from the current false dups that we have (exactly the same title now for different root causes).
This last option if what I am leaning towards now. I've spent hours thinking about this and drawing diagrams, and I am not getting anywhere for more complex/flexible schemes.

I implemented the mechanism and main policies. I think we can consider this as fixed.


Potential database connections leaks from pool with Sidekiq.transactional_push!

Please check these issues:

https://github.com/Envek/after_commit_everywhere/issues/20
https://github.com/mperham/sidekiq/issues/5385

Probably, would be better to adjust sidekiq-scheduler for pushing jobs within a Rails Executor.

Interesting! I'll take a look into it @Galathius once I have some free time, thanks for the report!

Hey @Galathius, I don't think sidekiq-scheduler might be causing this leak because it just pushes the jobs to Redis, who definitely runs the Job is Sidekiq which runs it within the Executor.
I see that https://github.com/Envek/after_commit_everywhere/issues/20 had some updates after this issue was created, do you still see connections being leaked?

Anyway I'll be working to enqueue the jobs within a Executor when it is running on a Rails app

Hi! Now, with the latest fix for after_commit_everywhere gem, connections are not leaking anymore.

I will close this for now, but if someone else faces this again, please open an issue and we can take a look


Adds vscode tasks and removes them from git ignore

Adds VSC Tasks for compiling a repo, and running the server and client, via the ctrl. + shift + B shortcut for build tasks in VSC.
Compiling and running the server use an input, whose default has been left blank, but for a repository contained with in the Opendream repo, the input could look like this ./Citadel-Station-13-RP/citadel the citadel at the end being the name of the .dme and later the .json file, with the ending/extension being added by the command

This does make for a much nicer workflow, than what I made
https://github.com/OpenDreamProject/OpenDream/wiki/Debugger


Fix dead link to 'Hosts' page

Assuming: /pages/hosting/hosts was the intended target.
Notice: Diff also handles two minor formatting issues present in the file.

I wasn't sure if changing the other (not dead) link (for sake of consistency) was going to be welcomed.
Thank you for everything @rradczewski! ;)

Always a pleasure @dcarral 👍 😍


ArduCAM Mini 2MP picture out of focus

Hi, I have an ArduCAM Mini 2MP and I first set it up on an Arduino Uno, and using the ArduCAM_v1.0 host application I could take Single Shoot and Continuous Shoot no problem, and the picture was in focus and good.
I tried to setup using the "ESP8266 ESP-12E WIFI Wireless Dev Board for Arduino IDE UNO WeMos D1" board as I want the WiFi and websocket functions.  Got this working as well but the pictured is blurred and out of focus.
I change the Mini 2MP back to the Uno board and this is now also out of focus.
Have tried different patch cables between the board and camera in case of a broken wire but still out of focus.
Any ideas what has happened?  Is seems to be an issue with the camera?

@gregeverett,
It is common issue that when you moving the camera and touched the lens accidently, then the lens is out of focus.
In order to refocus the lens, using the ArduCAM_v1.0 host application and switching to continuous shoot mode, rotate the lens back and forth to focus at the object.

Hi Lee, this has sorted it out.  I did not realise there was a manual focus on the lense.  Thanks!
I have also ordered your ESP8266 ESP-12E UNO Board for ArduCAM Mini Camera compatible Arduino UNO R3 board for further testing.  thanks again, Greg


Running ord wallet inscribe FILE is abnormal

thread 'main' panicked at 'assertion failed: order <= self.get_max_order()', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\redb-0.13.0\src\tree_store\page_store\buddy_allocator.rs:367:9 note: run with RUST_BACKTRACE=1environment variable to display a backtrace thread 'main' panicked at 'calledResult::unwrap()on anErr value: PoisonError { .. }', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\redb-0.13.0\src\tree_store\page_store\page_manager.rs:1420:43 stack backtrace:    0:     0x7ff6f50e0a52 - <unknown>    1:     0x7ff6f51047fb - <unknown>    2:     0x7ff6f50d82ea - <unknown>    3:     0x7ff6f50e079b - <unknown>    4:     0x7ff6f50e33a9 - <unknown>    5:     0x7ff6f50e302b - <unknown>    6:     0x7ff6f50e3c41 - <unknown>    7:     0x7ff6f50e39ce - <unknown>    8:     0x7ff6f50e174f - <unknown>    9:     0x7ff6f50e3680 - <unknown>   10:     0x7ff6f514b8a5 - <unknown>   11:     0x7ff6f514bda6 - <unknown>   12:     0x7ff6f4f17d2c - <unknown>   13:     0x7ff6f4f26b10 - <unknown>   14:     0x7ff6f4f2856e - <unknown>   15:     0x7ffa0ecc1030 - <unknown>   16:     0x7ffa0ecc4ede - is_exception_typeof   17:     0x7ffa0eccf3d0 - _C_specific_handler   18:     0x7ffa0ecc414c - is_exception_typeof   19:     0x7ffa0eccfd11 - _CxxFrameHandler3   20:     0x7ffa28fc8b9f - _chkstk   21:     0x7ffa28f58b63 - RtlUnwindEx   22:     0x7ffa0eccf89e - _C_specific_handler   23:     0x7ffa0ecc2e05 - is_exception_typeof   24:     0x7ffa0ecc3224 - is_exception_typeof   25:     0x7ffa0ecc4248 - is_exception_typeof   26:     0x7ffa0eccfd11 - _CxxFrameHandler3   27:     0x7ffa28fc8b1f - _chkstk   28:     0x7ffa28f55b9a - RtlRestoreContext   29:     0x7ffa28f52e63 - RtlRaiseException   30:     0x7ffa266e40ac - RaiseException   31:     0x7ffa0ecc66c0 - CxxThrowException   32:     0x7ff6f50f3858 - <unknown>   33:     0x7ff6f50e3eab - <unknown>   34:     0x7ff6f50e3c97 - <unknown>   35:     0x7ff6f50e398b - <unknown>   36:     0x7ff6f50e174f - <unknown>   37:     0x7ff6f50e3680 - <unknown>   38:     0x7ff6f514b8a5 - <unknown>   39:     0x7ff6f514b99c - <unknown>   40:     0x7ff6f4f1cb7e - <unknown>   41:     0x7ff6f4f1ca93 - <unknown>   42:     0x7ff6f4f1ca93 - <unknown>   43:     0x7ff6f4f1ca93 - <unknown>   44:     0x7ff6f4f1ca93 - <unknown>   45:     0x7ff6f4f1ca93 - <unknown>   46:     0x7ff6f4f1ca93 - <unknown>   47:     0x7ff6f4f1ca93 - <unknown>   48:     0x7ff6f4f1ca93 - <unknown>   49:     0x7ff6f4f1ca93 - <unknown>   50:     0x7ff6f4f1ca93 - <unknown>   51:     0x7ff6f4f1ca93 - <unknown>   52:     0x7ff6f4f1ca93 - <unknown>   53:     0x7ff6f4f1ca93 - <unknown>   54:     0x7ff6f4f1ca93 - <unknown>   55:     0x7ff6f4f1ca93 - <unknown>   56:     0x7ff6f4f1ca93 - <unknown>   57:     0x7ff6f4f1ca93 - <unknown>   58:     0x7ff6f4f1ca93 - <unknown>   59:     0x7ff6f4f1ca93 - <unknown>   60:     0x7ff6f4f1ca93 - <unknown>   61:     0x7ff6f4f1ca93 - <unknown>   62:     0x7ff6f4f126b9 - <unknown>   63:     0x7ff6f4f27b3d - <unknown>   64:     0x7ff6f4b34e0c - <unknown>   65:     0x7ff6f4b91876 - <unknown>   66:     0x7ff6f4aeb4e4 - <unknown>   67:     0x7ff6f4c3b198 - <unknown>   68:     0x7ff6f4ca92da - <unknown>   69:     0x7ff6f494715b - <unknown>   70:     0x7ff6f4901036 - <unknown>   71:     0x7ff6f490100c - <unknown>   72:     0x7ff6f50d051e - <unknown>   73:     0x7ff6f490107c - <unknown>   74:     0x7ff6f512a084 - <unknown>   75:     0x7ffa273455a0 - BaseThreadInitThunk   76:     0x7ffa28f2485b - RtlUserThreadStart thread panicked while panicking. aborting.

Second this issue.  Crashed my computer and now I can't run ord 😢.

Second this issue. Just got this error this morning, however, I ran wallet balance and this got thrown, not inscribe.  Crashed my computer and now I can't run ord 😢.

I solved it. need to delete the index file to rebuild the index, but it is really big, about 32GB. You can use the version before ord, and the index file will be much smaller.

Nevermind ... sigh 😞

but once a lock is poisoned then all future acquisitions will return this error.

For reference, I'm running ord 0.4.2 and I had to simply rename the index.redb file and rerun ord index to start from the beginning. Could not find a solution to the original PoisonError.


Tracking issue for handling OCI version 1.0.0-rc2

Handle any updates required to support OCI runtime specification 1.0.0-rc2:

https://github.com/opencontainers/runtime-spec/releases/tag/v1.0.0-rc2

sorry - raised in error :)


[ALLUXIO-3040] Shade runtime client jar: no profiles are required

https://alluxio.atlassian.net/browse/ALLUXIO-3040
Tested with Hadoop and Spark

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/17341/
Test PASSed.

Merged build finished. Test PASSed.

@apc999 Have you done any validation for the shaded jar? I'm not sure if the logger will still work correctly after shading.

@calvinjia removed log4j and tested with Spark

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/17369/
Test PASSed.

@apc999 Do you want to modify the script and docs in this PR?

@calvinjia will do it in a separate PR


ccnet: 6.1.7 -> 6.1.8

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/ccnet/versions.
These checks were done:

built on NixOS
ran ‘/nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8/bin/ccnet -h’ got 0 exit code
ran ‘/nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8/bin/ccnet --help’ got 0 exit code
found 6.1.8 with grep in /nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8
directory tree listing: https://gist.github.com/275cfa6377f77e502dcc0309bb683687
du listing: https://gist.github.com/f2f22837494355a9bf385b8432a4b210

meta.description for ccnet is: '"A framework for writing networked applications in C"'.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: ccnet
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: ccnet
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8
shrinking /nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8/lib/libccnet.so.0.0.0
shrinking /nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8/bin/ccnet
shrinking /nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8/bin/ccnet-init
strip is /nix/store/j75dgadrff2d1fyc4fczmcgqkid2imdx-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8/lib  /nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8/bin
patching script interpreter paths in /nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8
checking for references to /build in /nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8...
/nix/store/k21v52qac99ppn2ba80ywki05cv6m65r-ccnet-6.1.8

Success on aarch64-linux (full log)
Attempted: ccnet
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/m6kb0q6wzq4sdsr09m3b1wnr73wnsx76-ccnet-6.1.8
shrinking /nix/store/m6kb0q6wzq4sdsr09m3b1wnr73wnsx76-ccnet-6.1.8/bin/ccnet-init
shrinking /nix/store/m6kb0q6wzq4sdsr09m3b1wnr73wnsx76-ccnet-6.1.8/bin/ccnet
shrinking /nix/store/m6kb0q6wzq4sdsr09m3b1wnr73wnsx76-ccnet-6.1.8/lib/libccnet.so.0.0.0
strip is /nix/store/gp7fylxwn18b7pl2c18ks89hsiaxyfvf-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/m6kb0q6wzq4sdsr09m3b1wnr73wnsx76-ccnet-6.1.8/lib  /nix/store/m6kb0q6wzq4sdsr09m3b1wnr73wnsx76-ccnet-6.1.8/bin
patching script interpreter paths in /nix/store/m6kb0q6wzq4sdsr09m3b1wnr73wnsx76-ccnet-6.1.8
checking for references to /build in /nix/store/m6kb0q6wzq4sdsr09m3b1wnr73wnsx76-ccnet-6.1.8...
/nix/store/m6kb0q6wzq4sdsr09m3b1wnr73wnsx76-ccnet-6.1.8


Update README file, add a brief about the project. - For OSDW 2017

Update README file, add a brief about the project.

This issue was moved to kashifzaidi1/Messiah-Web#11


✨(lib-video) iframe code to copy to clipboard

Purpose
✨#2106
Proposal
When the video is_public is toggle on, after the public link, we added a box with the iframe code beeing easily copy/paste. The iframe contains all the permissions needed to display the video correctly.
The permissions are different depending on the type of the video, if it is a webinar or just a vod (microphone, camera...).
Marsha - iframe.webm

I am not sure if I should add a height to the iframe, 100% or something. Do you have an example of a place where this iframe code would be paste?

No I don't really have an example. The iframe can be used in lot of places.


Short solution needed: "Using if else in Lua" (nginx-lua)

Please help us write most modern and shortest code solution for this issue:
Using if else in Lua (technology: nginx-lua)
Fast way
Just write the code solution in the comments.
Prefered way

Create pull request with a new code file inside inbox folder.
Don't forget to use comments to make solution explained.
Link to this issue in comments of pull request.

Using if..else


PR for folder upload #17

I calculated the time it takes to get file and then calculate the hash. It took 2-3 times more than if I calculate the hash on the board itself. This implementation consumes less bandwidth and takes less time. Also exposes sha1sum command to the user, if they ever want it.
Also, happy Software Freedom Day 2017. Good wishes from İstanbul Technical University GNU Student Club.

This is super cool, thanks for sending!  I'm going to close it for the main ampy repo here though because I don't want to make an assumption that every board has the uhashlib module.  Like you noticed it's different on ESP32, and on SAMD21 and other smaller ports it's not even available.  For now let's stick with the current more universal (but slower) copy without hash computations.  Thanks!


Remove setup.py hacks

This should address the failure to install which seems to still
appears from time to time even with our pyproject.toml workaround.
Fixes: #2350

The hacks are broken and I do not have the energy to fix it (if even possible). AFAIK is far more important to assure that molecule installs successfully on all supported systems.
I will add installation tests to prevent regressions on packaging. I already did that on pytest-molecule where package installation is tested on multiple systems. Sadly this takes time because it needs to build containers with system deps for these systems.

I'm not asking you to setup a future proof test suite just be clearer on the changes that are being made. I know we're low on capacity but it would be good to have some opinions from packaging people on this (that should be enough).


All examples show "PCD_Authenticate() failed: Timeout in communication"

Just grabbed out my old RFID-RC522 boards and hooked one up to a Arduino Nano (also tried Uno).
With every example I get communication problems, meaning timeouts.
Sometimes the serial output doesn't stop for several seconds even if I remove the newly unpacked MiFare card.
Authenticating again using key B...
MFRC522 Software Version: 0x92 = v2.0
Scan PICC to see UID, type, and data blocks...
Authenticating using key A...
PCD_Authenticate() failed: Timeout in communication.
Authenticating using key A...
PCD_Authenticate() failed: Timeout in communication.
With the smaller blue, round tags (also fresh unpacked) I get:
Authenticating using key A...
Current data in sector:
0      3   00 00 00 00  00 00 78 77  88 C1 00 00  00 00 00 00  [ 0 1 1 ]
2   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 1 0 0 ]
1   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 1 0 0 ]
0   DD D8 03 D4  D2 08 04 00  62 63 64 65  66 67 68 69  [ 1 0 0 ]
Authenticating using key A...
Current data in sector:
1      7   00 00 00 00  00 00 7F 07  88 40 00 00  00 00 00 00  [ 0 1 1 ]
6  MIFARE_Read() failed: Timeout in communication.
5  MIFARE_Read() failed: Timeout in communication.
4  MIFARE_Read() failed: Timeout in communication.
Authenticating using key A...
PCD_Authenticate() failed: Timeout in communication.
Authenticating using key A...
PCD_Authenticate() failed: Timeout in communication.
Authenticating using key A...
PCD_Authenticate() failed: Timeout in communication.

For me this is still the issue, someone provide a fix!


(new feature request) Snippets or random value substitution

I've never submitted a request on Github before, apologies if I'm doing it wrong or in the wrong place.  (Or if it exists and I'm just missing it, please educate me and I'll be forever grateful.)
I am looking for either Snippet support in Flashpost or support for local random variables as a new feature.
We recently were told at work "get off Postman immediately and switch to VS Code + Flashpost" On Postman, I was able to used some of the random values https://www.geeksforgeeks.org/dynamic-variable-guid-inside-pre-request-in-postman/ for submitting test data in my API calls.
I haven't discovered how to do this in Flashpost.  I asked on Stack Exchange thinking I was just doing it wrong and the responses so far suggest it's not possible but that I should submit a feature request.

Hi,
If you want to use variables like for example {{serverName}} open the "Environment" tab and add a Variable Named "serverName" with a Value inside Global or create your own environment and add to it.

Hi @tvjames2007 will add this feature.

Hi @tvjames2007 I have added this feature now. For a complete list please see https://github.com/subasraj/flashpost-support/blob/main/random-variables.md


When Connecting to another akka using TCP it returns exception can not bind to the port

When connecting to another akka using tcp it returns exception can not bind to the port

How is that related to this project?


Reduce size of Switch component

The Switch component currently dominates most UIs I've used it in. It looks too fat and steals the focus.
We should make it a bit smaller.

Fixed in v0.6.5


Fix #126: Replacing hash path in IE served via file protocol

Fixes the issue discussed in #126, where the initial replaceHashPath call replaces the current location with a bad location, when the page is served via the the file protocol in IE 11.
The behaviour should be the same as before for other cases.

Why does this pass CI while #209 did not?

Pretty sure it's because of 2fe8fa04aba27e2e21272859bd5083f60601f789 . As I said in this comment, a base tag causes this to fail by affecting the resolution of #foo. For example, on a page with the url / and a base tag set to /bar, #foo would resolve to /bar#foo instead of /#foo, causing a page reload.

The main drawback I can think of are use cases like reactjs/react-router/issues/3241 where base tag is intended to affect the URLs of assets. One can work around that with useBasename, but that's not possible here since hash history works differently.
I think ideally we'd want hash history to ignore the base url in order to never leave the page, i.e. something like a cross-browser new URL('#' + path, document.URL).href.
How about
  const i = window.location.href.indexOf('#')

  window.location.replace(
    window.location.href.slice(0, i >= 0 ? i : 0) + '#' + path
  )

Setting basename from base href is gone in 3.x, no?

Yes, I'm referring to cases where people want to use base tag independent of history and routing like https://github.com/reactjs/react-router/issues/3241 .
With this PR, you can't use <base href> at all in combination with hash history.

Ah, got it. Probably we should add those test cases back.

Thanks for the discussion here, guys. @lucaas What do you think of @taurose' idea in https://github.com/mjackson/history/pull/297#issuecomment-221715665 ?

@mjackson, @taurose Good catch, I've changed to your approach. I've verified that new code works for my use case and don't see any other issues with it.
Are you able to run and add back the test cases you discussed?

Thanks, @lucaas :D I merged manually and resolved conflicts.


docs: add DDS setting to additional-settings-for-developpers

Signed-off-by: Takayuki AKAMINE<EMAIL_ADDRESS>Description
I would like to add DDS settings for beginners to execute Autoware as they expect. They tend to execute Autoware without taking care of DDS settings. It causes performance problem which cannot seen on Rviz.
Some of beginners reported that sensing pre-processing runs at less than 10 Hz, it is not expected (https://github.com/tier4/CARET_analyze/issues/155#issuecomment-1275625569). One of them gave me a figure which shows  this unexpected behavior. It is a time-series graph plotting frequency of callback execution in /sensing/lidar/top/velodyne_convert_node. The frequency decreased time by time and below 10 Hz.

Tackling this issue with him, I found that default receive buffer size is so small that Autoware cannot receive large data like camera image or LiDAR point cloud. Most of beginners must not be concerned with it.
I think that DDS setting should be more common topic for Autoware users, so this motivated me to issue the PR.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The Reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@kenji-miyake
I assigned you as a reviewer of this PR because this PR will updates the page you created. If you think that another reviewer is appropriate, please assign him or her.

There are related document here. I wonder it can be merged or refer each other.

There are related document here. I wonder it can be merged or refer each other.

My proposal is to write general settings on this page, and link to the troubleshooting page for issues that many people will encounter.

@kaancolak  Thank you for reviewing.


controllers/k8stools: fix grow sts pvcs behavior

follow up https://github.com/VictoriaMetrics/operator/pull/760

check if pvcs need to be reize as long as there is pvc since error could happen when grow pvcs and sts was updated already
not return error to caller if there is no point to retry when growPVC, like sc is unexpandable
If sc is unexpandable or vm opearator is under single namespace mode, pvc must be expand with user's intervention.
Breaking reconcile and requeue under those circumstance will have no other effects except cause more pressure on cluster[list/get request and will perform sts rolling update once again].

Thanks!


Go indexer: Fix an incorrect marked source instance. [phab:D1686]

Created by fromberger at 2017-05-31 21:10:48:
Left over from a previous iteration, the root of the marked source was carrying
a post-child token to denote the separator between the context and its ident.
Now that the context deals with its own separators, this is unnecessary and in
fact wrong: When the context is injected, it results in the extra separator I
had thought was spurious. (It wasn't).

Test restored.
Fix up code_interface_test.
Fix up code_method_test.

zarko accepted this revision at 2017-05-31 21:53:14

fromberger closed via commit 62c54910f2bafd1d62e7b540f186d0fcee34410b at 2017-05-31 21:57:13


squid:UselessParenthesesCheck - Useless parentheses around expressions should be removed to prevent any misunderstanding

This pull request is focused on resolving occurrences of Sonar rule
squid:UselessParenthesesCheck - Useless parentheses around expressions should be removed to prevent any misunderstanding.
This pull request removes technical debt of 7 minutes.
You can find more information about the issue here:
https://dev.eclipse.org/sonar/rules/show/squid:UselessParenthesesCheck
Please let me know if you have any questions.
George Kankava

Automated message from Dropbox CLA bot
@georgekankava, it looks like you've already signed the Dropbox CLA. Thanks!

lgtm. this has been merged.


Failed to load local raster

I am trying to load a tif file using below code.
    var myRaster_left = new Raster(@"C:\2015\11.tif");
    RasterLayer newRasterLayer_left = new Esri.ArcGISRuntime.Mapping.RasterLayer(myRaster_left);
     MyMapViewLeft.Map.OperationalLayers.Add(newRasterLayer_left);// adding raster

I get the error "An exception of type 'System.NullReferenceException' occurred in MilitaryApp.exe but was not handled in user code"
The file and path are absolutely fine and I am able to view in ArcGIS Desktop.However, runtime is unable to load the raster.Debugging shows variable  myRaster_left is set to null.

@ddurgaprasad
Please post any functional or SDK issues you run into in the beta forum: http://links.esri.com/runtime-dotnet-sdk-forum
Thanks


Retry getHistory request from passive cluster in case of replication lag

It's been sometime, is this ready for review?

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

Pull Request Test Coverage Report for Build 63e468b6-20fc-4d46-97d1-555fe928b397

13 of 14 (92.86%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 74.695%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/internal_workflow_client.go
13
14
92.86%

Totals

Change from base Build eed1fea5-da2c-4092-b2a4-8c67dc927050:
0.03%

Covered Lines:
9059

Relevant Lines:
12128

💛  - Coveralls

@vancexu ready for review


When I am using this libiary with the Immutable.js, something losing when i set the state

like this, when the onDrop(acceptedFiles, rejectedFiles) method is called I set the array of accepted to the state  that is  formed by Immutable data, but actually the accepted file data in the state only has the preview, others like size,type...is losing！
are there someone meet this problem ?

Sorry but I'm closing it since it's not really related to the library and it's not a bug. Please ask questions on StackOverflow.


Update overview.md

Rework the description of multi-active replication.

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/f579d5b5f1bcd63fdd941be77ac6f4846363d0c9/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/f579d5b5f1bcd63fdd941be77ac6f4846363d0c9/

Ok, I'll leave this to you and @sploiselle 😅

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/fb4fd1875ee1d166861af3ff4ea4168082eaaf14/


Describe -ipv4 and -ipv6 flags in Readme

I set up dynamic DNS for an IPv6 only server. Was glad to find those flags in the code. Probably better and more consistent to document them in the Readme though

Thanks for improving the documentation @Raupinger, I appreciate it 💯


Graphic for new article about Node-RED community survey

Related Issue
No response
Description
I have written a new blog posts that highlight some of the trends in the Node-RED community survey. It would be nice to have a graphic for the blog post.
Blog post is in #786

Hi @iskerrett
How about this one?

@iskerrett done!


[Stability-EmbeddingApi] Add long time navigation stability test

-Add long time navigation stability test of webview & xwalkview
-Add auto running py script
Impacted tests(approved): new 0, update 2, delete 0
Unit test platform: [Android]
Unit test result summary: pass 2, fail 0, block 0

@jennycao please help to review it.

LGTM


ffmpeg nvenc does not detect the driver in wsl2 and exits

Environment
Windows build number: [run `cmd.exe /c ver`] 20279.1
Your Distribution version: [On Debian or Ubuntu run  in WSL] `Release:	18.04`
Whether the issue is on WSL 2 and/or WSL 1: [run `cat /proc/version` in WSL] Linux version 5.4.72-microsoft-standard-WSL2 (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP Wed Oct 28 23:40:43 UTC 2020
nvidia driver on windows 465.12
Cuda 10.2

Steps to reproduce
$ ffmpeg -version
ffmpeg version 3.4.8-0ubuntu0.2 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
$ ffmpeg -i video.mp4 -vf scale=iw/2:ih/2 -vcodec h264_nvenc "video_2.mp4"
Cannot load libnvidia-encode.so.1
[h264_nvenc @ 0x55e21d81f020] The minimum required Nvidia driver for nvenc is 378.13 or newer
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
[aac @ 0x55e21d81d780] Qavg: 29185.615
[aac @ 0x55e21d81d780] 2 frames left in the queue on closing
Conversion failed!

ffmpeg does not detect the driver version (well....the driver is downbelow in the windows host...) and refuses to use the hardware acceleration.

WSL logs:
Expected behavior
Detected WSL2 and somehow either detected the underlying driver or continue to work.

Actual behavior
Program exits.

Could it be associated with:
https://forums.developer.nvidia.com/t/building-ffmpeg-with-nvenc-inside-docker-container-in-wsl-2-linux-distro/155102/2
$ ls -la /usr/lib/wsl/lib/
total 82064
dr-xr-xr-x 1 root root     4096 Dec 15 15:55 .
drwxr-xr-x 4 root root     4096 Nov 10 07:29 ..
-r--r--r-- 1 root root   133088 Nov 11 18:09 libcuda.so
-r--r--r-- 1 root root   133088 Nov 11 18:09 libcuda.so.1
-r--r--r-- 1 root root   133088 Nov 11 18:09 libcuda.so.1.1
-r--r--r-- 2 root root   785480 Dec 10 13:02 libd3d12.so
-r--r--r-- 2 root root  5300896 Dec 10 13:02 libd3d12core.so
-r--r--r-- 2 root root 25263616 Dec 10 13:02 libdirectml.so
-r--r--r-- 2 root root   827632 Dec 10 13:02 libdxcore.so
-r--r--r-- 1 root root   191976 Nov 11 18:09 libnvidia-ml.so.1
-r--r--r-- 1 root root 51243080 Nov 11 18:09 libnvwgf2umx.so

Updateing the nvidia windows driver to 465.21 did not help.

Your earlier post /dupe #6357 as landing zone


Video link broken

The video at the bottom of the page has been removed from YouTube by the user.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: fe168fc3-2ed2-b3e6-ce30-cac721165ceb
Version Independent ID: 8d63fbd7-12c4-9a94-92f6-969e7eb41037
Content: Git branching guidance
Content Source: docs/git/concepts/git-branching-guidance.md
Product: devops
GitHub Login: @steved0x
Microsoft Alias: sdanie

@dalee-bis Thanks for letting us know, I'll get this fixed up.

@dalee-bis I just removed the broken video, and as soon as we have a replacement I'll add it back in. Thanks for letting us know.


Is it possible to use danger within the Xcode bots CI?

I'm not sure If I'm doing something wrong.
But my script trigger fails with the message
Could not find a CI source
Thanks.

No-one has worked on adding Xcode Bots support, I imagine you'll need to set it up like jenkins?

Thanks for the quick reply.
Probably that's should be like jenkins, I'll try to take a look on it later.

I guess that's where @czechboy0 is an expert :rocket:

It should be easy or super easy to get danger working with Xcode Server.
Super easy version:
If you're using Buildasaur, the automatically created bots for each PR already follow a scheme which contains both the repo name and the PR number. So all you need to do in the danger adapter is to read the bot name from the XCS_BOT_NAME and parse out the repo slug and the PR number. AFAIR danger takes care of the rest.
Easy version:
If you're not using Buildasaur and for some reason you manually create Bots for each PR, you would need to manually inject the environment variables in the prebuild/postbuild script with something like export REPO_SLUG=danger/danger and export PR_NUMBER=17, which you'd detect in the danger adapter. It's a stretch, tbh I think the first version using Buildasaur is just much simpler.
In both cases, you'd trigger danger from the prebuild script.

@czechboy0 amazing, I'm using Buildasaur.
I think I could do a pr to make danger support Xcode Server CI.

@Antondomashnev that'd be great!

fixed by #172


DetailedCookieMatcher generics fixed

@johanhaleby it's shameful, but it looks like I messed up generics and DetailedCookieMatcher is not really usable with matchers right now.
This change should make it better.
BTW, are there any particular issues I could help you with? I'm keen to contribute but I don't know which things are most important.

No problem, it happens :)

BTW, are there any particular issues I could help you with? I'm keen to contribute but I don't know which things are most important.

I would be extremely happy to  receive help implementing or fixing some issues. I would suggest that you just pick something that sounds interesting to you or something that you might fancy using yourself. Just ping me if you need any guidance or help.


Is it possible to use this to verify JWT without users?

Is it possible to use the JWT signature check to get the userId, but without User model and without checking if the user exists in our DB?
Thanks!

The following example demonstrates how to do an authentication without involving the UserModel. We use it to authenticate service related requests.
myapp/authentication.py
from rest_framework_jwt.authentication import JSONWebTokenAuthentication

class AuthenticatedServiceClient:
    def is_authenticated(self):
        return True

class JwtServiceOnlyAuthentication(JSONWebTokenAuthentication):
    def authenticate_credentials(self, payload):
        # Assign properties from payload to the AuthenticatedServiceClient object if necessary
        return AuthenticatedServiceClient()

myapp/settings.py
REST_FRAMEWORK = {
    'UNAUTHENTICATED_USER': None,
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'myapp.authentication.JwtServiceOnlyAuthentication',
    ),
}

request.user will then contain the AuthenticatedServiceClient object.

Hey Guys,
We have been using drf-jwt for a while now. I added some customization by to avoid concurrent logins. Now our use case requires us to use JWT with payload as secretKey and nothing to do with user model in addition to the previous running authentication mechanism. I tried to follow @Schweigi 's approach but  what was happening was when I tried to generate a token it was asking me to fill out the username and password. Btw these secretKeys are saved  in database. Disassociating UserModel from payload could open up drf-jwt for lot of other cases.
from rest_framework_jwt.serializers import *
from rest_framework_jwt.authentication import JSONWebTokenAuthentication

def jwt_payload_handler_secret_based(token):
    """
    Updated jwt payload handler to add last login unix timestamp for token/user-less in payload.
    """
    warnings.warn(
        'The following fields will be removed in the future: '
        '`email` and `user_id`. ',
        DeprecationWarning
    )

    payload = {
        'token': token,
        'exp': datetime.utcnow() + api_settings.JWT_EXPIRATION_DELTA,
        'jwt_indee_verification_id': str(token.last_login.timestamp())
    }

    # Include original issued at time for a brand new token,
    # to allow token refresh
    if api_settings.JWT_ALLOW_REFRESH:
        payload['orig_iat'] = timegm(
            datetime.utcnow().utctimetuple()
        )

    if api_settings.JWT_AUDIENCE is not None:
        payload['aud'] = api_settings.JWT_AUDIENCE

    if api_settings.JWT_ISSUER is not None:
        payload['iss'] = api_settings.JWT_ISSUER

    return payload

class ServiceOnlyJSONWebTokenSerializer(JSONWebTokenSerializer):
    """
    Serializer class used to validate a token.
    Returns a JSON Web Token that can be used to authenticate later calls.
    """

    def __init__(self, *args, **kwargs):
        """
        Dynamically add the USERNAME_FIELD to self.fields.
        """
        super(JSONWebTokenSerializer, self).__init__(*args, **kwargs)
        self.fields['tdvalue'] = serializers.IntegerField(required=False)
        self.fields['jwt_indee_service_id'] = serializers.CharField(required=True)

    def validate(self, attrs):

        credentials = {
            self.username_field: attrs.get(self.username_field),
            'password': attrs.get('password')
        }
        try:
            fycTokenObj = FycToken.objects.get(
                token_key=attrs.get('jwt_indee_service_id')
            )
        except Exception as fyctoken_fetch_error:
            msg = _(
                'Some error occured while logging in.')
            raise serializers.ValidationError(msg)

        if all(credentials.values()):

            if fycTokenObj:
                if not fycTokenObj.active:
                    msg = _('Token is disabled.')
                    raise serializers.ValidationError(msg)

                tmp_exp = api_settings.JWT_EXPIRATION_DELTA

                if attrs.get('tdvalue') is not None:
                    api_settings.JWT_EXPIRATION_DELTA = timedelta(
                        seconds=attrs.get('tdvalue'))

                # save the login time stamp
                fycTokenObj.last_login = datetime.now()
                fycTokenObj.save()

                jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
                payload = jwt_payload_handler_secret_based(fycTokenObj.token_key)

                return {
                    'token': jwt_encode_handler(payload),
                    'user': fycTokenObj
                }

            else:
                msg = _('Unable to log in with provided credentials. Pappa')
                raise serializers.ValidationError(msg)
        else:
            msg = _('Must include "jwt_indee_service_id".')
            raise serializers.ValidationError(msg)

class ServiceOnlyJSONWebTokenAuthentication(JSONWebTokenAuthentication):
    """
    Overriding the default JSONWebTokenAuthentication to accomodate tokens for apps.
    https://github.com/GetBlimp/django-rest-framework-jwt/issues/22#issuecomment-166451133
    https://www.django-rest-framework.org/api-guide/authentication/
    """

    def authenticate_credentials(self, payload):
        """
        Returns an active user that matches the payload's user id and email.
        """
        jwt_indee_service_id = jwt_get_indee_service_id_from_payload(payload)
        jwt_indee_verification_id = jwt_get_indee_ll_id_from_payload(payload)

        if not jwt_indee_service_id:
            msg = _('Invalid Token.')
            raise exceptions.AuthenticationFailed(msg)

        try:
            fycTokenObj = FycToken.objects.get(token_id = jwt_indee_service_id)
        except User.DoesNotExist:
            msg = _("Couldn't find the Token. Please reach out to<EMAIL_ADDRESS>            raise exceptions.AuthenticationFailed(msg)

        if not fycTokenObj.active:
            msg = _('Token has been disabled by the sender.')
            raise exceptions.AuthenticationFailed(msg)

        if fycTokenObj.expiry_date < timezone.now() :
            msg = _('Token has expired.')
            raise exceptions.AuthenticationFailed(msg)

        if jwt_indee_verification_id != str(fycTokenObj.last_login.timestamp()):
            msg = _('This login was overriden, concurrent logins are not allowed.')
            raise exceptions.AuthenticationFailed(msg)

        return AuthenticatedServiceClient()

In the urls.py I have
from rest_framework_jwt.views import ObtainJSONWebToken
urlpatterns += patterns('',
                        url(r'^api-token-auth/test/', ObtainJSONWebToken.as_view(
                            serializer_class=ServiceOnlyJSONWebTokenSerializer)),
)

When I try and generate the token I see this error:

Could anyone provide some pointers on this? Thanks. I also checked #349 and #145 but wasn't able to figure this out. Thanks

@Aameer You can just use PyJWT library for signing and decoding custom tokens. Alternatively, Django has built-in functionality for signing strings and tokens:
https://docs.djangoproject.com/en/2.1/topics/signing/

@Alex3917 Thanks for you comment. What I ended up doing is mentioned as under. This made sure my current system with drf-jwt is working as expected and I have this parallel system which uses secrets alone as authentication mechanism and re-uses many of the things used by drf-jwt. Would have loved to see something like this in built with drf-jwt, where we could even decouple users.
URLS
from apps.myapps.api_views import FycTokenGenrator
urlpatterns += patterns('',
                        url(r'^loginWithSecret/',
                            FycTokenGenrator.as_view(),
                            name='fyc-token'),

                        )

VIEWS
from rest_framework import permissions, status, generics

from apps.mytokenapp.models import FycToken
from apps.mytokenapp.serializers import FycTokenSerializerOpen

from apps.myapps.utils import CustomJSONWebTokenAuthentication,\
ServiceOnlyJSONWebTokenAuthentication, jwt_payload_handler_token_based,
get_encoded_jwt

class FycTokenGenrator(generics.RetrieveUpdateDestroyAPIView):
    """
    API Endpoint to get the secret from user and reply with jwt token.
    For now added same auth over it to test.
    """
    authentication_classes = (ServiceOnlyJSONWebTokenAuthentication,)
    permission_classes = (permissions.AllowAny,)
    serializer_class = FycTokenSerializerOpen

    def get_permissions(self):
        """
        Override the permissions for POST
        """
        if self.request.method == 'POST':
            self.permission_classes = (permissions.AllowAny,)
        return super(FycTokenGenrator, self).get_permissions()

    def get(self, request):
        return Response({'message': "GET method not allowed"},
                        status=status.HTTP_405_METHOD_NOT_ALLOWED)

    def post(self, request):
        try:
            token_key = request.data.get('jwt_service_id', None)
            if token_key:
                try:
                    fycTokenObj = FycToken.objects.get(
                        fyctoken_key=token_key
                    )
                except Exception as fyctoken_fetch_error:
                    msg = 'Some error occured while logging in.'
                    return Response({'message': msg},
                                    status=status.HTTP_403_FORBIDDEN)
                fycTokenObj.last_login = timezone.now()
                fycTokenObj.save()
                payload = jwt_payload_handler_token_based(fycTokenObj)
                encoded_jwt = get_encoded_jwt(payload)
                return Response(
                    {'token': encoded_jwt}, status=status.HTTP_200_OK)
            else:
                msg = 'Some error occured while logging in.'
                return Response({'message': msg},status=status.HTTP_403_FORBIDDEN)
        except Exception as post_fyc_token_generator_error:
            message = "Some error occured while logging in"
            return Response({
                "message": str(message)},
                status=status.HTTP_500_INTERNAL_SERVER_ERROR)

    def put(self, request):
        return Response({'message': "Put method not allowed"},
                        status=status.HTTP_405_METHOD_NOT_ALLOWED)

    def patch(self, request):
        return Response({'message': "Patch method not allowed"},
                        status=status.HTTP_405_METHOD_NOT_ALLOWED)

    def delete(self, request):
        return Response({'message': "Delete method not allowed"},
                        status=status.HTTP_405_METHOD_NOT_ALLOWED)

AuthMiddleWare

import jwt
from rest_framework_jwt.authentication import JSONWebTokenAuthentication

def jwt_payload_handler_token_based(tokenObj):
    """
    Updated jwt payload handler to add last login unix timestamp
    for token/user-less in payload.
    """
    warnings.warn(
        'The following fields will be removed in the future: '
        '`email` and `user_id`. ',
        DeprecationWarning
    )

    payload = {
        'jwt_service_id': tokenObj.fyctoken_key,
        'exp': datetime.utcnow() + api_settings.JWT_EXPIRATION_DELTA,
        'jwt_verification_id': str(tokenObj.last_login.timestamp())
    }

    # Include original issued at time for a brand new token,
    # to allow token refresh
    if api_settings.JWT_ALLOW_REFRESH:
        payload['orig_iat'] = timegm(
            datetime.utcnow().utctimetuple()
        )

    if api_settings.JWT_AUDIENCE is not None:
        payload['aud'] = api_settings.JWT_AUDIENCE

    if api_settings.JWT_ISSUER is not None:
        payload['iss'] = api_settings.JWT_ISSUER

    print(payload)
    return payload

def get_encoded_jwt(payload):
    encoded_jwt = jwt.encode(
        payload,
        settings.SECRET_KEY,
        algorithm='HS256'
    )
    return encoded_jwt

class AuthenticatedServiceClient(object):

    def is_authenticated(self, fycTokenObj=None):
        """
        Always return True. This is a way to tell if the token has been
        authenticated
        """
        return True

    def __init__(self,fycTokenObj=None):
        """
        This will assign a large enough id for the with secret only user/service so that it doesn't
        clash with actual Users' model. (any suggestions to improve this portion are welcome!)
        """
        total_users_supported_without_clashing_throttle = 999999999
        self.pk = total_users_supported_without_clashing_throttle + fycTokenObj.id #model id which has secrets

def jwt_get_ll_id_from_payload(payload):
    """
    Gets the last login unix time stamp from the payload
    """
    return payload.get('jwt_verification_id', None)

def jwt_get_service_id_from_payload(payload):
    """
    Gets the service id payload
    """
    return payload.get('jwt_service_id', None)

# TOKEN MIDDLE WARE
class ServiceOnlyJSONWebTokenAuthentication(JSONWebTokenAuthentication):
    """
    Overriding the default JSONWebTokenAuthentication to accomodate tokens for apps.
    https://github.com/GetBlimp/django-rest-framework-jwt/issues/22#issuecomment-166451133
    https://www.django-rest-framework.org/api-guide/authentication/
    """

    def authenticate_credentials(self, payload):
        """
        Returns an active user that matches the payload's user id and email.
        """
        jwt_service_id = jwt_get_service_id_from_payload(payload)
        jwt_verification_id = jwt_get_ll_id_from_payload(payload)

        if not jwt_service_id:
            msg = _('Invalid Token.')
            raise exceptions.AuthenticationFailed(msg)

        try:
            # from model which has the secret
            fycTokenObj = FycToken.objects.get(fyctoken_key = jwt_service_id)
        except Exception as fycTokenObjDoesNotExistError:
            msg = _("Couldn't find the Token.")
            raise exceptions.AuthenticationFailed(msg)

        if not fycTokenObj.active:
            msg = _('Token has been disabled by the sender.')
            raise exceptions.AuthenticationFailed(msg)

        if fycTokenObj.expiry_date < timezone.now() :
            msg = _('Token has expired.')
            raise exceptions.AuthenticationFailed(msg)

        if jwt_verification_id != str(fycTokenObj.last_login.timestamp()):
            msg = _('This login was overriden, concurrent logins are not allowed.')
            raise exceptions.AuthenticationFailed(msg)

        return AuthenticatedServiceClient(fycTokenObj)


Armitage website is down

www.fastandeasyhacking.com goes to red hat test page

www.fastandeasyhacking.com goes to red hat test page

Well whatever the cause of that was, Its working now.

Website is down, I also tested with isitdownrightnow.com
I need to download, help?

https://web.archive.org/web/20200813065327/http://www.fastandeasyhacking.com/download/
Thank me later 😃


Issue with adding SwitchBot meter: Outdoor Hygrometer Thermometer

I am having some issues with adding a switchbot "Thermo-Hygrometer", and hoping you all can help me out!
Sensor: SwitchBot IP65 Indoor Outdoor Hygrometer Thermometer
amazon link: https://a.co/d/9VOZyo0
SwitchBot link: https://us.switch-bot.com/products/switchbot-indoor-outdoor-thermo-hygrometer?variant=44560794812649

I am able to add the sensor to Home Assistant using the SwitchBot add-on: https://drive.google.com/file/d/1pfbvTVE9Trey5ngG6uuW4FvJw8GnbKeH/view?usp=drive_link

However, after following the instructions(https://github.com/devWaves/SwitchBot-MQTT-BLE-ESP32), I am having issues: https://drive.google.com/file/d/1Nlg9fyvSreWnqrhoBg-ZQtTUx0pQ9evb/view?usp=drive_link

Checking MQTT Explorer, the meter shows up under "homeassistant", and not under "switchbot"
Sensor values show up as "Unknown"

I tried adding the sensor as a "Bot", just to see what would happen: https://drive.google.com/file/d/1UePuTuZMshxPls3sqSwUzsE-OLbFpe20/view?usp=drive_link

MQTT Explorer shows the bot in "switchbot" topic and "homeassistant" topic.
I do see "Battery", "Linkquality", and "Mode". However, I obviously can't see "temperature" or "humidity"
Excuse my ignorance as I am new to MQTT, but how come the added sensor/device shows up under the "homeassistant" topic. I assumed it would just show up under the created "switchbot"  mqtt_main_topic

Please let me know if you need any more information, and thank you!!!
*Edit
I got different "switchbot Thermometer and Hygrometer" (https://a.co/d/18Wl9Z2), and I was able to add these with no issues.
Seems like the previous meters I got(https://a.co/d/9VOZyo0), are not implemented.

What other Switch Bot devices do you have?
Because you could try to use passive scan and see if outdoor meters works, as the way to retrieve their data is different than the one for classic meters in active mode.
The problem is, if you have I.E. bot or curtains these devices won't work anymore.
But if you can try temporarily to switch to passive scan it could help to see if the issue is the one I suggest.

I'm having the same problems with that "SwitchBot IP65 Indoor Outdoor Hygrometer Thermometer "

my settings in the SwitchBot-BLE2MQTT-ESP32.ino
/* Wifi Settings */
static const char* host = "esp32";                                  //  Unique name for ESP32. The name detected by your router and MQTT. If you are using more then 1 ESPs to control different switchbots be sure to use unique hostnames. Host is the MQTT Client name and is used in MQTT topics
static const char* ssid = "MY-WLAN";                                   //  WIFI SSID
static const char* password = "7817931Z";                           //  WIFI Password

/* MQTT Settings */
/* MQTT Client name is set to WIFI host from Wifi Settings*/
static const char* mqtt_host = "<IP_ADDRESS>";                       //  MQTT Broker server ip
static const char* mqtt_user = "mqtt-user";                         //  MQTT Broker username. If empty or NULL, no authentication will be used
static const char* mqtt_pass = "x7#S@9";                         //  MQTT Broker password
static const int mqtt_port = 1883;                                  //  MQTT Port
static const std::string mqtt_main_topic = "switchbot";             //  MQTT main topic

/* Mesh Settings */
/* Ignore if only one ESP32 is used */
.........
.....
...

/* Switchbot Meter Settings */
static std::map<std::string, std::string> allMeters = {
    { "meterone", "C9:0E:7F:17:4E:EA" }/* ,
    { "metertwo", "yY:yY:yY:yY:yY:yY" }*/
};
..........
......
...

Hi,
I can confirm the same issue in my case.
I bought three "SwitchBot IP65 Indoor Outdoor Hygrometer Thermometer" for outside space (without LCD display) and  two "SwitchBot Indoor Thermometer Hygrometer" (with LCD display). Via SwitchBot-MQTT-BLE-ESP32 integration inside Mosquitto MQTT are "normally" displayed only two inside thermometers (with LCD), other three for outside have all "unknown" values for temperature, humidity, link quality, battery. Within MQTT explorer are visible only two with LCDs.
But, all thermometers and their values are normally visible and operational with Switchbot integration via BLEProxy (separate ESP32 board). So, there should be some issue within  "SwitchBot-MQTT-BLE-ESP32" for "SwitchBot IP65 Indoor Outdoor Hygrometer Thermometer" . Thanks in advance.

Has someone tested what I suggested above?
Because it could give an idea about what is causing this issue.

@Nardol I've been really busy lately and haven't had the time to give your a suggestion a try yet. In the meantime, I did the same thing the previous poster mentioned. I set up a Bluetooth proxy with esphome and used the switchbot integration.

@bklen thanks for your reply.
If you only have thermometers, IMO the native HA integration is sufficient except if I missed something.
Most advantages of using switchbot MQTT BLE Esp32 are for devices with interactions as Bot or curtains for example.

@Nardol
I set "onlyPassiveScan = true" and compiled/uploaded to my ESP32 Wroom ("ESP32dev" with PlatformIO).
Now in HA all three outside thermometers  have visible values (humidity, temperature, link quality), except battery state is still "unknown" (also battery state is not visible with  mqtt explorer for three outside thermometers, only inside thermometers have battery data ttransferred via mqtt).
I will keep both Switchbot and SwitchBot-MQTT-BLE-ESP32 integrations for redundancy (due to possibility or eventually failure one of them with HA upgrade).
And possibly SwitchBot-MQTT-BLE-ESP32 has also faster updates values within HA (it seems so).
Thank you very much for your advice. Respect.

Oh, strange that battery information are displayed for inside thermometers.
Or it is because previous values are still retained by your MQTT broker, If I am right battery state cannot be retrieved in passive scan mode.

After the changes "static const bool onlyPassiveScan = true;" the battery status is "Unknown" !!!
static const bool onlyActiveScan = false;                    // Active scanning requires more battery from the BLE switchbot devices. If false, passive scanning is used when possible for contact/motion
static const bool onlyPassiveScan = true;                   // If this ESP32 is a mesh ESP32 or you only have motion/contact/meter sensors. Passive scanning uses less battery from BLE switchbot devices. Passive scanning provides less data then active scanning, but uses less battery
static const bool alwaysActiveScan = false;                  // No battery optimizations. If you are using the switchbot hub or app to control devices also and you want immediate state updates for bot and curtains in MQTT set to true
static const bool scanWhileCurtainIsMoving = true;           // The ESP32 will scan for defaultCurtainScanAfterControlSecs seconds after control to keep the position slider in sync with the actual position

After the changes "static const bool onlyPassiveScan = true;" the battery status is "Unknown" !!!

That is expected.
It looks like battery information is not retrieved in passive scan because not part of advertized manufacturer data, only service data provide it and these data are only retrieved in active scan.
The Python implementation also do not provide battery information in passive scan if I remember correctly.

No, although passive mode for about one week now, I still see battery status via Mqtt for both  "SwitchBot Indoor Thermometer Hygrometers" (currently 100%). For all three outside thermometers status is "Uknown", as you predicted. Details in pictures below.

https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md#outdoor-temperaturehumidity-sensor