[Android] White screen freeze when restoring from background

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Create a new flutter application flutter create .
Run the app with Android Studio or with logcat enabled. (only needed to spot the moment the app is being killed in background)
Put the app in background.
Wait for the OS to clean memory space (open other apps to speed up the process)
In Logcat, the line '---------------------------- PROCESS ENDED (21442) for package com.example.test ----------------------------' is the signal the app is in the process of being killed.
Immediately after the line appears, wake the app from background.
The app is frozen on a white screen indefinitely.

We reproduced the issue on Oppo A72, Pixel 4A and Zebra TC51.
The issue was present on Flutter version 3.7.x and is still present on 3.10.1.
Expected results
The app should restart normally.
Actual results
The app is frozen on a white screen indefinitely.
Code sample
Issue is reproductible from the sample app.
flutter create .
Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
Those are the logs on an Oppo A72.
App goes in background on line 56 and is woken up after line 68.
   2023-05-23 11:37:06.685  1778-2088  OppoThermalStats        pid-1778                             E  Error getting package info: com.example.test_freeze
    ---------------------------- PROCESS STARTED (14723) for package com.example.test_freeze ----------------------------
    2023-05-23 11:37:06.721 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  get feature:IOplusScreenModeFeature
    2023-05-23 11:37:06.721 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusScreenModeFeature
    2023-05-23 11:37:06.758  4858-4882  oiface                  pid-4858                             E  packageSwitch pkg com.example.test_freeze, enter
    2023-05-23 11:37:06.762  4858-4882  oiface                  pid-4858                             E  current package is com.example.test_freeze and pid is 14723
    2023-05-23 11:37:06.895 14723-14723 Perf                    com.example.test_freeze            I  Connecting to perf service.
    2023-05-23 11:37:06.899 14723-14723 Perf                    com.example.test_freeze            E   perftest packageName : com.example.test_freeze App is allowed to use Hide APIs
    2023-05-23 11:37:06.911 14723-14723 NetworkSecurityConfig   com.example.test_freeze            D  No Network Security Config specified, using platform default
    2023-05-23 11:37:06.911 14723-14723 NetworkSecurityConfig   com.example.test_freeze            D  No Network Security Config specified, using platform default
    2023-05-23 11:37:06.938 14723-14755 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:06.968 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusRedPacketManager
    2023-05-23 11:37:07.003 14723-14757 ResourceExtractor       com.example.test_freeze            I  Found extracted resources res_timestamp-1-1684830129596
    2023-05-23 11:37:07.089 14723-14723 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:07.089 14723-14723 AdrenoGLES-0            com.example.test_freeze            I  QUALCOMM build                   : 319c6d8, Ic907de5ed0
    Build Date                       : 09/21/20
    OpenGL ES Shader Compiler Version: EV<IP_ADDRESS>
    Local Branch                     :
    Remote Branch                    : refs/tags/AU_LINUX_ANDROID_LA.UM.9.11.R<IP_ADDRESS>.679.015
    Remote Branch                    : NONE
    Reconstruct Branch               : NOTHING
    2023-05-23 11:37:07.089 14723-14723 AdrenoGLES-0            com.example.test_freeze            I  Build Config                     : S P 10.0.5 AArch64
    2023-05-23 11:37:07.089 14723-14723 AdrenoGLES-0            com.example.test_freeze            I  Driver Path                      : /vendor/lib64/egl/libGLESv2_adreno.so
    2023-05-23 11:37:07.131 14723-14723 AdrenoGLES-0            com.example.test_freeze            I  PFP: 0x016ee190, ME: 0x00000000
    2023-05-23 11:37:07.157 14723-14761 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:07.161 14723-14761 chatty                  com.example.test_freeze            I  uid=11631(com.example.test_freeze) 1.io identical 61 lines
    2023-05-23 11:37:07.162 14723-14761 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:07.213 14723-14723 OplusInputMethodUtil    com.example.test_freeze            D  init DEBUG to false, update DEBUG_IME to false
    2023-05-23 11:37:07.246 14723-14723 ork.test_freez          com.example.test_freeze            W  Accessing hidden method Landroid/view/accessibility/AccessibilityNodeInfo;->getSourceNodeId()J (greylist,test-api, reflection, allowed)
    2023-05-23 11:37:07.247 14723-14723 ork.test_freez          com.example.test_freeze            W  Accessing hidden method Landroid/view/accessibility/AccessibilityRecord;->getSourceNodeId()J (greylist, reflection, allowed)
    2023-05-23 11:37:07.248 14723-14723 ork.test_freez          com.example.test_freeze            W  Accessing hidden field Landroid/view/accessibility/AccessibilityNodeInfo;->mChildNodeIds:Landroid/util/LongArray; (greylist, reflection, allowed)
    2023-05-23 11:37:07.248 14723-14723 ork.test_freez          com.example.test_freeze            W  Accessing hidden method Landroid/util/LongArray;->get(I)J (greylist, reflection, allowed)
    2023-05-23 11:37:07.321 14723-14723 ColorViewRootUtil       com.example.test_freeze            D  initSwipState, isDisplayCompatApp false
    2023-05-23 11:37:07.321 14723-14723 ColorViewRootUtil       com.example.test_freeze            D  mScreenHeight 2400, mScreenWidth 1080
    2023-05-23 11:37:07.326 14723-14723 WindowManager           com.example.test_freeze            D  Add to mViews: DecorView@b724338[MainActivity],pkg= com.example.test_freeze
    2023-05-23 11:37:07.460 14723-14777 flutter                 com.example.test_freeze            I  The Dart VM service is listening on http://<IP_ADDRESS>:42193/LLbdSL9twxY=/
    2023-05-23 11:37:07.477 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  get feature:IOplusScreenModeFeature
    2023-05-23 11:37:07.477 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusScreenModeFeature
    2023-05-23 11:37:07.498 14723-14723 OplusZoomW...ViewHelper com.example.test_freeze            V  setLastReportedMergedConfiguration mZoomDisplayHeight: 2400 getDecorView.DecorView@b724338[MainActivity]
    2023-05-23 11:37:07.501 14723-14753 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:07.513 14723-14753 chatty                  com.example.test_freeze            I  uid=11631(com.example.test_freeze) RenderThread identical 66 lines
    2023-05-23 11:37:07.513 14723-14753 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:07.516 14723-14760 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:07.517 14723-14760 chatty                  com.example.test_freeze            I  uid=11631(com.example.test_freeze) 1.raster identical 4 lines
    2023-05-23 11:37:07.517 14723-14760 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:07.517 14723-14760 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:07.517 14723-14760 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:07.521 14723-14760 chatty                  com.example.test_freeze            I  uid=11631(com.example.test_freeze) 1.raster identical 54 lines
    2023-05-23 11:37:07.521 14723-14760 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:07.523 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  get feature:IOplusScreenModeFeature
    2023-05-23 11:37:07.523 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusScreenModeFeature
    2023-05-23 11:37:07.636 14723-14723 OplusFeatureCache       com.example.test_freeze            I  Milliseconds spent on init(): 18
    2023-05-23 11:37:07.883 14723-14723 Choreographer           com.example.test_freeze            W  Frame time is 0.07417 ms in the future!  Check that graphics HAL is generating vsync timestamps using the correct timebase.
    2023-05-23 11:37:11.740 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  get feature:IOplusScreenModeFeature
    2023-05-23 11:37:11.740 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusScreenModeFeature
    2023-05-23 11:37:21.453  1101-1101  OppoExLayer             pid-1101                             E  using cid as pid, cid=14723, name=Background for -SurfaceView - com.example.test_freeze/com.example.test_freeze.MainActivity#0
    2023-05-23 11:37:22.342 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  get feature:IOplusScreenModeFeature
    2023-05-23 11:37:22.342 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusScreenModeFeature
    2023-05-23 11:37:22.343 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  get feature:IOplusScreenModeFeature
    2023-05-23 11:37:22.343 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusScreenModeFeature
    2023-05-23 11:37:22.349 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  get feature:IOplusScreenModeFeature
    2023-05-23 11:37:22.349 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusScreenModeFeature
    2023-05-23 11:37:22.357 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  get feature:IOplusScreenModeFeature
    2023-05-23 11:37:22.357 14723-14723 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusScreenModeFeature
    2023-05-23 11:37:51.031  1778-6165  OppoKiller...gerService pid-1778                             E  o-kill [0, 14723, com.example.test_freeze, reason: 392]
    ---------------------------- PROCESS ENDED (14723) for package com.example.test_freeze ----------------------------
    2023-05-23 11:37:59.574  1778-2088  OppoThermalStats        pid-1778                             E  Error getting package info: com.example.test_freeze
    ---------------------------- PROCESS STARTED (15803) for package com.example.test_freeze ----------------------------
    2023-05-23 11:37:59.580 15803-15803 oplus.andr...actoryImpl com.example.test_freeze            I  get feature:IOplusScreenModeFeature
    2023-05-23 11:37:59.580 15803-15803 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusScreenModeFeature
    2023-05-23 11:37:59.609  4858-4882  oiface                  pid-4858                             E  packageSwitch pkg com.example.test_freeze, enter
    2023-05-23 11:37:59.610  4858-4882  oiface                  pid-4858                             E  current package is com.example.test_freeze and pid is 15803
    2023-05-23 11:37:59.747 15803-15803 Perf                    com.example.test_freeze            I  Connecting to perf service.
    2023-05-23 11:37:59.750 15803-15803 Perf                    com.example.test_freeze            E   perftest packageName : com.example.test_freeze App is allowed to use Hide APIs
    2023-05-23 11:37:59.765 15803-15803 NetworkSecurityConfig   com.example.test_freeze            D  No Network Security Config specified, using platform default
    2023-05-23 11:37:59.766 15803-15803 NetworkSecurityConfig   com.example.test_freeze            D  No Network Security Config specified, using platform default
    2023-05-23 11:37:59.786 15803-15828 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:59.818 15803-15803 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusRedPacketManager
    2023-05-23 11:37:59.845 15803-15830 ResourceExtractor       com.example.test_freeze            I  Found extracted resources res_timestamp-1-1684830129596
    2023-05-23 11:37:59.930 15803-15803 ork.test_freeze         com.example.test_freeze            W  type=1400 audit(0.0:20696): avc: denied { read } for name="max_map_count" dev="proc" ino=1689797 scontext=u:r:untrusted_app:s0:c95,c262,c512,c768 tcontext=u:object_r:proc_max_map_count:s0 tclass=file permissive=0 app=com.example.test_freeze
    2023-05-23 11:37:59.947 15803-15803 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:59.948 15803-15803 AdrenoGLES-0            com.example.test_freeze            I  QUALCOMM build                   : 319c6d8, Ic907de5ed0
    Build Date                       : 09/21/20
    OpenGL ES Shader Compiler Version: EV<IP_ADDRESS>
    Local Branch                     :
    Remote Branch                    : refs/tags/AU_LINUX_ANDROID_LA.UM.9.11.R<IP_ADDRESS>.679.015
    Remote Branch                    : NONE
    Reconstruct Branch               : NOTHING
    2023-05-23 11:37:59.948 15803-15803 AdrenoGLES-0            com.example.test_freeze            I  Build Config                     : S P 10.0.5 AArch64
    2023-05-23 11:37:59.948 15803-15803 AdrenoGLES-0            com.example.test_freeze            I  Driver Path                      : /vendor/lib64/egl/libGLESv2_adreno.so
    2023-05-23 11:37:59.955 15803-15803 AdrenoGLES-0            com.example.test_freeze            I  PFP: 0x016ee190, ME: 0x00000000
    2023-05-23 11:37:59.978 15803-15834 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:37:59.983 15803-15834 chatty                  com.example.test_freeze            I  uid=11631(com.example.test_freeze) 1.io identical 61 lines
    2023-05-23 11:37:59.983 15803-15834 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:38:00.040 15803-15803 OplusInputMethodUtil    com.example.test_freeze            D  init DEBUG to false, update DEBUG_IME to false
    2023-05-23 11:38:00.076 15803-15803 ork.test_freez          com.example.test_freeze            W  Accessing hidden method Landroid/view/accessibility/AccessibilityNodeInfo;->getSourceNodeId()J (greylist,test-api, reflection, allowed)
    2023-05-23 11:38:00.084 15803-15803 ork.test_freez          com.example.test_freeze            W  Accessing hidden method Landroid/view/accessibility/AccessibilityRecord;->getSourceNodeId()J (greylist, reflection, allowed)
    2023-05-23 11:38:00.084 15803-15803 ork.test_freez          com.example.test_freeze            W  Accessing hidden field Landroid/view/accessibility/AccessibilityNodeInfo;->mChildNodeIds:Landroid/util/LongArray; (greylist, reflection, allowed)
    2023-05-23 11:38:00.084 15803-15803 ork.test_freez          com.example.test_freeze            W  Accessing hidden method Landroid/util/LongArray;->get(I)J (greylist, reflection, allowed)
    2023-05-23 11:38:00.149 15803-15803 ColorViewRootUtil       com.example.test_freeze            D  initSwipState, isDisplayCompatApp false
    2023-05-23 11:38:00.149 15803-15803 ColorViewRootUtil       com.example.test_freeze            D  mScreenHeight 2400, mScreenWidth 1080
    2023-05-23 11:38:00.153 15803-15803 WindowManager           com.example.test_freeze            D  Add to mViews: DecorView@43c80dd[MainActivity],pkg= com.example.test_freeze
    2023-05-23 11:38:00.303 15803-15803 oplus.andr...actoryImpl com.example.test_freeze            I  get feature:IOplusScreenModeFeature
    2023-05-23 11:38:00.303 15803-15803 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusScreenModeFeature
    2023-05-23 11:38:00.329 15803-15803 OplusZoomW...ViewHelper com.example.test_freeze            V  setLastReportedMergedConfiguration mZoomDisplayHeight: 2400 getDecorView.DecorView@43c80dd[MainActivity]
    2023-05-23 11:38:00.332 15803-15826 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:38:00.347 15803-15826 chatty                  com.example.test_freeze            I  uid=11631(com.example.test_freeze) RenderThread identical 66 lines
    2023-05-23 11:38:00.347 15803-15826 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:38:00.352 15803-15833 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:38:00.359 15803-15833 chatty                  com.example.test_freeze            I  uid=11631(com.example.test_freeze) 1.raster identical 61 lines
    2023-05-23 11:38:00.359 15803-15833 libEGL                  com.example.test_freeze            E  Invalid file path for libcolorx-loader.so
    2023-05-23 11:38:00.361 15803-15803 oplus.andr...actoryImpl com.example.test_freeze            I  get feature:IOplusScreenModeFeature
    2023-05-23 11:38:00.361 15803-15803 oplus.andr...actoryImpl com.example.test_freeze            I  getOplusScreenModeFeature
    2023-05-23 11:38:00.364 15803-15849 flutter                 com.example.test_freeze            I  The Dart VM service is listening on http://<IP_ADDRESS>:38791/MPZxpSUXO04=/
    2023-05-23 11:38:00.468 15803-15803 OplusFeatureCache       com.example.test_freeze            I  Milliseconds spent on init(): 16

Flutter Doctor output
Doctor output
[!] Flutter (Channel stable, 3.10.1, on macOS 13.0.1 22A400 darwin-arm64, locale en-FR)
• Flutter version 3.10.1 on channel stable at /Users/username/fvm/versions/stable
! Warning: `dart` on your path resolves to /opt/homebrew/Cellar/dart/2.16.2/libexec/bin/dart, which is not inside your current Flutter SDK checkout at /Users/username/fvm/versions/stable. Consider adding /Users/username/fvm/versions/stable/bin to the front of your path.
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision d3d8effc68 (6 days ago), 2023-05-16 17:59:05 -0700
• Engine revision b4fb11214d
• Dart version 3.0.1
• DevTools version 2.23.1
• Pub download mirror https://adeo.jfrog.io/artifactory/api/pub/pub-adeo
• If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc1)
• Android SDK at /Users/username/Library/Android/sdk
• Platform android-33, build-tools 33.0.0-rc1
• ANDROID_HOME = /Users/username/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
• All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14E222b
• CocoaPods version 1.11.2

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

[✓] Android Studio (version 2021.3)
• Android Studio at /Applications/Android Studio.app/Contents
• 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.13+0-b1751.21-8125866)

[✓] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio 2.app/Contents
• 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 1.8.0_242-release-1644-b3-6915495)

[✓] IntelliJ IDEA Community Edition (version 2022.1.2)
• IntelliJ at /Applications/IntelliJ IDEA CE.app
• 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

[✓] Connected device (5 available)
• Pixel 4a (mobile) • 09161JEC210296 • android-arm64  • Android 13 (API 33)
• TC51 (mobile)     •<PHONE_NUMBER>7113 • android-arm64  • Android 7.1.2 (API 25)
• CPH2067 (mobile)  • b02e9aaa       • android-arm64  • Android 11 (API 30)
• macOS (desktop)   • macos          • darwin-arm64   • macOS 13.0.1 22A400 darwin-arm64
• Chrome (web)      • chrome         • web-javascript • Google Chrome 113.0.5672.126

[✓] Network resources
• All expected network resources are available.

! Doctor found issues in 1 category.

Thanks for the report @amardon
Can you take a look at this similar issue and see if it resembles your case too ?

It doesn’t seem to be the same issue. In our case the app turns black or white (depending on the device) when brought back to the foreground but displays properly in the background app overview. In the linked issue the behavior seems to be the exact opposite : white screen in the background app overview but renders properly when brought back to foreground.
Here's a video of the issue :
https://github.com/flutter/flutter/assets/13098552/db22fef1-e03b-4277-b0b2-88536881e232

Thanks for the update. I tried to replicate this using Pixel 4 emulator with Android 13, but was unable to replicate the reported behavior.
There have been couple of similar issues reported describing more or less same behavior but could be device and OS specific.
https://github.com/flutter/flutter/issues/117019
https://github.com/flutter/flutter/issues/111594

2. Run the app with Android Studio or with logcat enabled.

Is it only occuring if we enable logcat ? If you try without it being enabled, does it replicate ?

We reproduced the issue on Oppo A72, Pixel 4A and Zebra TC51.

Can you provide device details of these ? I am guessing this is only occuring on physical devices ?

Our test devices:
• Google Pixel 4a (mobile)   • android-arm64  • Android 13 (API 33)
• Zebra TC51 (mobile)        • android-arm64  • Android 7.1.2 (API 25)
• Oppo A72 CPH2067 (mobile)  • android-arm64  • Android 11 (API 30)
Please note that while the Oppo system tends to kill pretty aggressively background processes which allows us to reproduce the issue easily, it is a lot more tedious on the Pixel 4a for instance (it took 5 good minutes of intense phone usage for the system to kill the app process in the background).
After testing on an Android 11 API 30 emulator and on an Android 13 API 33 Pixel XL emulator, we did not manage to reproduce so it seems to be only physical devices.
We also tried a release build on our Oppo device and did not reproduce, when bringing the app back to the foreground and after a short black screen the app gets rendered normally.
We also tried with a debug build but without ADB connected and it seems to run fine.
So it seems to us that the issue only happens on physical devices with debug builds and ADB connected.
The issues could be related to ours as it also happens on physical devices and debug builds but the issue itself seems different. For them it happens right after installing the app or on startup while ours happens after sending the app to background.

Thanks for the update.

So it seems to us that the issue only happens on physical devices with debug builds and ADB connected.

Maybe the new adb release has something to do with the reported behavior ?
I am unable to replicate this on emulator and Samsung A2Core galaxy device using a sample app, but based on the report, labeling for tracking and team's input.

We marked this as a p5 because debug builds + adb connected are unlikely to impact production users.
This is the class of bug we would accept a well tested PR for!

We are having the same problem. But in release build APK, not debug APK. Android 10, Vivo Y52s. App is freezed with white screen.


chore: E2E Tests on Java 17

Issue #, if available:
Description of changes:
Enabling end to end tests on Java 17. Permits to validate powertools with the Lambda Java Runtime 17.
Checklist

[x] Meet tenets criteria
[x] Update tests
[x] Update docs
[X] PR title follows conventional commit semantics

Breaking change checklist

RFC issue #:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report
Patch and project coverage have no change.

Comparison is base (c2baead) 71.32% compared to head (db329e5) 71.32%.

Additional details and impacted files
@@            Coverage Diff            @@
##             master    #1174   +/-   ##
=========================================
  Coverage     71.32%   71.32%
  Complexity      535      535
=========================================
  Files            70       70
  Lines          2239     2239
  Branches        237      237
=========================================
  Hits           1597     1597
  Misses          529      529
  Partials        113      113

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


Improve the Design of KeepAlive

The KeepAlive design of current release takes a long time to detect the disconnection caused by network interruption, such as the mobile switches to 'Airplane mode':
```
       PING
         | DOWN
         |  |<-------Delay Time--------->
t0---->|----------|----------|----------|---->tn
                  |          |          |
                  Ok         Retry      Timeout

```

Tick at interval of (Keepalive * 0.75).


ShellStream stops reading?

Hi Guys,
I'm a network administrator who has been using SSH.NET within the Posh-SSH module for PowerShell. It enables me to do great things network wise, but i've stumbled across an issue is just can not solve.
Background:
I use SSH to connect to (mainly Cisco) network devices. Those devices require a ShellStream to work interactively. When communicating with the devices i use the "write()" or "writeline()" to send commands to the device. And use "read()" whenever i want to see the output.
Problem:
The write / read method against the stream works just fine when the output of the command i available shortly after the execution.
However, some commands that i use on a device can take a quite a while (30 seconds / 1 minute). During that timeperiod the devices keep providing some output to show the progression of the command that is running (most likely in the form of dots or exclamation marks). In this situation, the "read()" on the stream isn't behaving as i would expect.
After a random period of time, performing the "read()" on the stream won't give me any data about the progression. Besides that, the stream object shows that the "DataAvailable" is False.
As soon as i send another "write()" or "writeline()" the stream has DataAvailable again. I "read()" the stream again, but the output is only a very small part of the older progression output (like 3 dots out of a 100). So for some reason i only get some old output data back, and the stream doesn't seem interactive anymore.
I can repeat this step a lot of times untill eventually, after going through all the old output data from the first command, it catches up, and shows me all the output of the other "write()" commands i've used so far, and so the session is interactive again.
Question:
Can you guys help me out and give me some suggestions as to why this behavior is occuring?
I've been trying to find the root cause of this behavior for weeks now, but i'm unable to find it.
Example Expected output (1 or multiple reads)
ping <IP_ADDRESS> repeat 20
Type escape sequence to abort.
Sending 20, 100-byte ICMP Echos to <IP_ADDRESS>, timeout is 2 seconds:
....................
Success rate is 0 percent (0/20)
Example Unexpected output (1st read)
ping <IP_ADDRESS> repeat 20
Type escape sequence to abort.
Sending 20, 100-byte ICMP Echos to <IP_ADDRESS>, timeout is 2 seconds:
.....
Example Unexpected output (after 1 or more writes)
.
..
.

I don’t have Cisco kit to test against but I do use VyOS, for it I wrote https://gist.github.com/darkoperator/93fc457ca1c2de14c3a62a55d98020eb https://gist.github.com/darkoperator/93fc457ca1c2de14c3a62a55d98020eb since it keeps collecting the output until it gets a shell waiting for another command. Don’t know if this will help

On Apr 13, 2019, at 3:34 PM, Patrick<EMAIL_ADDRESS>wrote:
Hi Guys,
I'm a network administrator who has been using SSH.NET within the Posh-SSH module for PowerShell. It enables me to do great things network wise, but i've stumbled across an issue is just can not solve.
Background:
I use SSH to connect to (mainly Cisco) network devices. Those devices require a ShellStream to work interactively. When communicating with the devices i use the "write()" or "writeline()" to send commands to the device. And use "read()" whenever i want to see the output.
Problem:
The write / read method against the stream works just fine when the output of the command i available shortly after the execution.
However, some commands that i use on a device can take a quite a while (30 seconds / 1 minute). During that timeperiod the devices keep providing some output to show the progression of the command that is running (most likely in the form of dots or exclamation marks). In this situation, the "read()" on the stream isn't behaving as i would expect.
After a random period of time, performing the "read()" on the stream won't give me any data about the progression. Besides that, the stream object shows that the "DataAvailable" is False.
As soon as i send another "write()" or "writeline()" the stream has DataAvailable again. I "read()" the stream again, but the output is only a very small part of the older progression output (like 3 dots out of a 100). So for some reason i only get some old output data back, and the stream doesn't seem interactive anymore.
I can repeat this step a lot of times untill eventually, after going through all the old output data from the first command, it catches up, and shows me all the output of the other "write()" commands i've used so far, and so the session is interactive again.
Question:
Can you guys help me out and give me some suggestions as to why this behavior is occuring?
I've been trying to find the root cause of this behavior for weeks now, but i'm unable to find it.
Example Expected output (1 or multiple reads)
ping <IP_ADDRESS> repeat 20
Type escape sequence to abort.
Sending 20, 100-byte ICMP Echos to <IP_ADDRESS>, timeout is 2 seconds:
....................
Success rate is 0 percent (0/20)
Example Unexpected output (1st read)
ping <IP_ADDRESS> repeat 20
Type escape sequence to abort.
Sending 20, 100-byte ICMP Echos to <IP_ADDRESS>, timeout is 2 seconds:
.....
Example Unexpected output (after 1 or more writes)
.
..
.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/darkoperator/Posh-SSH/issues/266, or mute the thread https://github.com/notifications/unsubscribe-auth/AAf0Hu-7wksOjWkLNAIjqtzmQup9zGIAks5vgjFggaJpZM4cuOx4.

Hey Darkoperator,
Thanks for your response. I've seen the VyOS script in #258 while i was troubleshooting. I use the same logic as well. However, the problem is that "read()" just stops collecting output, even when there is more output generated by the device.
The only way to get some, and after a dozens of tries all the output, is to keep sending writes untill the output catches up.
Commands i send in the mean time to get all the old output are immediately processed by the device (which i can see by logging on manually as well). But the output only show up after the weird behavior of the lengthy command is all out of the way.

weird, can't replicate it with Linux targets, wonder if it is a Cisco thing since theirs is a fork of OpenSSH

Cisco has provided a new Recommended Release. We've upgraded to this new release, and tested SSH before and after the upgrade on switches were the problem occured. I wasn't able to recreate the problem after the upgrade.
It looks like the upgrade has fixed the issue, en thus it was indeed a Cisco problem in certain IOS releases / devices. It's weird, because not all the hardware (same type) with the same release was effected by it.


compiling for php 8.0.1 on latest alpine image throws errors

What version of gRPC and what language are you using?
PHP 8.0.1 from the php:8.0-fpm-alpine image
grpc version: 1.35.0
What operating system (Linux, Windows,...) and version?
Alpine Linux
What runtime / compiler are you using (e.g. python version or version of gcc)
PEAR Version: 1.10.12
PHP Version: 8.0.1
Zend Engine Version: 4.0.1
Running on: Linux 9cc30c3b6ac7 5.9.11-200.fc33.x86_64 #1 SMP Tue Nov 24 18:18:01 UTC 2020 x86_64

What did you do?
Please provide either 1) A unit test for reproducing the bug or 2) Specific steps for us to follow to reproduce the bug. If there’s not enough information to debug the problem, gRPC team may close the issue at their discretion. You’re welcome to re-open the issue once you have a reproduction.

Step #5: checking whether we are cross compiling... no
Step #5: checking for suffix of object files... o
Step #5: checking whether we are using the GNU C compiler... yes
Step #5: checking whether cc accepts -g... yes
Step #5: checking for cc option to accept ISO C89... none needed
Step #5: checking how to run the C preprocessor... cc -E
Step #5: checking for icc... no
Step #5: checking for suncc... no
Step #5: checking for system library directory... lib
Step #5: checking if compiler supports -R... no
Step #5: checking if compiler supports -Wl,-rpath,... yes
Step #5: checking build system type... x86_64-pc-linux-musl
Step #5: checking host system type... x86_64-pc-linux-musl
Step #5: checking target system type... x86_64-pc-linux-musl
Step #5: checking for PHP prefix... /usr/local
Step #5: checking for PHP includes... -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib
Step #5: checking for PHP extension directory... /usr/local/lib/php/extensions/no-debug-non-zts-20200930
Step #5: checking for PHP installed headers prefix... /usr/local/include/php
Step #5: checking if debug is enabled... no
Step #5: checking if zts is enabled... no
Step #5: checking for gawk... no
Step #5: checking for nawk... no
Step #5: checking for awk... awk
Step #5: checking if awk is broken... no
Step #5: checking whether to enable grpc support... yes, shared
Step #5: checking for g++... g++
Step #5: checking whether we are using the GNU C++ compiler... yes
Step #5: checking whether g++ accepts -g... yes
Step #5: checking how to run the C++ preprocessor... g++ -E
Step #5: checking for a sed that does not truncate output... /bin/sed
Step #5: checking for ld used by cc... /usr/x86_64-alpine-linux-musl/bin/ld
Step #5: checking if the linker (/usr/x86_64-alpine-linux-musl/bin/ld) is GNU ld... yes
Step #5: checking for /usr/x86_64-alpine-linux-musl/bin/ld option to reload object files... -r
Step #5: checking for BSD-compatible nm... /usr/bin/nm -B
Step #5: checking whether ln -s works... yes
Step #5: checking how to recognize dependent libraries... pass_all
Step #5: checking for ANSI C header files... yes
Step #5: checking for sys/types.h... yes
Step #5: checking for sys/stat.h... yes
Step #5: checking for stdlib.h... yes
Step #5: checking for string.h... yes
Step #5: checking for memory.h... yes
Step #5: checking for strings.h... yes
Step #5: checking for inttypes.h... yes
Step #5: checking for stdint.h... yes
Step #5: checking for unistd.h... yes
Step #5: checking dlfcn.h usability... yes
Step #5: checking dlfcn.h presence... yes
Step #5: checking for dlfcn.h... yes
Step #5: checking how to run the C++ preprocessor... g++ -E
Step #5: checking the maximum length of command line arguments... 98304
Step #5: checking command to parse /usr/bin/nm -B output from cc object... ok
Step #5: checking for objdir... .libs
Step #5: checking for ar... ar
Step #5: checking for ranlib... ranlib
Step #5: checking for strip... strip
Step #5: checking if cc supports -fno-rtti -fno-exceptions... no
Step #5: checking for cc option to produce PIC... -fPIC
Step #5: checking if cc PIC flag -fPIC works... yes
Step #5: checking if cc static flag -static works... yes
Step #5: checking if cc supports -c -o file.o... yes
Step #5: checking whether the cc linker (/usr/x86_64-alpine-linux-musl/bin/ld -m elf_x86_64) supports shared libraries... yes
Step #5: checking whether -lc should be explicitly linked in... no
Step #5: checking dynamic linker characteristics... GNU/Linux ld.so
Step #5: checking how to hardcode library paths into programs... immediate
Step #5: checking whether stripping libraries is possible... yes
Step #5: checking if libtool supports shared libraries... yes
Step #5: checking whether to build shared libraries... yes
Step #5: checking whether to build static libraries... no
Step #5:
Step #5: creating libtool
Step #5: appending configuration tag "CXX" to libtool
Step #5: checking for ld used by g++... /usr/x86_64-alpine-linux-musl/bin/ld -m elf_x86_64
Step #5: checking if the linker (/usr/x86_64-alpine-linux-musl/bin/ld -m elf_x86_64) is GNU ld... yes
Step #5: checking whether the g++ linker (/usr/x86_64-alpine-linux-musl/bin/ld -m elf_x86_64) supports shared libraries... yes
Step #5: checking for g++ option to produce PIC... -fPIC
Step #5: checking if g++ PIC flag -fPIC works... yes
Step #5: checking if g++ static flag -static works... yes
Step #5: checking if g++ supports -c -o file.o... yes
Step #5: checking whether the g++ linker (/usr/x86_64-alpine-linux-musl/bin/ld -m elf_x86_64) supports shared libraries... yes
Step #5: checking dynamic linker characteristics... GNU/Linux ld.so
Step #5: (cached) (cached) checking how to hardcode library paths into programs... immediate
Step #5: configure: patching config.h.in
Step #5: configure: creating ./config.status
Step #5: config.status: creating config.h
Step #5: running: make
[...]
Step #5: /bin/sh /tmp/pear/temp/pear-build-defaultuserdPbFHh/grpc-1.35.0/libtool --mode=compile cc -I. -I/tmp/pear/temp/grpc -I/tmp/pear/temp/pear-build-defaultuserdPbFHh/grpc-1.35.0/include -I/tmp/pear/temp/pear-build-defaultuserdPbFHh/grpc-1.35.0/main -I/tmp/pear/temp/grpc -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/tmp/pear/temp/grpc/include -I/tmp/pear/temp/grpc/src/core/ext/upb-generated -I/tmp/pear/temp/grpc/src/core/ext/upbdefs-generated -I/tmp/pear/temp/grpc/src/php/ext/grpc -I/tmp/pear/temp/grpc/third_party/abseil-cpp -I/tmp/pear/temp/grpc/third_party/address_sorting/include -I/tmp/pear/temp/grpc/third_party/boringssl-with-bazel/src/include -I/tmp/pear/temp/grpc/third_party/re2 -I/tmp/pear/temp/grpc/third_party/upb  -DHAVE_CONFIG_H  -Wall -Werror -Wno-parentheses-equality -Wno-unused-value -std=c11 -g -O2   -fvisibility=hidden     -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_
Step #5: LEAN_AND_MEAN     -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0     -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 -c /tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c -o third_party/upb/upb/json_decode.lo
Step #5:  cc -I. -I/tmp/pear/temp/grpc -I/tmp/pear/temp/pear-build-defaultuserdPbFHh/grpc-1.35.0/include -I/tmp/pear/temp/pear-build-defaultuserdPbFHh/grpc-1.35.0/main -I/tmp/pear/temp/grpc -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/tmp/pear/temp/grpc/include -I/tmp/pear/temp/grpc/src/core/ext/upb-generated -I/tmp/pear/temp/grpc/src/core/ext/upbdefs-generated -I/tmp/pear/temp/grpc/src/php/ext/grpc -I/tmp/pear/temp/grpc/third_party/abseil-cpp -I/tmp/pear/temp/grpc/third_party/address_sorting/include -I/tmp/pear/temp/grpc/third_party/boringssl-with-bazel/src/include -I/tmp/pear/temp/grpc/third_party/re2 -I/tmp/pear/temp/grpc/third_party/upb -DHAVE_CONFIG_H -Wall -Werror -Wno-parentheses-equality -Wno-unused-value -std=c11 -g -O2 -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATF
Step #5: ORK=1 -c /tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c  -fPIC -DPIC -o third_party/upb/upb/.libs/json_decode.o
Step #5: /tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c: In function 'jsondec_value':
Step #5: /tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c:774:10: error: '*((void *)&val+8)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
Step #5:   774 |   return val;
Step #5:       |          ^~~
Step #5: /tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c:738:10: error: '*((void *)&val+8)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
Step #5:   738 |   return val;
Step #5:       |          ^~~
Step #5: /tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c: At top level:
Step #5: cc1: note: unrecognized command-line option '-Wno-parentheses-equality' may have been intended to silence earlier diagnostics
Step #5: cc1: all warnings being treated as errors
Step #5: make: *** [Makefile:2111: third_party/upb/upb/json_decode.lo] Error 1
Step #5: ERROR: `make' failed

Anything else we should know about your project / environment?
It works with the php:8.0.0-fpm-alpine image, so some change must have been introduced between php 8.0.0 and php 8.0.1.

I've got something very similar looking, in different circumstances. Trying to install grpc on debian,
PEAR Version: 1.10.9
PHP Version: 7.4.11
Zend Engine Version: 3.4.0
Ran command:
sudo pecl install grpc
After many minutes of furious building, I got the same results as reported above:
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c: In function ‘jsondec_value’:
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c:774:10: error: ‘*((void )&val+8)’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
774 |   return val;
|          ^~~
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c:738:10: error: ‘((void *)&val+8)’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
738 |   return val;
|          ^~~
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c: At top level:
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: all warnings being treated as errors
make: *** [Makefile:2094: third_party/upb/upb/json_decode.lo] Error 1
ERROR: `make' failed

I've got something very similar looking, in different circumstances. Trying to install grpc on debian,
PEAR Version: 1.10.9
PHP Version: 7.4.11
Zend Engine Version: 3.4.0
Ran command:
sudo pecl install grpc
After many minutes of furious building, I got the same results as reported above:
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c: In function ‘jsondec_value’:
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c:774:10: error: ‘*((void )&val+8)’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
774 |   return val;
|          ^~~
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c:738:10: error: ‘((void *)&val+8)’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
738 |   return val;
|          ^~~
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c: At top level:
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: all warnings being treated as errors
make: *** [Makefile:2094: third_party/upb/upb/json_decode.lo] Error 1
ERROR: `make' failed

A temporary workaround is to set the CPPFLAGS environment variable to -Wno-maybe-uninitialized.
For example:
CPPFLAGS="-Wno-maybe-uninitialized" pickle install grpc

A temporary workaround is to set the CPPFLAGS environment variable to -Wno-maybe-uninitialized.
For example:
CPPFLAGS="-Wno-maybe-uninitialized" pickle install grpc

The CPPFLAGS workaround did not work for me, I got the same exact error.

The CPPFLAGS workaround did not work for me, I got the same exact error.

Yep, you can use both pecl and pickle. By starting a Docker container with docker run --rm -it php:8.0.1-cli-alpine3.13 sh:

using pecl:apk add $PHPIZE_DEPS libstdc++ zlib-dev linux-headers
CPPFLAGS="-Wno-maybe-uninitialized" pecl install grpc-1.35.0
docker-php-ext-enable grpc
php --ri grpc

using pickle:apk add $PHPIZE_DEPS libstdc++ zlib-dev linux-headers
curl -sSLf -o pickle.phar https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar
CPPFLAGS="-Wno-maybe-uninitialized" php pickle.phar install grpc-1.35.0
docker-php-ext-enable grpc
php --ri grpc

Yep, you can use both pecl and pickle. By starting a Docker container with docker run --rm -it php:8.0.1-cli-alpine3.13 sh:

using pecl:apk add $PHPIZE_DEPS libstdc++ zlib-dev linux-headers
CPPFLAGS="-Wno-maybe-uninitialized" pecl install grpc-1.35.0
docker-php-ext-enable grpc
php --ri grpc

using pickle:apk add $PHPIZE_DEPS libstdc++ zlib-dev linux-headers
curl -sSLf -o pickle.phar https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar
CPPFLAGS="-Wno-maybe-uninitialized" php pickle.phar install grpc-1.35.0
docker-php-ext-enable grpc
php --ri grpc

And PS: you can now use my install-php-extensions script to install grpc 1.35.0 (as well as tons of other PHP extensions), both on Debian-based and Alpine-based PHP docker images.

And PS: you can now use my install-php-extensions script to install grpc 1.35.0 (as well as tons of other PHP extensions), both on Debian-based and Alpine-based PHP docker images.

Will look into this. Funny how 8.0.1 wasn't listed as a release yet in the PHP site itself. Or maybe they stop updating that.

Will look into this. Funny how 8.0.1 wasn't listed as a release yet in the PHP site itself. Or maybe they stop updating that.

I think it's an issue with the gcc version that comes with Alpine Linux 3.13. With other distros there isn't any issue

I think it's an issue with the gcc version that comes with Alpine Linux 3.13. With other distros there isn't any issue

Getting the same issue with php:7.4-cli-alpine
 cc -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 -I. -I/tmp/pear/temp/grpc -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-defaultuserabPCPN/grpc-1.35.0/include -I/tmp/pear/temp/pear-build-defaultuserabPCPN/grpc-1.35.0/main -I/tmp/pear/temp/grpc -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/tmp/pear/temp/grpc/include -I/tmp/pear/temp/grpc/src/core/ext/upb-generated -I/tmp/pear/temp/grpc/src/core/ext/upbdefs-generated -I/tmp/pear/temp/grpc/src/php/ext/grpc -I/tmp/pear/temp/grpc/third_party/abseil-cpp -I/tmp/pear/temp/grpc/third_party/address_sorting/include -I/tmp/pear/temp/grpc/third_party/boringssl-with-bazel/src/include -I/tmp/pear/temp/grpc/third_party/re2 -I/tmp/pear/temp/grpc/third_party/upb -DHAVE_CONFIG_H -Wall -Werror -Wno-parentheses-equality -Wno-unused-v
alue -std=c11 -g -O2 -c /tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c  -fPIC -DPIC -o third_party/upb/upb/.libs/json_decode.o
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c: In function 'jsondec_value':
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c:774:10: error: '*((void *)&val+8)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  774 |   return val;
      |          ^~~
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c:738:10: error: '*((void *)&val+8)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  738 |   return val;
      |          ^~~
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c: At top level:
cc1: note: unrecognized command-line option '-Wno-parentheses-equality' may have been intended to silence earlier diagnostics
cc1: all warnings being treated as errors
make: *** [Makefile:2094: third_party/upb/upb/json_decode.lo] Error 1
ERROR: `make' failed
ERROR: Service 'charts-service' failed to build : The command '/bin/sh -c set -xe     && apk update     && apk add --no-cache         libzip-dev         unzip         autoconf         build-base         g++ make zlib-dev linux-headers     && pecl install          grpc protobuf     && docker-php-ext-enable grpc protobuf     && docker-php-ext-install intl zip opcache' returned a non-zero code: 1

Same on:
PHP 7.4.9 (cli) (built: Oct 26 2020 15:17:14) ( NTS )
Ubuntu 20.10
 cc -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 -I. -I/tmp/pear/temp/grpc -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootAoOrTP/grpc-1.35.0/include -I/tmp/pear/temp/pear-build-rootAoOrTP/grpc-1.35.0/main -I/tmp/pear/temp/grpc -I/usr/include/php/20190902 -I/usr/include/php/20190902/main -I/usr/include/php/20190902/TSRM -I/usr/include/php/20190902/Zend -I/usr/include/php/20190902/ext -I/usr/include/php/20190902/ext/date/lib -I/tmp/pear/temp/grpc/include -I/tmp/pear/temp/grpc/src/core/ext/upb-generated -I/tmp/pear/temp/grpc/src/core/ext/upbdefs-generated -I/tmp/pear/temp/grpc/src/php/ext/grpc -I/tmp/pear/temp/grpc/third_party/abseil-cpp -I/tmp/pear/temp/grpc/third_party/address_sorting/include -I/tmp/pear/temp/grpc/third_party/boringssl-with-bazel/src/include -I/tmp/pear/temp/grpc/third_party/re2 -I/tmp/pear/temp/grpc/third_party/upb -DHAVE_CONFIG_H -Wall -Werror -Wno-parentheses-equality -Wno-unus
ed-value -std=c11 -g -O2 -c /tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c  -fPIC -DPIC -o third_party/upb/upb/.libs/json_decode.o
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c: In function ‘jsondec_value’:
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c:774:10: error: ‘*((void *)&val+8)’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
  774 |   return val;
      |          ^~~
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c:738:10: error: ‘*((void *)&val+8)’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
  738 |   return val;
      |          ^~~
/tmp/pear/temp/grpc/third_party/upb/upb/json_decode.c: At top level:
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
cc1: all warnings being treated as errors
make: *** [Makefile:2094: third_party/upb/upb/json_decode.lo] Error 1
ERROR: `make' failed

Looks like the issue has already been fixed in upstream upb:
https://github.com/protocolbuffers/upb/blob/53f5d9f69b4d6ba6ca3149e1913bd9834f4d6c78/upb/json_decode.c#L708
and
https://github.com/protocolbuffers/upb/blob/53f5d9f69b4d6ba6ca3149e1913bd9834f4d6c78/upb/json_decode.c#L745
This should be picked up by this repo the next time third_party/upb is being updated.

I have a similar problem, but with a different message error. Installing zlib-dev linux-headers packages helped.


Unable to set minimum TLS version

By default Node12 requires a minimum TLS version of 1.2, it would be nice to override this to resolve compatibility issues with certain MySQL DB versions which only run TLS 1.1 or 1.0.
https://github.com/mysqljs/mysql/blob/master/lib/Connection.js#L463
Ideally we could set any https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options

Are you not able to set it through the existing SSL options? https://github.com/mysqljs/mysql#ssl-options Whatever object you pass in there we just pass directly to Node.js.

I was trying that initially but the only way I can get this to set the minVersion is to assign it directly in https://github.com/mysqljs/mysql/blob/master/lib/Connection.js#L463

Oh, sorry, I misunderstood your request. You want us to add another property. I was just about to ask which one, but I see you replied that it is minVersion.

the only way I can get this to set the minVersion is to assign it directly

Well, that or, according to Node.js docs, use https://nodejs.org/api/tls.html#tls_tls_default_min_version , which is not ideal, I get it, but there is at least another way outside of source code modification :)

We can just use Node10 for the moment with our service instead of the cli argument.
Would you be open to me making a PR to allow adding this?

Yea, absolutely welcome a PR! You can find the basic contribution guidelines at https://github.com/mysqljs/mysql#contributing
For this, I know you linked to just one of the division of environments, so just want to make sure the option works in both of the Node.js version splits and adds the appropriate tests and docs :)

👍 Thanks for the quick replies I'll take a look

Thanks for this @alexburley. I was just about to submit a similar request/PR.
We want to upgrade to Node v12, but are using MySQL 5.6, which only supports TLSv1.
Let me know if you need any help with the PR.

@BrandonNoad
Hi, I would love to get some help - I have upgraded the node version in my project to v12, but my mySQL only supports TLSv1.
Didn't quit understand how I can overcome this issue.
Thanks!

@BrandonNoad
Hi, I would love to get some help - I have upgraded the node version in my project to v12, but my mySQL only supports TLSv1.
Didn't quit understand how I can overcome this issue.
Thanks!

@Norah1234 https://github.com/mysqljs/mysql/pull/2304 will fix the issue.
Until it is merged, there is not much you can do unless you want to fork this package and patch it yourself.

@BrandonNoad , Thanks!
Do you know when it is supposed to be merged?

Hi guys, I did forget, and of course you posted right at the start of a holiday weekend where I live so cannot attend to it yet. If you can use the command line switch posted above, that is the only solution currently.

No worries @dougwilson. Enjoy your long weekend.

@dougwilson
Thanks for the update! Do you have an ETA when it will be pushed?

@dougwilson Now that the holiday season is over, is there a chance that #2304 will be merged soon? Thanks.

@dougwilson Now that the holiday season is over, is there a chance that #2304 will be merged soon? Thanks.

Seconding that we could really use this so we dont run into issues updating from Node 10, which is deprecated in AWS by end of May. Please and thank ya.

Can someone please merge #2304? Thank you

Oh shoot,I am really sorry. Looks like travis ci went away, even. Let me get the CI fixed here and that merged and released for you. I'm sorry I let it drop like that and thank you for the ping here.


Test charm external storage deployment

Smoke tests for deploying charm with external storage from another unit/application.
Test cases

Removal Test. Install app, remove app, check no garbage left.
Re-installation test, install app 2nd time, remove with "-force --no-wait". Storage should be detached.
 Deploy PostgreSQL unit with attached storage from another unit.
Application resources conflicts test. Deploy PostgreSQL application with attached storage from another application.

Closed by https://github.com/canonical/postgresql-operator/pull/454.


Emmet doesn't clean up properly after disabling it

I've been having some issues with Emmet, most of them already reported, and I realized that when I try to disable the package some of them kept happening, see here:
https://discuss.atom.io/t/php-snippets-not-working/15321/7
I guess Emmet does not clean up as it should after being disabled.
Atom version: 0.187.0
Emmet version: 2.3.4

Emmet cleans itself the same as Atom’s snippets package: it creates named actions which, in turn, are invoked by Atom’s keybinding resolver.
If Emmet keybindings still exists in Atom after you disable package – then it’s Atom issue

Hi,
One of the Atom contributors and package developers thinks otherwise, have you checked the link I posted?

You can turn on Keybinding Resolver package and see what action/keybinding is invoked when you hit Tab key


semicolon

Hi, I really like what you did and we share the same opinion regarding libraries vs frameworks.
Why didn't you put semicolons ? :)
Which linter on sublime do you recommend?

eslint and it will be added very soon.
Because writing semicolons is mannerism - mindless routine practice without any real benefit.

I agreed with that, why https://github.com/steida/este/commit/c8a7a806366d3b3a7a1d7286177329a57e5efcd0 ?

Because endless bikeshedding. For my personal projects I am not using semicolons, but imagine I am presenting something really cool from Este.js on conference, and first question will be "Why no semicolons". I am bored to explain it all the time.


Create a File or Output of the Unused Css (stripped out code)

I submitted this to UnCSS tracker.
It would be awesome to return a file with the stripped out code or output it somehow somewhere. That would be way easier to see what got hacked out and comb through that to add to the ignore!  Is this currently possible?
Example:
File: unused.css
.not{color:#000}.another{display:block} etc...

Please use https://github.com/giakki/uncss/issues/49 for this. :smile:


Review pages for in-context language issues

Going through pages in context to see if translations make sense. Ready for review.

Ready for review. Also fixes #211 and #240.


Feature Request: Add support for CORS configuration

Context:
As kserve is moving to it's v2 api, it's defaulting the server images to ml-server. It looks like kserve and knative are pushing off adding CORS configurations on their CRDs due to complexity (https://github.com/knative/serving/issues/10040). The simplest way I have seen to get around that is adding an OPTIONS route and CORS options on the actual servers themselves.
Request
Add OPTIONS routes and the ability to apply runtime configuration for CORS on the MLServer

Fixed by #387


Default recording time for posting sensor data

This PR changes the default recording time for POSTing sensor data, from a zero horizon, to the time at which the data was received. This corresponds to our default for other POST endpoints.
One of the use cases behind this is that it allows users to send some historical data along with new data, to fill up potential data gaps, along with possible measurement corrections, without the trouble of calculating and communicating a horizon or prior field.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

7 of 9 (77.78%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.004%) to 70.564%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

flexmeasures/api/common/schemas/sensor_data.py
7
9
77.78%

Totals

Change from base Build<PHONE_NUMBER>:
-0.004%

Covered Lines:
6688

Relevant Lines:
9025

💛  - Coveralls


Variables missing from playbooks when normal user executes

https://github.com/AdoptOpenJDK/openjdk-infrastructure/blob/master/ansible/playbooks/AdoptOpenJDK_Unix_Playbook/group_vars/all/adoptopenjdk_variables.yml
Under Nagios variables, provider and ansible_port variables are missing when using a custom host list.

We should either:

have a check in there with a message to the user on how to add suitable ones
Default the values
Skip the sections (with a warning) if they are not set

3 should be possible with appropriate ansible flags - perhaps something like this (full list TBC)
 --skip-tags="install_zulu,jenkins_authorized_key,nagios_add_key,add_zeus_user_key,jenkins_user,security,build_tools_jfx"

Could also do with:

Option to NOT remove any system installed packages when we build others from source no_remove_system (Or I suppose cleanup_system since it's a --skip parameter)
Have separate build and test options across the playbooks so that noly the appropriate bits are installed

s/add_zeus_user_key/superuser/


ci: faster metadrive test

Currently, the test drives on barely 10 meters. We can do slightly better (13 meters) but in 30 seconds on a namespace runner

Reverted for now, it's pretty flaky


Incompatible with CSP

Short description of the problem:
Library injects a script inline into the html which makes it incompatible with Content Security Policies which do not allow unsafe-inline which are becoming more standard to prevent XSS attacks.
What behavior are you expecting?
This code should be injected into the bundle or a new script which can be loaded on its own, not injected inline into the html.
Steps to reproduce:

Create an ionic app scripts project
ionic build --prod
view built index.html

Example of what is injected:
  <script data-ionic="inject">
    (function(w){var i=w.Ionic=w.Ionic||{};i.version='3.9.2';i.angular='5.2.11';i.staticDir='build/';})(window);
  </script>

Which @ionic/app-scripts version are you using?
3.1.11
Other information: (e.g. stacktraces, related issues, suggestions how to fix, stackoverflow links, forum links, etc)
Appears this logic is initiated by postprocess which ultimately builds the script to inject here
Interestingly removing this script line manually appears to have no detrimental effect on the application, however we have found no way to keep it from being injected at deploy build time.

I also have same issue, and it causes PWA's to stop functioning. when a PWA is "installed" on android that contains this script call in the index.html, the PWA will not launch in 'standalone' mode.


Added test for acheck_password() to ensure make_password is called for unusable passwords.

Trac ticket number
CVE-2024-39329
Branch description
This is a follow up for the fix of CVE-2024-39329
(5d8645857936c142a3973694799c52165e2bdcdb) where the timing of verify_password()
was standardized when checking unusable passwords.
Checklist

[X] This PR targets the main branch.
[X] The commit message is written in past tense, mentions the ticket number, and ends with a period.
[X] I have added or updated relevant tests.

@sarahboyce Hi! This is the missing test we discussed after July's security release.

Lovely thank you ⭐

Thank you! :trophy:


ICD10 subset of MONDO?

Hello. I am trying to do a ICD10 -> MONDO mapping. It seems that a significant number of ICD10 codes are not covered under MONDO. I note that there are some purposely excluded ICD10 codes (as covered / documented in the FAQ here), but there are many that are on that list that have no mapping I'm aware of (ie. A40.1 Sepsis due to streptococcus, group B). There are also several examples where the "names" match perfectly but no ICD10 code or UMLs corresponding is listed (ie. epidemic louse-borne typhus). What is the best way to achieve that mapping, given that one should exist?
Using UMLs, I am achieving about a 20% mapping rate, but I feel like it should be a bit higher (not 100% due to the excluded terms, but def much higher than 20%).

@kara-liu
Mondo indeed integrates multiple external ontologies, but currently with a focus on rare disease.
We are mostly up to date with Orphanet, OMIM, Human Disease Ontology, GARD, soon MedGen. ICD10 is on our list, indeed, we have a pipeline and a timeline for this, but we have not updated ICD10 in a few years. Sorry about that!
Bridges between ICD10 and "normal" ontologies are always a bit painful. I am not sure which map is the most trustworthy right now that would allow you to bridge into Mondo! Sorry about that!

@matentzn Thank you so much for getting back to me! I am wondering if there is a comprehensive list of all ICD10 codes that are covered by MONDO (or equivalently, a list of all codes that are excluded but that contains more than the "excluded list" from the FAQ page). Mu

@matentzn Thank you so much for getting back to me! I am wondering if there is a comprehensive list of all ICD10 codes that are covered by MONDO (or equivalently, a list of all codes that are excluded but that contains more than the "excluded list" from the FAQ page). Mu

@kara-liu you can get them using SPARQL:
https://api.triplydb.com/s/z8zB21B2A
I provided some comments in the query, let me know if you need more help!

@matentzn This is amazing! Thank you so much.

Glad we could help!


[Bug]: Secret Ownership with multiple public keys not working using transactionBuilder.html

What happened?
Assuming https://github.com/archethic-foundation/archethic-node/issues/177 is fixed, using the example/transactionBuilder.html when I try to pass multiple public keys in ownership, I get the following error.

GraphQL request payload

On logging the variable authorizedKeys in previousSignaturePayload()
https://github.com/archethic-foundation/libjs/blob/88048f693d6c525fa1372f53c33cc659bf608792/lib/transaction_builder.js#L329-L334
Console output

What is expected ?
Should get 200 OK response and transaction should appear in ArchEthic explorer as well in GraphQL workspace.
This issue doesn't occur when single public key is sent.

Same things in dart SDK
this issue becomes blocking


v1.1.4

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (d4ec324) 90.21% compared to head (3676772) 90.21%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #33   +/-   ##
=======================================
  Coverage   90.21%   90.21%
=======================================
  Files          19       19
  Lines        2167     2167
=======================================
  Hits         1955     1955
  Misses        212      212

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


WIP - Add a weight kwarg to fit

When there are many fewer (recency, frequency, T) triplets than there are customers, weighting the likelihood terms instead of duplicating them can drastically speed up calculation (I've seen a 20x speedup on real-world ecomm data).
This is just a WIP to see how hard this is and gauge interest in this as a contribution.  I'll add it to all models and clean up the interface and implementation (when I have time) if there is interest.

hey @AustinRochford,
I'm very interested in this PR. I've been tinkering with a similar idea in my head for another project, so this is very relevant for me. Please continue! Can you show an example of the preprocessing of the raw customer summary data?

Awesome.
I'll see if I have some time to push this to a mergeable state over the holidays.  Will include a preprocessing example for sure.

This was added in a previous release - thanks for the inspiration @AustinRochford!


Run publish maven snapshots on all branches matching pattern

Description
Run publish maven snapshots on all branches matching pattern
To align with https://github.com/opensearch-project/OpenSearch/blob/main/.github/workflows/publish-maven-snapshots.yml#L6-L9
Issues Resolved
[List any issues this PR will resolve]
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

. is a wildcard in regex, is it same in this case?

. is a wildcard in regex, is it same in this case?

It is not wildcard in github workflow syntax, it is a literal character. See Filter Patterns


das: Implement DASState

Resolves #427 and https://github.com/celestiaorg/celestia-node/issues/869
TODO:

[x] Implement square width tracking of last sampled height
[x] IsRunning method

Endpoint documentation
GET /daser
Request
curl -X GET http://<ip>:26658/daser/state

Response
{"sample_routine":{"error":null,"is_running":true,"latest_sampled_height":104143,"latest_sampled_square_width":16},"catch_up_routine":{"start":"2022-07-07T15:01:25.747118+02:00","end":"0001-01-01T00:00:00Z","error":null,"id":1,"height":96247,"from":96162,"to":104142}}

Codecov Report

Merging #848 (806dd2e) into main (7f70b9b) will increase coverage by 0.14%.
The diff coverage is 89.04%.

:exclamation: Current head 806dd2e differs from pull request most recent head 1aca673. Consider uploading reports for the commit 1aca673 to get more accurate results

@@            Coverage Diff             @@
##             main     #848      +/-   ##
==========================================
+ Coverage   53.93%   54.08%   +0.14%
==========================================
  Files         122      123       +1
  Lines        6979     7141     +162
==========================================
+ Hits         3764     3862      +98
- Misses       2827     2894      +67
+ Partials      388      385       -3

Impacted Files
Coverage Δ

cmd/flags_core.go
45.65% <0.00%> (ø)

service/rpc/das.go
56.25% <56.25%> (ø)

das/daser.go
78.31% <100.00%> (+4.62%)
:arrow_up:

das/state.go
100.00% <100.00%> (ø)

node/components.go
90.24% <100.00%> (+1.20%)
:arrow_up:

node/rpc/component.go
100.00% <100.00%> (ø)

service/rpc/endpoints.go
100.00% <100.00%> (ø)

service/rpc/handler.go
100.00% <100.00%> (ø)

service/share/testing.go
82.78% <0.00%> (-17.22%)
:arrow_down:

service/state/core_access.go
19.54% <0.00%> (-8.80%)
:arrow_down:

... and 11 more

Continue to review full report at Codecov.

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

@renaynay, there is a race specifically in the test code

I've extracted some modifiers (indicateRunning, indicateStopped) into methods to not crowd the otherwise long function. I can undo that for consistency, or I can keep it to maintain a cleaner looking function (sample).
Re one public State, I think i'll just keep it separate for now, and if there is a reason for it later, we can provide a method that returns both at once.
WDYT @Wondertan ?
Also pushing the duration method to syncer rn

can undo that for consistency, or I can keep it to maintain a cleaner looking function (sample).

I am fine with the way it is right now. Consistency is important, but this is not the case where it is really important, e.g. by the following consistency in one place, you can brake it for another one.

Re one public State, I think i'll just keep it separate for now, and if there is a reason for it later, we can provide a method that returns both at once.

It's the other way around, though. There is no reason to keep em separated, but it's fine

However, I would also fix the defer usage as per Johns's comment. Either to use defer or not to use it consistently


UI very slow after changing filters

Describe the bug
After making changes to the Min. Quantity or the Min gal.Avg. fields, the application slows to a crawl. Clicking buttons (Next Commodity, Previous Commodity, etc.) take up to five seconds to process.
To Reproduce
Version: <IP_ADDRESS> .exe version
Steps to reproduce the behavior:

Open up the app
highlight the Min Quantity field
begin typing a new quantity
observe that it takes seconds for the input to register in the text field

Expected behavior
Instantaneous response to keyboard input
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Closing the app and restarting it resolves it temporarily

While you're typing, the tool constantly updates the trades for each input change. That's why typing seems so slow.
Is the tool still slow after you stopped typing? Or are the 'next' and 'previous' buttons as fast as before?

In v<IP_ADDRESS> the update now only occurs once you press enter.
If your typing-lag occurs again, please re-open this issue or create a new one to let me know


LM training ?

Dear Sir,
Greetings of the day. Sir in research paper these are two types LM training texts mentioned -1) tr+L and Te . Sir is this referring to the corpus by which we are building prefix tree ?  or something else. Thanks in Advance sir

Sir are we using whole IAM images data or just test set images data while testing the WBS algorithm ??


Awaiting client creation

Previously, the network manager was not waiting for the clients to be created.  This PR adds an awaits within the NetworkManager init process.

/release-note-none


"Use values as identifiers…" from the main reconciliation dialog

The "Use values as identifiers…" currently isn't available from the main reconciliation dialog. It decreases discovery of the feature and leads to some weird cases like when you add a new reconciliation service and then has to click "cancel" and go back into the menus to use the "Use values as identifiers…" option.
Proposed solution
Make the  "Use values as identifiers…" option available from the main reconciliation dialog.

@lozanaross "Use values as identifiers…" is not really reconciliation, it just allows you/OpenRefine to assume that the values in the column are all valid identifiers for entities in a reconcilation service target. So basically it does no lookup to check that the values are valid identifiers or exist in the service.
In cases where all the identifiers are correct and valid and exist, then the outcome from the users perspective would be the same as doing a reconciliation. But there are no checks on that. In the case where an identifier is incorrect (i.e. wrong identifier for the thing you are wishing to reconcile against) then you'd get a match to the wrong data. In the case where the identifier is invalid/doesn't exist in the remote service then it's going to create errors and unexpected behaviour

An example:

The root cause of this usability issue is the cognitive dissonance created by using a term, reconciliation, in a way that doesn't match the users' expectations.

We want to work on improving the user notifications here when they do use 'Use values as identifiers...' to understand that the process running is not like a proper reconciliation.

could you explain again what is the difference in the two processes, so we can think how to communicate in a simple way to users.

In my opinion, the correct fix is not a better explanation for this unexpected situation, but instead to restore the reconciliation operation that was originally part of this. When a user asks to reconcile by identifier, they should be asked to choose the keyspace / identifier space to match in. Matching is then done based on an exact identifier match. If the identifier has been updated (e.g. two entities with different identifiers got merged), the "winning" entity is matched. If the identifier is invalid, there is no match. In the Wikidata context, these identifiers would be sub-properties of https://www.wikidata.org/wiki/Q19847637 together with some special key spaces like the main Wikidata identifier space (Q number).
This is what used to happen and is exactly what the users expect to happen, rendering the need for an "explanation" moot.

But since we already have the Wikidata ID in the column, what's the advantage of looking them all up and going through the reconciliation process? This is time consuming and subject to human error. When there are many things to look up then it takes a long time just to do the lookups, never mind the decision of which values is correct for the reconciliation.

I don't understand where the possibility for human error arises here. The matching process is automatic and binary - it either matches or it doesn't. As for "long time," the lookup is trivial, if there's a performance problem, that's an engineering issue, not something that users (or designers) should have to deal with. Freebase could do blindingly fast identifier lookup of not only native Freebase identifiers, but numeric and alpha keys for arbitrary language Wikipedias, as well as NNDB, ISFDB, IMDB, MusicBrainz, and a whole host of other identifiers. That was 10 years ago and computers have only gotten faster since then.
Usability issues should be fixed, not papered over (in my opinion).

For me there are two issues here:

I agree we should support a validated, as fast as possible, identifier reconciliation
I believe there are situations - specifically where an external service does not offer direct reconciliation of identifiers, or that service cannot do at a reasonable speed -  that are better supported by a non-validated "Use values as identifiers ..."  process. I believe that this process should not be described as 'reconciliation' but should be presented in the UI in such as way that the user understands what this is doing and why they might be better using reconciliation instead

I don't disagree that it should be possible for validated identifier reconciliation to be fast, we don't have control over the external services and in cases where the user already knows they have valid identifiers, I think there should be an option to shortcut that process if the user chooses to as long as it is clear to them about the choice they are making. This would be helpful in situations where, for example:

The external service does not support direct reconciliation of a list of identifiers
The external service response to identifier lookups is too slow
The user has intermittent or unreliable internet access

In my opinion this "use values as identifiers" operation is currently only suitable for more advanced users who understand the risks and limitations, so I would be cautious about advertising it in the main recon dialog.
On the longer term, my goal is to make this operation unnecessary: if reconciliation runs in the background and users can keep working on the dataset before it completes (see the 4.0 branch) there is much less of a need for this.
To address @Abbe98's us ability issue one could perhaps also make it possible to add a new recon service from the dialog of the "use values as identifiers" operation.
@tfmorris concerning namespaces services I think the reason we dropped them is that we could not figure out how they worked and we were not aware of any running service that used this functionality. As a user I find the distinction between standard and namespaces services confusing, I want to have a single service that will let me do all the reconciliation I need against a given database. So I am in favour of adapting the recon dialog to cater for those needs with standard services.

I think having everything covered by a single dialog is greatly preferable to having identifier reconciliation off in a separate menu item like it is now. The important thing is to be able to restore the functionality of reconciling against identifiers.
Most of these things seem artificial to me:

The external service does not support direct reconciliation of a list of identifiers
The external service response to identifier lookups is too slow
The user has intermittent or unreliable internet access

If we're talking about the primary identifier (key) returned by the query service, they basically have to support it because that's what the entire service is built around and a user with no internet access isn't going to be able to use the reconciled identifiers (whether they obtained them using fake reconciliation or real reconciliation).


Is pip up to date?

I'm not seeing yadlt/models/rnn_models in pip.  How often does it get updated?
Thanks.

I've just updated the latest version to pypi :+1:


Disable drag to dismiss sheet?

Hello 👋🏻 ,
I was wondering if there is an option to disable the drag to dismiss option of a presented sheet: state.routes.presentSheet()?
Such option would be pretty awesome, maybe including it within the .presentSheet interface.

Hi!
Thanks for your question. No, there's no API in TCACoordinators for that. Normally, you would add .interactiveDismissDisabled() to the view itself - is there a reason that wouldn't work for your use case? I suppose if you wanted to be able to turn it on or off at the point of presentation, you could include it in the screen's state?

Thanks for the reply. I forgot about that option, thanks for the hint. Indeed I can include it within the State and tweak it based on some Actions. 🙏🏻🤩


Cacheable's railtie references a middleware class from Shopify

https://github.com/Shopify/cacheable/blob/master/lib/cacheable/railtie.rb#L5

Fixed by #22


Line joints optimizations

I know it can't be merged right now.
A lot of memory savings with some better runtime performance.
WIP because there might be more in there somewhere.

On mobile atm but I think this needs a rebase?

On 20 Aug 2020, at 19:05, Dániel Buga<EMAIL_ADDRESS>wrote:

I know it can't be merged right now.
A lot of memory savings with some better runtime performance.
You can view, comment on, or merge this pull request online at:
https://github.com/jamwaffles/embedded-graphics/pull/436
Commit Summary
Example skeleton
Add line segment intersection method and demo
Calculate intersection for whole lines
Crude way of getting thick line corners
Draw intersection points
Messy impl of joint triangulation
Fix is_on_segments flag
Add degeneracy check
Degenerate case line caps
Make length_square return a scalar value
Fix test
Make Side enum pub
Better miter/bevel cap logic
Simplify extents calculation
Actual check for too long miter length
Non-horizontal fixed line
Hush, clippy
Cleanup
Draw a whole triangle
Simplify/optimise left/right code
Rename to be clearer
Add disabled, testing degenerate triangulation
Use inside/outside for degenerate bevel
Different triangle colours for different modes
Add method to compute corner type
Tidy up code with joint type struct
Move some computation into Line
Add method to get triangle sorted CW
Add janky stroke alignment for thick triangle
Simplify corner algorithm
Add method to get triangle centroid
Change name from Colinear to Parallel
Add triangle "collapsing" for filled tris
Simplify line extents function
Clarify same-signs comparison
Optimise line side calculations
Draw filled triangle inside
REVERTME: Add some test benchmarks
Remove TODO - gonna need it for polylines
Experiment with non-scanline triangle iterator
Extract joint into LineJoint struct
Cleanup
More accurately calculate distance to center
Rename test demos so I can add polyline one
Draw polyline skeleton
Very crude thick polyline
Stretch pattern out a bit
Draw final thick segment
Clarify side flag
Fix left/right bevels
Draw joint fillers on polylines
Fix line intersection demo
Standardise on non-overdrawing rendering
Convert polyline test code into iterator
Comment out failing test
Split triangle iterator into own type
Move thick polyline iterator into lib
Weird
fixup! Move thick polyline iterator into lib
Convert triangle demo into iterator
Move thick triangle iterator into crate
Add benches for thick triangle/polyline
Improve triangle contains point algorithm
Add area() method to Size struct
Add very crude overdraw debugger display
Add thick line self-intersection debugger
Add wireframe debugger
Fix polyline overdraw
Correct filler triangle for degenerate right turns
Debugging some stuff
Add failed float-based experiment
Fix missing/overdrawn pixels on degenerate cap
Basic/crappy trapezium debugger
Add method to get segment intersection point
Add single test scanline fill for trapezium shape
Use scanline iterator in mathematical points
Revert "Use scanline iterator in mathematical points"
Fix missing pixels on one side of line
Clean up thick triangle demo
Fix equal intersections at node on trapezium
Clarify some behaviour in line intersection method
Add option to ignore intersection at end of self
Revert "Add option to ignore intersection at end of self"
Correct trapezium scanlines
Add scanline-based trapezium iterator
Typo
Add TrapzeiumIterator (doesn't work)
Revert "Add TrapzeiumIterator (doesn't work)"
Port better extents algorithm from #431
Avoid walking the edge of the triangle if point is outside bounding box
Reuse vector length for lines
Clean up in ParallelsIterator
Small dedup
Fix formatting
Check points in previous triangle
Avoid recursion
Use a (broken) scanline iterator
Format, add tests
Better test with debuggable output
Add a failing test case
Fix some issues
Use same test for scanline iterator, run cargo fmt
Clean up, make test meaningful
[inefficient] no missing pixels
So close, yet so far away
Fix rendering artifact
Fix formatting
Fix failed test
[Heavy] solution to remaining overdraw issue
Some cleanup
No need to store filler
Remove unnecessary check
No need to calculate miter length for degenerate lines
Don't check overlapping points
Oops
Save some memory
Cleanup & save some more memory
Doc comments
Just use empty triangles
32 more bytes
Remove unused impl
Update embedded-graphics/src/primitives/triangle/mod.rs
Oops
Remove outdated comments & cleanup
Only return in a single place
Formatting
Adjust comment
Deduplicate line intersection
Clean up scanline iterator
Optimize triangle::contains
Use optimized horizontal line iterator
Only check triangles if last joint was beveled
Add no-overdraw test
Fix an overdraw issue
Add IntellijJ IDEA folder to gitignore (#433)
Clean up Triangle::contains
Add test cases for triangle contains
Add test case where new contains fails
Format
Add one more failing test
Fix a Triangle::contains bug
Revert "Only check triangles if last joint was beveled"
Fix scanline iterator sometimes not generating points of the triange
Don't generate colinear triangles
Revert mock display change
Update test names and formatting
Ignore test case
Uncomment (and ignore) test case
Fix and unignore regression tests
Secound -> second
Clean up modified triangle code
Cleanups, comments
Reorder points so the third one is always the new one
Don't store the filler triangle in memory
Use a point fifo to optimize memory usage
Only look back when necessary at the triangles that are necessary
File Changes
M .gitignore (1)
M embedded-graphics/src/geometry/size.rs (5)
M embedded-graphics/src/lib.rs (2)
M embedded-graphics/src/primitives/line/bresenham.rs (2)
M embedded-graphics/src/primitives/line/mod.rs (214)
M embedded-graphics/src/primitives/line/points.rs (5)
M embedded-graphics/src/primitives/line/thick_points.rs (18)
A embedded-graphics/src/primitives/line_joint.rs (296)
M embedded-graphics/src/primitives/mod.rs (1)
M embedded-graphics/src/primitives/polyline/mod.rs (2)
M embedded-graphics/src/primitives/polyline/styled.rs (47)
A embedded-graphics/src/primitives/polyline/thick_points.rs (146)
A embedded-graphics/src/primitives/polyline/triangle_iterator.rs (190)
A embedded-graphics/src/primitives/triangle/fill_scanline_iterator.rs (324)
A embedded-graphics/src/primitives/triangle/mathematical_points.rs (80)
M embedded-graphics/src/primitives/triangle/mod.rs (281)
M embedded-graphics/src/primitives/triangle/points.rs (8)
M embedded-graphics/src/primitives/triangle/scanline_iterator.rs (54)
M embedded-graphics/src/primitives/triangle/styled.rs (34)
A embedded-graphics/src/primitives/triangle/thick_points.rs (89)
A embedded-graphics/src/primitives/triangle/triangle_iterator.rs (215)
M embedded-graphics/src/style/primitive_style.rs (3)
M simulator/Cargo.toml (7)
A simulator/benches/line.rs (14)
M simulator/benches/primitives.rs (34)
A simulator/benches/sort.rs (218)
A simulator/examples/line-intersection.rs (98)
A simulator/examples/polyline-joints.rs (172)
A simulator/examples/thick-line-intersection.rs (129)
A simulator/examples/thick-triangle.rs (217)
A simulator/examples/trapezium.rs (369)
M simulator/src/lib.rs (2)
A simulator/src/overdraw_display.rs (90)
Patch Links:
https://github.com/jamwaffles/embedded-graphics/pull/436.patch
https://github.com/jamwaffles/embedded-graphics/pull/436.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Yes, I'm postponing that until the main branch is fixed.

This is rather messy... I've modified the scanline iterator to be able to skip generating points for edges, and also created a stateful tessellator to avoid calculating each parallel line segment twice. There's still a lot of cleanup to do, also some code arrangement (i.e. I should probably split up the scanline iterator into a simple variant for returning points when nothing is ignored...), but the performance is... interesting :) I think the benchmark is not good enough, there should be more tricky joints in there other than miters.

I'm going to close this now as #386 went in a different direction. I'd definitely appreciate any performance gains on the impl in that PR though! It's pretty complex and slow.
Thanks for contributing to the first attempt at thick polylines!

My pleasure. Glad you found a neater solution :)


[Snyk] [DO NOT MERGE] Upgrade org.graalvm.sdk:graal-sdk from 23.0.3 to 23.1.2

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade org.graalvm.sdk:graal-sdk from 23.0.3 to 23.1.2.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 3 versions ahead of your current version.
The recommended version was released a month ago, on 2024-01-15.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

handled in a different commit


FOR-464 - Fixing issue with auto suffixing keys. Updating duplicate keys to sta…

…rt at 2 rather than 1.
Closes: https://github.com/formio/ngFormBuilder/issues/259
Fixes issues:

Component keys are always suffixed with a 1
Dragging a component modifies the key
Dragging a component opens the configuration modal.

@AbdallaMohamed see: https://github.com/formio/ngFormBuilder/pull/261/commits/69c73b070b3b7e691a88973c72a67d607995a770
😭  that was an annoying red herring which caused some of these regressions

Any updates on when this is going to be merged?
@zackurben


ps4eye: 0.0.4-0 in 'kinetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository ps4eye to 0.0.4-0:

upstream repository: https://github.com/longjie/ps4eye.git
release repository: https://github.com/tork-a/ps4eye-release.git
distro file: kinetic/distribution.yaml
bloom version: 0.5.25
previous version for package: null

ps4eye
* Fix create_udev_rules option. Change README.md.
* Add udev install script.
* Automatically loading firmware.
* all need is to run create_udev_rules script.
* add viewer argment to stereo.launch. Set true to bring up stereo viewer.
* Add ps4eye/ps4eye files and update README.md contents.
* using  to nodelet manager name
* use gscam nodelet instead of gscam node
* use load_driver, instead of setting DEVICE false to check use real camera
* Contributors: Hiroaki Yaguchi, Ron Tajima

See https://discourse.ros.org/t/releasing-repositories-form-other-people/1797/10


[Bug] PerFrameFunctionalGroup Null Check Missing Causes Some Studies To Not Load

Describe the Bug
When a study has a null value nested inside the PerFrameFunctionalGroup tag, it isn't handled properly, preventing the study from being displayed. A null in check in core/utils/combineFrameInstance.ts can fix the issue.
Steps to Reproduce

Try to load a study with a null value inside the PerFrameFunctionalGroup tag. I've logged the PerFrameFunctionalGroup of my study in the console (value 4 is null):

The current behavior
The study won't load, here is the error from the above study:

The expected behavior
The code should ignore the null value and load the study. I have tested that adding an extra null check in combineFrameInstance.ts will fix this issue. Something like:
const perFrame = (PerFrameFunctionalGroupsSequence       ? Object.values(PerFrameFunctionalGroupsSequence[frameNumber - 1])       : []     )       .map(it => {         if (it == null) {           return undefined;         }         return it[0];       })       .filter(it => it !== undefined && typeof it === 'object');
I'd be happy to make a PR for this fix, if this is something the community would like.
OS
Windows 10
Node version
v16.17.0
Browser
Version 113.0.5672.127 (Official Build) (64-bit)

@Michael-Andersen
We faced the same issue. Like you have mentioned adding null checked worked for us.
We added null check for both
const shared and const perFrame

@Michael-Andersen thanks for reporting this. Would it be possible for you to provide an anonymized DICOM file(s) that demonstrates the problem.


Error after placing DevTools component in React TS

  const form = useForm({
    resolver: yupResolver(Yup.object(filterSchema).required()),
    defaultValues: filter,
  });
  const {
    register,
    handleSubmit,
    reset,
    getValues,
    watch,
    setValue,
    setFocus,
    control,
  } = form;

  return (
       <>
            <FormContainer>
                <DevTool control={control} />
           </FormContainer>
      </>
  );

This is my code. I am trying to use DevTools but it is throwing this error
index.cjs.development.js:194 Uncaught TypeError: updateFormState is not a function
at shouldRenderFormState (index.cjs.development.js:194:1)
at Object.next (index.cjs.development.js:278:1)
at Object.next (index.esm.mjs:873:1)
at reset (index.esm.mjs:2062:1)
at index.tsx:141:5
at invokePassiveEffectCreate (react-dom.development.js:23487:1)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1)
at invokeGuardedCallback (react-dom.development.js:4056:1)
at flushPassiveEffectsImpl
Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function.
If I remove the DevTools component, then it runs fine. Can someone please help me..

I am getting a similar but different error
Unhandled Runtime Error
TypeError: Cannot read properties of undefined (reading 'subscribe')

Call Stack
eval
<EMAIL_ADDRESS>(184:0)
commitHookEffectListMount
node_modules/react-dom/cjs/react-dom.development.js (23150:0)
commitPassiveMountOnFiber
node_modules/react-dom/cjs/react-dom.development.js (24926:0)
commitPassiveMountEffects_complete
webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js (24886:9)
commitPassiveMountEffects_begin
webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js (24873:7)
commitPassiveMountEffects
webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js (24861:3)
flushPassiveEffectsImpl
webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js (27034:3)
flushPassiveEffects
webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js (26979:14)
performSyncWorkOnRoot
webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js (26071:3)
flushSyncCallbacks
webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js (12042:22)
commitRootImpl
webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js (26954:3)
commitRoot
webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js (26677:5)
finishConcurrentRender
webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js (25976:9)
performConcurrentWorkOnRoot
webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js (25804:7)
workLoop
webpack-internal:///./node_modules/scheduler/cjs/scheduler.development.js (266:34)
flushWork
webpack-internal:///./node_modules/scheduler/cjs/scheduler.development.js (239:14)
MessagePort.performWorkUntilDeadline
webpack-internal:///./node_modules/scheduler/cjs/scheduler.development.js (533:21)

Nope

I also get errors when combined with YUP:
yup.js?v=f0f60f4d:849 Uncaught (in promise) TypeError: The value of field could not be cast to a value that satisfies the schema type: "date".

attempted value: [
  "undefined"
]
result of cast: Invalid Date

And I do not even have a "date" field in my form.


FORTECH-64 Add silicon styles for Slider

Feature Added
Added silicon styles for Slider
Enact-DCO-1.0-Signed-off-by: Daniel Stoian<EMAIL_ADDRESS>

Hello @daniel-stoian-lgp
Did you see the following screenshot? The enlarged knob is clipped in the sampler.


Changing external proxy for whitelist proxy

External proxy goes to the public internet before coming back to Jira.  By using the whitelist proxy, we can hit the jira API directly within our VPC which also means it's not blocked by atlassian's ip allowlist.

I'd like to test this first with a Jira site that has an IP allowlist configured. Do we even have a problem with IP allowlists in Jira currently? If yes, and this solves this, and the GitHub IP allowlist still works the same, then let's merge it.

I've deployed this to staging and confirmed that the whitelist proxy is working as intended.


Correct minor mispelling

Found a misspelling and corrected it.

CC: @jirik @MartinMikita @lukasmartinelli  Please merge a tiny fix... or you can add me to this repo too so I can do these minor things myself without pinging.

@normanhh3  this (and a few other) changes have been merged into the fork at https://github.com/sophox/import-osm and published as sophox/import-osm:1.0 docker container.
You may also need to apply https://github.com/openmaptiles/openmaptiles/pull/675 -- seems like with the new imposm some new data has made it into the tables, thus exposing an SQL error.