Image.network throws uncaught exception when providing valid url without an image

Summary:
I don't know why I can't catch Image.network exceptions. If I give Image.network an invalid URL, the errorBuilder kicks in, that's good but if I give it a valid URL with 404 response or non-image data, errorBuilder() doesn't seem to do anything. The app pauses because of the uncaught exception.
Details:
I made a new app with flutter create bug, this is my main.dart:
For the first test, I give it an invalid URL (AAABBBCCC)
This one works as expected. errorBuilder() is called and 'N/A' is printed on the screen.
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Network Image',
            ),
            MyImage(),
          ],
        ),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

class MyImage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    try {
      return Image.network(
        'AAABBBCCC', //url,
        errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) {
          return Text('N/A');
        },
      );
    } catch (e) {
      print(e.toString());
    }

    return Container();
  }
}

Now a valid URL but with 404 response: (https://example.com/nothing)
class MyImage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    try {
      return Image.network(
        'https://example.com/nothing', //url,
        errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) {
          return Text('N/A');
        },
      );
    } catch (e) {
      print(e.toString());
    }

    return Container();
  }
}

For the last try, a valid URL with data but invalid image data: (https://google.com/)
class MyImage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    try {
      return Image.network(
        'https://google.com/', //url,
        errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) {
          return Text('N/A');
        },
      );
    } catch (e) {
      print(e.toString());
    }

    return Container();
  }
}

As you can see the app is pausing due to uncaught exceptions.
I've also tried FadeInImage() and CachedNetworkImage(), they both act the same as Image.network().
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, 2.2.0-10.2.pre, on Microsoft Windows [Version 10.0.19041.928], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[√] Chrome - develop for the web
[√] Android Studio (version 4.1.0)
[√] Android Studio
[√] Connected device (3 available)

• No issues found!

Hi @asmith20002
Thanks for filing the issue!
I can reproduce the issue, If I'm mistaken your expected result is errorBuilder catching this instead of throwing uncaught exception

code sample
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Network Image',
            ),
            MyImage(),
          ],
        ),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

class MyImage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    try {
      return Image.network(
        'https://google.com/', //url,
        errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) {
          return Text('N/A');
        },
      );
    } catch (e) {
      print(e.toString());
    }

    return Container();
  }
}

Reproduced on the following channels

stable
beta
dev
master

✅
✅
✅
✅

Check flutter doctor -v outputs for each channel below

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.6, on Microsoft Windows [Version 10.0.19042.928], locale en-US)
    • Flutter version 2.0.6 at C:\Users\Taha\Code\flutter_stable
    • Framework revision 1d9032c7e1 (6 days ago), 2021-04-29 17:37:58 -0700
    • Engine revision 05e680e202
    • Dart version 2.12.3

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\Taha\Code\SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = C:\Users\Taha\Code\SDK
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.

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

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.4)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.9.31205.134
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)

[✓] IntelliJ IDEA Community Edition (version 2021.1)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.3
    • 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

[✓] VS Code (version 1.56.0)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.22.0

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile) • def0ad20 • android-arm64  • Android 10 (API 29)
    • Windows (desktop)      • windows  • windows-x64    • Microsoft Windows [Version 10.0.19042.928]
    • Chrome (web)           • chrome   • web-javascript • Google Chrome 90.0.4430.93
    • Edge (web)             • edge     • web-javascript • Microsoft Edge 90.0.818.51

! Doctor found issues in 1 category.

[✓] Flutter (Channel beta, 2.2.0-10.2.pre, on Microsoft Windows [Version 10.0.19042.928], locale en-US)
    • Flutter version 2.2.0-10.2.pre at C:\Users\Taha\Code\flutter_beta
    • Framework revision b5017bf8de (7 days ago), 2021-04-28 17:09:53 -0700
    • Engine revision 91ed51e05c
    • Dart version 2.13.0 (build 2.13.0-211.13.beta)

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\Taha\Code\SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = C:\Users\Taha\Code\SDK
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.

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

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.4)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.9.31205.134
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)

[✓] IntelliJ IDEA Community Edition (version 2021.1)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.3
    • 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

[✓] VS Code (version 1.56.0)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.22.0

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile) • def0ad20 • android-arm64  • Android 10 (API 29)
    • Windows (desktop)      • windows  • windows-x64    • Microsoft Windows [Version 10.0.19042.928]
    • Chrome (web)           • chrome   • web-javascript • Google Chrome 90.0.4430.93
    • Edge (web)             • edge     • web-javascript • Microsoft Edge 90.0.818.51

! Doctor found issues in 1 category.

[✓] Flutter (Channel dev, 2.3.0-0.1.pre, on Microsoft Windows [Version 10.0.19042.928], locale en-US)
    • Flutter version 2.3.0-0.1.pre at C:\Users\Taha\Code\flutter_dev
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d72bfb8d07 (10 days ago), 2021-04-26 06:05:55 -0700
    • Engine revision de6e1adf97
    • Dart version 2.14.0 (build 2.14.0-18.0.dev)

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\Taha\Code\SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = C:\Users\Taha\Code\SDK
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.

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

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.4)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.9.31205.134
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)

[✓] IntelliJ IDEA Community Edition (version 2021.1)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.3
    • 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

[✓] VS Code (version 1.56.0)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.22.0

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile) • def0ad20 • android-arm64  • Android 10 (API 29)
    • Windows (desktop)      • windows  • windows-x64    • Microsoft Windows [Version 10.0.19042.928]
    • Chrome (web)           • chrome   • web-javascript • Google Chrome 90.0.4430.93
    • Edge (web)             • edge     • web-javascript • Microsoft Edge 90.0.818.51

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 2.3.0-1.0.pre.229, on Microsoft Windows [Version 10.0.19042.928], locale en-US)
    • Flutter version 2.3.0-1.0.pre.229 at C:\Users\Taha\Code\flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 14d5eab43c (5 hours ago), 2021-05-05 21:51:53 -0700
    • Engine revision 378e4dbc41
    • Dart version 2.14.0 (build 2.14.0-48.0.dev)

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\Taha\Code\SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = C:\Users\Taha\Code\SDK
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.

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

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.4)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.9.31205.134
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)

[✓] IntelliJ IDEA Community Edition (version 2021.1)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.3
    • 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

[✓] VS Code (version 1.56.0)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.22.0

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile) • def0ad20 • android-arm64  • Android 10 (API 29)
    • Windows (desktop)      • windows  • windows-x64    • Microsoft Windows [Version 10.0.19042.928]
    • Chrome (web)           • chrome   • web-javascript • Google Chrome 90.0.4430.93
    • Edge (web)             • edge     • web-javascript • Microsoft Edge 90.0.818.51

! Doctor found issues in 1 category.

I ran into this issue as well. I can't offer a solution, but I did find a workaround:
http-get manually and pass that to a future-builder:
var response = http.get(url);

FutureBuilder(
    future: response,
    builder: (BuildContext context, AsyncSnapshot<Response> snapshot) {
        if (snapshot.hasData) {
            if (snapshot.data.statusCode == 200) {
                return FadeInImage(
                    placeholder: MemoryImage(kTransparentImage),
                    image: MemoryImage(snapshot.data.bodyBytes),
                );
            }
            return FadeInImage(
                placeholder: MemoryImage(kTransparentImage),
                image: ErrorImageHere(),
            );
        }
        return CircularProgressIndicator();
    },
);

I haven't tried CachedNetworkImage or Image.network, but I'm fairly confident they will work with this workaround as well, since the URL is "validated manually"

@cherrysrc Thanks for your attempt but you have left out one more issue:
A valid URL with 200 statusCode but with invalid image data. E.g. https://google.com
Anyway this is a bug that needs to be fixed. Workarounds doesn't work for all of us.

I would like to help on this issue,  @asmith20002 could try launching you code in Run mode and confirm that errorBuilder
is called when using https://google.com or https://example.com/nothing url ?
I ask this to narrow down this issue, it looks like your point is not that errorBuilder doesn't work but that the debugging experience is not consistent when Uncaught exceptions is checked.

@asmith20002 having the same issue. Did you solve the issue or did you find an "easy" fix?

As of now, Flutter 3.3.1 the bug is still there, untouched and the code provided in the first post produces the same behavior.
@bleroux all my attempts has been in Run mode. I cannot catch the error neither with errorBuilder nor with manual try catch method.
@smiLLe for this issue unfortunately I usually go with Run without debugging or CTRL + F5 in VS code. You can manually fetch the URL yourself and verify if it contains the image data you were hoping for or not. You can also use packages that does not go the same route as fluter network image. E.g. NetworkImageWithRetry function from flutter_image. (doesn't support animated GIF images but works fine on JPG and PNG)
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.3.1, on Microsoft Windows [Version 10.0.22000.978], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.1.5)
[√] Android Studio (version 2021.2)
[√] VS Code, 64-bit edition (version 1.71.2)
[√] Connected device (3 available)
[√] HTTP Host Availability

• No issues found!

@bleroux my bad. errorBuilder DOES work but the app throws uncaught exception anyway and forces it to pause.  There's no way to catch that exception.

I am able to reproduce this issue on the latest master and stable channels. The errorBuilder works but there is an error logged.
iOS
Log
E/FlutterJNI(17944): Failed to decode image
E/FlutterJNI(17944): android.graphics.ImageDecoder$DecodeException: Failed to create image decoder with message 'unimplemented'Input contained an error.
E/FlutterJNI(17944):    at android.graphics.ImageDecoder.nCreate(Native Method)
E/FlutterJNI(17944):    at android.graphics.ImageDecoder.access$200(ImageDecoder.java:173)
E/FlutterJNI(17944):    at android.graphics.ImageDecoder$ByteBufferSource.createImageDecoder(ImageDecoder.java:250)
E/FlutterJNI(17944):    at android.graphics.ImageDecoder.decodeBitmapImpl(ImageDecoder.java:1862)
E/FlutterJNI(17944):    at android.graphics.ImageDecoder.decodeBitmap(ImageDecoder.java:1855)
E/FlutterJNI(17944):    at io.flutter.embedding.engine.FlutterJNI.decodeImage(FlutterJNI.java:538)

  flutter doctor -v
[✓] Flutter (Channel master, 3.11.0-2.0.pre.55, on macOS 13.3 22E252 darwin-arm64, locale en-NG)
    • Flutter version 3.11.0-2.0.pre.55 on channel master at /Users/dammya/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 835b892d7f (2 days ago), 2023-05-07 01:30:22 +0530
    • Engine revision 23f730efbf
    • Dart version 3.1.0 (build 3.1.0-83.0.dev)
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/dammya/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • ANDROID_HOME = /Users/dammya/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • 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.3

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

[✓] Android Studio (version 2021.2)
    • 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.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.3.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

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

[✓] VS Code (version 1.78.0)
    • VS Code at /Users/dammya/.Trash/Visual Studio Code 20.07.05.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (4 available)
    • sdk gphone arm64 (mobile)  • emulator-5554                        • android-arm64  • Android 11 (API 30) (emulator)
    • iPhone 14 Pro Max (mobile) • D7F3302D-D66F-4B89-B8CF-DBEE1CDB5449 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)            • macos                                • darwin-arm64   • macOS 13.3 22E252 darwin-arm64
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 112.0.5615.137

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

• No issues found!

[✓] Flutter (Channel stable, 3.7.12, on macOS 13.3 22E252 darwin-arm64, locale
    en-NG)
    • Flutter version 3.7.12 on channel stable at /Users/dammya/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4d9e56e694 (3 weeks ago), 2023-04-17 21:47:46 -0400
    • Engine revision 1a65d409c7
    • Dart version 2.19.6
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version
    32.1.0-rc1)
    • Android SDK at /Users/dammya/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • ANDROID_HOME = /Users/dammya/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      11.0.12+0-b1504.28-7817840)
    • 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.3

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

[✓] Android Studio (version 2021.2)
    • 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.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2022.3.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

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

[✓] VS Code (version 1.78.0)
    • VS Code at /Users/dammya/.Trash/Visual Studio Code 20.07.05.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (4 available)
    • sdk gphone arm64 (mobile)  • emulator-5554                        •
      android-arm64  • Android 11 (API 30) (emulator)
    • iPhone 14 Pro Max (mobile) • D7F3302D-D66F-4B89-B8CF-DBEE1CDB5449 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)            • macos                                •
      darwin-arm64   • macOS 13.3 22E252 darwin-arm64
    • Chrome (web)               • chrome                               •
      web-javascript • Google Chrome 112.0.5615.137

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

• No issues found!

flutter doctor
Flutter assets will be downloaded from https://mirror.sjtu.edu.cn/. Make sure you trust this source!
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.13.0, on Microsoft Windows [版本 10.0.19045.3086], locale zh-CN)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[√] Chrome - develop for the web
[X] Visual Studio - develop Windows apps
X Visual Studio not installed; this is necessary to develop Windows apps.
Download at https://visualstudio.microsoft.com/downloads/.
Please install the "Desktop development with C++" workload, including all of its default components
[√] Android Studio (version 2022.3)
[√] IntelliJ IDEA Ultimate Edition (version 2023.1)
[√] Connected device (4 available)

Can not work, till now.

Checking if there are any updates on this? The code works fine using the errorBuilder for Image.network() but my Firebase Crashlytics is getting flooded with issues because of the exception that is still being thrown.

@TahaTesser I've looked into this a bit. I've tracked it down to this piece of code in ./flutter/lib/src/painting/image_stream.dart:
  MultiFrameImageStreamCompleter({
    required Future<ui.Codec> codec,
    required double scale,
    String? debugLabel,
    Stream<ImageChunkEvent>? chunkEvents,
    InformationCollector? informationCollector,
  }) : _informationCollector = informationCollector,
       _scale = scale {
    this.debugLabel = debugLabel;
    codec.then<void>(_handleCodecReady, onError: (Object error, StackTrace stack) {
      reportError(
        context: ErrorDescription('resolving an image codec'),
        exception: error,
        stack: stack,
        informationCollector: informationCollector,
        silent: true,
      );
    });

This constructor is called from multiple places in ./flutter/lib/src/painting/_network_image_io.dart. The codec Future used in that file is always _loadAsync, which actually attempts the network fetch of the image URL.
Here's the important part:
Changing it from using then(..., onError) to then().catchError() resolves the "uncaught exceptions":
MultiFrameImageStreamCompleter({
    required Future<ui.Codec> codec,
    required double scale,
    String? debugLabel,
    Stream<ImageChunkEvent>? chunkEvents,
    InformationCollector? informationCollector,
  }) : _informationCollector = informationCollector,
       _scale = scale {
    this.debugLabel = debugLabel;
    codec.then<void>(_handleCodecReady)
    .catchError((Object error, StackTrace stack) {
      reportError(
        context: ErrorDescription('resolving an image codec'),
        exception: error,
        stack: stack,
        informationCollector: informationCollector,
        silent: true,
      );
    });

I believe the root of the problem is described here: https://dart.dev/guides/libraries/futures-error-handling#potential-problem-accidentally-mixing-synchronous-and-asynchronous-errors
Since _loadAsync is an async method, but MultiFrameImageStreamCompleter's constructor is a synchronous method using Future's then etc, maybe some edge-case behavior is the result.

same error, please help :)

Checking if there are any updates on this? The code works fine using the errorBuilder for Image.network() but my Firebase Crashlytics is getting flooded with issues because of the exception that is still being thrown.

@LampeMW I have the same problem, but while the Flutter team fixes the problem I found a solution to not log those errors in Crashlytics.
FlutterError.onError = (errorDetails) {     if (errorDetails.exception         .toString()         .contains('HTTP request failed, statusCode:')) {       return;     }     FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);   };

A fix for https://github.com/flutter/flutter/issues/141882 recently landed and is available on the master channel.
It would be interesting to know if it solves this issue.

I created this CustomNetworkImage as a workaround. Instead of allowing the codec to throw an exception it simply replaces the bytes with a local asset if the response statusCode is not 200. Hope this helps others.
import 'dart:async';
import 'dart:ui' as ui;

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:http/http.dart';

class CustomNetworkImage extends ImageProvider<Uri> {
  static final Client _client = Client();
  static const List<int> defaultSuccessCodes = [200];

  final String url;
  final Map<String, String> headers;
  final String errorAssetPath;
  final List<int> successCodes;

  const CustomNetworkImage(this.url, {
    required this.headers,
    required this.errorAssetPath,
    this.successCodes = CustomNetworkImage.defaultSuccessCodes,
  });

  @override
  Future<Uri> obtainKey(ImageConfiguration configuration) {
    final Uri result = Uri.parse(url);
    return SynchronousFuture<Uri>(result);
  }

  @override
  ImageStreamCompleter loadImage(Uri key, ImageDecoderCallback decode) {
    final Request request = Request("get", key);
    request.headers.addAll(headers);

    return MultiFrameImageStreamCompleter(
      codec: _client.send(request)
        .then((value) {
          if(successCodes.contains(value.statusCode)){
            return value.stream.toBytes();
          }else{
            return rootBundle
                .load(errorAssetPath)
                .then((value) => value.buffer.asUint8List());
          }
        })
        .then<ui.ImmutableBuffer>(ui.ImmutableBuffer.fromUint8List)
        .then<ui.Codec>(decode),
      chunkEvents: StreamController<ImageChunkEvent>().stream,
      scale: 1.0,
      debugLabel: '"key"',
      informationCollector: () => <DiagnosticsNode>[
        DiagnosticsProperty<ImageProvider>('Image provider', this),
        DiagnosticsProperty<Uri>('URL', key),
      ],
    );
  }

  @override
  String toString() => '${objectRuntimeType(this, 'CustomNetworkImage')}("$url")';
}

Same error(

Still facing the same error, is this fixed?

Facing the same error, is there any chance to be fixed?


Support for Redis with Authentication/Password

My org only deploys PaaS-y instances of Redis, specifically Azure Cache for Redis and I'd like to be able to use an instance from that service to support Refinery.
This would require the ability to specify a password and to require TLS/SSL. I'll poke around to see if I can assist but it felt useful to open an issue first.

@blackbaud-brandonstirnaman thanks for the Issue. This unfortunately isn't on our immediate roadmap, but we would be happy to look at a PR if you feel up to tackling this yourself — definitely feel free to ask us in Pollinators #discuss-refinery-beta if you have questions about implementation.

This is similar to https://github.com/honeycombio/refinery/issues/103 🙂  I focused on TLS in that issue, but mentioned passwords too.

A member of my team contributed this functionality. Closing!


Make notebooks with Friswell examples

I think we should take Friswell examples and exercises and reproduce them with ross.
These notebooks can be added as part of the documentation.

[x] Example 5.8.1
[x] Example 5.8.2
[x] Example 5.9.1
[x] Example 5.9.2
[x] Example 5.9.4
[x] Example 5.9.5
[x] Example 5.9.6
[x] Example 5.9.7
[ ] Example 5.9.8
[x] Example 5.9.9
[x] Example 5.9.10
[ ] Example 6.2.1
[ ] Example 6.2.2
[ ] Example 6.2.3
[ ] Example 6.3.1
[ ] Example 6.3.2

With the current state of the code, we can't make some of these examples, here is a list of them:

Example 5.9.8 (4 pole machine)
Example 6.2.1(mass eccentricity)
Example 6.2.2(disk is misaligned with the axis of the shaft by 1°)
Example 6.3.2(Bent shaft)
Example 6.3.1(Out-of-balance disk)

Besides that, I've read again the Example 6.2.3(Unbalance response) and I think this one can be made.

I'm closing this issue since we don't have interest in making the example 6.2.3 right now.


[Question]starttime and endtime format json

Good morning,
I have a question. Why in the output payload, the starttime and the endtime is from a timestamp of the current day? For example, if I put it to end on Wednesday at 2:00 p.m., the timestamp is from today specifically.
"{"timers":[{"starttime":1656453600000,"days":[1,1,1,0,0,0,0],"output":"0","endtime":1656504000000}],"settings":{"disabledDevices":["0"]}}"

next Wednesday is supposed to be a different value. right?
Thanks!

I am just using the timestamp to store hours and minutes in UTC format. It also helps to calculate on/off times for different time zones.
A new timer will always have the current day as date, no matter the actual day the timer goes off. The on/off days are determined by the days array, which is also stored in UTC days.
What exactly are you trying to accomplish?

I have posted an explanation here: https://github.com/fellinga/node-red-contrib-ui-time-scheduler/issues/83#issuecomment-1225183552


AppBarButton's KeyboardAccelerator doesn't fire when button goes into overflow menu

Describe the bug
https://github.com/Manohar-Gunturu/XAMLKeyboardAccelerator/tree/main is the minimal code to repro this bug.
When window is resized the CommandBar is pushing the AppBarButtons into the overflow menu, KeyboardAccelerator doesn't fire for the buttons that are pushed into the overflow menu.
Steps to reproduce the bug
Run the sample app in VS, maximize the app window until you see delete button and the press delete key in the keyboard.

you will see the delete pressed event.
Resize down the window until delete button goes into overflow menu. And then press the delete key in the keyboard, event doesn't fire.

Expected behavior
KeyboardAccelerator should fire even when AppBarButton went into the overflow menu
Screenshots
No response
NuGet package version
None
Windows version
No response
Additional context
No response

Hi team, is there any update on this?


Error handling conflicted with $exceptionHandler

Hey guys, if I override $exceptionHandler from angular and configure a $q.onPossiblyUnhandledRejection, I have exceptions that go thought both.
Does that make any sense?

I think it may be because of this. So if you return $q.reject(new Error()); instead of throw new Error(); from within the promise it shouldn't happen.

Thanks for the quick answer @mattlewis92
I have an angular controller, that calls a method from a service:
Promise.try( (){
 // do something
}).catch( (error){
 throw AnotherError()
})

Promise that I am using is actually the $q. The error is being throw, and should be handled by $exceptionHandler, but is handled by both. I am using router-ui as well, but I dont think it should be any issues.

Thanks for the quick answer @mattlewis92
My structure:

router ui, going to a state, during the resolve, a security check is done.

      LoginService.isLoggedIn().then(function(isLoggedIn) {
        if (!isLoggedIn) {
          throw new NotLoggedInException();
        }
        return true;
      });

so when I open a restricted page, and not logged in, an exception is thrown by router-ui during the resolve process
$exceptionHandler handles it
Bluebird follows it

I don't see what's wrong here - as you're throwing an error it's picked up by the exceptionHandler, and as you're not explicitly adding a catch to the promise it's caught by the bluebird unhandled rejection handler. I don't think there's anything I can do to stop that, it's just an unfortunate side effect. You can stop the angular side of it by doing this instead:
LoginService.isLoggedIn().then(function(isLoggedIn) {
        if (!isLoggedIn) {
          return $q.reject(new NotLoggedInException());
        }
        return true;
});

Or add some logic in your bluebird handler to detect it

Sure @mattlewis92 , I already added a logic to handle multiple handles of the same exception.
Well, the issue was within router-ui architecture. Basically when a state is transitioned to another state, we have a promise. If it fails, it broadcasts an event with the error, but, at the same time it still rejects the promise itself. Which, I guess its the intended behaviour.
(Since most people set up router-ui with configuration objects, you wont handle the rejection of the resolve promise directly, only by the broadcasted event, much more clean)
So, if a state change causes an error, it gets picked up by Bluebird as well, due to the reject promise.
Thanks @mattlewis92 for the help.


'TypeError: t is undefined' when clicking in frontend

Home Assistant release with the issue:

0.75.0
Last working Home Assistant release (if known):
Don't know, but the error is there quite some versions
Operating environment (Hass.io/Docker/Windows/etc.):

Ubuntu Docker
Component/platform:

Seems to be all switches, sensors, but also media_players
Description of problem:
When clicking on a entry in the frond_end the frondend is showing a popup: system log/write called
the log file is showing an error as below.
2018-08-04 20:24:28 ERROR (MainThread) [frontend.js.latest.201808030] https://ha_url:8123/frontend_latest/app-7338956c.js:2:33559 TypeError: t is undefined

A second click will most of the times do not generate the error and no popup in the frontend
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
every sensor, switch etc
Traceback (if applicable):
Additional information:
had a migration from virtualenv to docker. in the virtualenv the problem did not occur, in the docker now it is there, but a lot has been changed.

/move to home-assistant/home-assistant-polymer


The problem of Mamba block input consistency but output fluctuation in model validation environment

In my task, I used a nested network structure with multiple layers of MAMBA blocks, but in model validation mode, I found that when I gave the same model input, there were different model outputs, and some of these outputs had significant fluctuations. At first, I suspected that it might be a problem with my other modules, but in the end, I was able to pinpoint that it was caused by the internal operations of the MAMBA block. It could be a loss of accuracy. How can I try to avoid this problem and hope to receive relevant answers.
Attached below is a diagram of the problem situation：
age.png

@xypjq Were you able to find a solution to this? I noticed the similar issue, reproducing previous work without changing any settings, using the same input... however, got inconsistant outputs, and some of the outputs showed significant fluctuations, as you commented.

@xypjq @zz202 I encountered the same issue in my experiments. Due to the influence of other modules, the errors caused by the Mamba module are amplified! Have you resolved this problem?

@zz202 @xypjq  According to the response in https://github.com/state-spaces/mamba/issues/493, the implementation of Mamba includes non-deterministic atomic operations (atomic add). So, I suspect you and I are encountering the same issue, where the output inconsistency occurs during the validation phase after training. In fact, it's not just the output that is inconsistent—if you observe the network parameters, they will also be slightly different. Unfortunately, this is an issue in PyTorch that cannot be resolved at the moment.

@Liujehong @zz202 In my code, I identified the issue as occurring in Mamba's own implementation of layernorm RMSnorm. My solution is to replace Mamba's layernorm with Torch's implementation.I hope it can help you.


Allow to define multiple engines per note

Config file: allow to group engines by note type.
UI: display an additional dropdown for the engine selection

@antonpodolsky
can you give an example?
what is note type and what is engine in your proposal?
how does it differ from existing approach?
will it be used for executing the same note on different clusters, prod vs dev for example?

Yes, the idea is to execute same note on different clusters, without duplicating the note.


Xnero: Watch leo434(?:@protonmail.com)?

Xnero requests the watch of the watch_keyword leo434(?:@protonmail\.com)?. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

leo434(?:@protonmail\.com)? has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by cigien in Charcoal HQ


Issue with k8s.io/docs/concepts/architecture/cloud-controller/

This is a Bug Report

Problem:
The diagrams still refer to Minions. They should be changed to Nodes
Proposed Solution:
Edit the diagrams to change the terminology.
Page to Update:
https://kubernetes.io/docs/concepts/architecture/cloud-controller/

This looks like a duplicate of issue #14404

Closing this.


Add a license to the repository

I recently came across your project Qiskit-Quantum-Challenge-Spring-2023 and I noticed that the repository github.com/Kleven2k/Qiskit-Quantum-Challenge-Spring-2023 currently does not have a license specified.
Why Adding a License is Important?
As GitHub documents

Public repositories on GitHub are often used to share open source software. For your repository to truly be open source, you'll need to license it so that others are free to use, change, and distribute the software.

Would be possible to add a valid license to this repository? Probably something really OpenSource such as the Apache 2.0 license would fit really well.
Thanks!

Yes! I’m sorry about that, and I appreciate your guidance. Learning how different licenses work and implementing them will be a great opportunity for my current education and future work.
Thanks for your response!


721 fix for resource title not getting updated

Can one of the admins verify this patch?

@pkdash Does sync_resource_title() need to be called in CoreMetaData when the title has been updated?  Is is possible for the user to update resource.title independently of resource.metadata.title?  Lastly, are there any other metadata elements whose values should always override attributes of the resource?  (If so, perhaps we can generalize this).

@pkdash I don't quite understand why this sync between resource.title and resource.metadata.title.value is needed. I see every time when a user updates a resource title, the title of the resource does get updated here: https://github.com/hydroshare/hydroshare/blob/develop/hs_core/views/init.py#L190 in update_metadata_element() call to make sure the title of the resource is in sync with the metadata title element value. So my question is what workflow/circumstance caused this out-of-sync issue between the title of the resource and the metadata title element value?

@selimnairb Ideally the sync_resource_title() should be used in the create() and update() functions of the Title element of the CoreMetaData. For some reason the resource title attribute doesn't get updated if used in these 2 functions. The only view function that we have for updating title already does this sync. The only time the user is able set the title attribute of the resource is at the time of creating the resource. Hence, the syn_resource_title() function is called after the resource gets created in create_resource() function in resource.py. There are no other resource attributes that need sync with metadata elements.

@hyi the problem comes when the title is extracted. In this case the user is not updating the title. For example, when a netcdf resource is created, the title is extracted from the netcdf file and the title metadata element is created using the extracted value. We have title sync code for title update and not when title gets created. If the user did not provide a title for when creating the netcdf resource the resource title attribute is set to 'Untitled resource' or whatever title value the user provided which is different from what gets extracted from the necdf file.

@pkdash OK. Got it. I found the place netcdf resource appended 'title' to metadata in its pre_create_resource receiver as shown here: https://github.com/hydroshare/hydroshare/blob/develop/hs_app_netCDF/receivers.py#L58, however, I don't see the extracted title from netcdf resource is added in its pre_add_files_to_resource() receiver, although it may be added later via direct metadata.create_element() call. As you mentioned, it is ideal if this sync of resource title with metadata title can be done in Title create() call (any update() call as well although this sync is done currently in update_metadata_element() view function) in which only single assignment to assign the title to resource.title is needed without additional check and only done when needed. But since there is difficulty in moving it into those create() and update() functions for Title element class, what you did here is a simple way to fix this issue. Another idea I have is to always check resource.metadata.title.value as the title of the resource, perhaps remove title attribute from resource class, so we only have one place for title of the resource without worrying about out-of-sync issues. I am OK to merge this branch in for now if other better solutions involve too much effort at this time.

@hyi I agree that we always user resource.metadata.title to access the title value of the resource and just ignore resource title attribute. Since the 'title' attribute comes from mezzanine Page class we can't do much about it.

@pkdash OK. sounds good. Then I assume you can just search across the code base to replace resource.title with resource.metadata.title.value without needing this extra sync title function. This will also make our future planned work to move away from Mezzanine Page class a little bit easier.

@hyi I did replace the use of title attribute with metadata title. However, some tests are still using the title attribute where it seems these test won't fail as long as we are using the Page class. Except some of these tests, where we actually reading the title of the resource we are now using the title from the metadata. I have also left the title sync code as is and would prefer to remove when we don't have the title attribute for the resource as part of the Page class.

@pkdash I am not sure whether I understand your comments correctly or not. Do you mean all tests have been changed to use metadata.title rather than resource.title or you mean some tests would fail if you made the change so you have to leave those tests as is? If the former, resource.title is not used anywhere in our code base so we don't really need this title sync code, right? This would be the ideal case we want. If the latter, let us know the troublesome tests so we may be able to figure out how to resolve the test issue collectively.

@hyi see if the last commit addressed your concerns.

@hyi Looks like I have to merge develop before you can do the final review. If you can review today and hopefully get +1 this PR can go in 1.6.2

@hyi ready for your final review

+1

@hyi once the jenkins check is done I can merge it.


should 'brew edit ' ignore existing directories on the filesystem?

Provide a detailed description of the proposed feature
brew edit <name> should open the formula called <name> for editing, even if a directory called <name> happens to exist in the current working directory. To illustrate the current behavior:
cd /tmp
mkdir r
brew edit r

In this case, the directory called r is opened for editing, rather than the Homebrew formula for R.
This example is somewhat contrived, but in reality I have a folder called r in my home directory and calling brew edit r from that directory bumps me into this issue.
What is the motivation for the feature?
Removing a small piece of confusion from the brew edit interface.
How will the feature be relevant to at least 90% of Homebrew users?
My guess is the majority of users would prefer the proposed behavior over the current default behavior.
What alternatives to the feature have been considered?
I guess the alternatives are:

Do nothing and preserve the status quo;
Let users work around this by explicitly managing the working directory before invoking brew

This is intentional behaviour because we want to have brew edit edit a named file in the current working directory if it's present. We have users that rely on this workflow. Sorry!

No worries; I appreciate your taking the time to consider my request.


[DevTools Docs Feedback]

REST API: 'auto mode' UX accessibility and focus files

Closing as incomplete.


Plugin to join same keyframes

For example, rotation is very popular keyframes and libraries and 3th part widgets often contains it.
/cc @ben-eb

Could you provide a code example?

Input
.mygalary_loader {
    animation: mygalary_rotation 1s linear infinite;
}

@keyframes mygalary_rotation {
    from {
        transform: rotate(0);
    }
    to {
        transform: rotate(360deg);
    }
}

.loader {
    animation: rotation 1s linear infinite;
}

@keyframes rotation {
    from {
        transform: rotate(0);
    }
    to {
        transform: rotate(360deg);
    }
}

Output:
.mygalary_loader {
    animation: mygalary_rotation 1s linear infinite;
}

@keyframes mygalary_rotation {
    from {
        transform: rotate(0);
    }
    to {
        transform: rotate(360deg);
    }
}

.loader {
    animation: mygalary_rotation 1s linear infinite;
}

Right, makes sense. :+1:

We can compare keyframes by:
keyframes1.toString().replace(/\s/g, '') === keyframes2.toString().replace(/\s/g, '')

I hope it is safe :D

That may be potentially dangerous. I propose that the module should not be responsible for normalising whitespace or selectors, these should be delegated to other modules. Instead, this transformation can run after the 'main' whitespace optimiser in cssnano.

@ben-eb nice way :)

I should also note that this kind of optimisation needs to happen before postcss-reduce-idents, so that the final keyframe identifier is a, rather than mygalary_rotation. :smiley:

@ben-eb absolutly :D

@ai Fixed in https://github.com/ben-eb/cssnano/commit/12208d786da788824da797c7ca9ad4063ba1a6c2.


[FLINK-22798] [Connectors/Kafka] correct exception handling of KAFKA transactional producer

What is the purpose of the change
(For example: This pull request makes task deployment go through the blob server, rather than through RPC. That way we avoid re-transferring them on each deployment (during recovery).)
Brief change log
(for example:)

The TaskInfo is stored in the blob store on job creation time as a persistent artifact
Deployments RPC transmits only the blob storage reference
TaskManagers retrieve the TaskInfo from the blob cache

Verifying this change
(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (100MB)
Extended integration test for recovery after master (JobManager) failure
Added test that validates that TaskInfo is transferred only once across recoveries
Manually verified the change by running a 4 node cluser with 2 JobManagers and 4 TaskManagers, a stateful streaming program, and killing one JobManager and two TaskManagers during the execution, verifying that recovery happens correctly.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@PatrickRen Is still a relevant PR or should we close it?

@shopee-jin The Flink Kafka connector resides in it's own repository nowadays, if this code change is still relevant, please open the PR in https://github.com/apache/flink-connector-kafka


Support interface declaration using classes

Copied from TFS task 150409
We should be able to write something along these lines
interface IFoo
{
  [string] foo();
}

class Foo : IFoo
{
  [string] foo() { return 'foo' }
}

Also, explicit implementation.

I agree, this would be a great addition  to powershell

@daxian-dbw can help you out, but he's going to be attending PSConf.EU next week
cc @rjmholt

@IISResetMe I saw your lightning demo and went to your repo afterward. Really amazing work. Your interface DSL actually inspired me, both in how rich it was and since it means interfaces could be made definable in PowerShell without necessarily adding them as a universal language feature. With that said, more complicated things like inheritance might not be so straightforward and would probably need to be part of the parser.
There's a discussion of some of the class-specific stuff in #6418 as well.
But for settling on the syntax and general design, the best place to start might be with an RFC, just to drive discussion on how interfaces should look and what features should be supported in PowerShell. Especially so that the PowerShell Committee can consider it.

@SteveL-MSFT Cool, I'll be at PSConfEU as well, will try to catch up with @daxian-dbw!
@rjmholt Thank you for the kind words. I'll try to add support for inheritance to Legislator over the next week, but based on the MSIL generated by CSC for multiple inherited interfaces it looks quite trivial to add.
If we go for something like what @vors suggest here, interfaces (including inheritance) would require just a subset of the existing grammar already in place for classes, the only thing missing is basically the interface keyword itself 😃
I'll try to write up an RFC in the coming weeks and submit it to the RFC repo!

Thanks to a few pointers from @daxian-dbw last month I got unstuck again 🎉
If anyone wants to check out a working implementation of parser support for interface declarations, I've pushed it here: https://github.com/IISResetMe/PowerShell/tree/feature/interfaces
I still need to add a type compilation step for interfaces in TypeOps, already have a basic routine working just need to merge it into that branch, will try and add it during this week

Here we go: https://github.com/IISResetMe/PowerShell/commit/156e010413cbae1c7f5d5aa36e5a8d7116544eed
Parser rules for interface members are still slightly buggy (; not recognized as statement terminator atm), but it at least produces correct interface types as can bee seen below 😄

Syntax in this implementation also doesn't support get/set control, but it's arguably of limited value unless we decide on whether class properties in PowerShell should behave like fields or actualy properties (at which point we need to generate getters and setters implicitly)

class properties in PowerShell should behave like fields or actualy properties (at which point we need to generate getters and setters implicitly)

We are doing it already
https://github.com/PowerShell/PowerShell/blob/dedddb6b59b8b01fadb4312bbddc7992a6cbbe0a/src/System.Management.Automation/engine/parser/PSType.cs#L605

@vors I see, must be something else that trips up then, will keep digging

@IISResetMe are you still working on this? It would be nice to have interface definitions in PowerShell.

@ThomasNieto no, I completely dropped the ball on this, but looks like @rjmholt and @daxian-dbw might pick it up in a near future, please see https://github.com/PowerShell/PowerShell-RFC/pull/152#issuecomment-594167624

To be clear, @daxian-dbw and @rjmholt can review the implementation, but they don't currently have the time to take it and run it towards a production implementation. Are you still interested in taking it all the way to the finish line if that's the case?

If necessary, I can pick up the remainder of the necessary work once y'all are done reviewing what's currently done.
I will probably need you to brief me on what's still left in the to-do pile, though, @IISResetMe 😁

I think this is the right place for this but not 100% sure so if it's not please point me in the right place to post
I'm trying to figure out how to implement Composition Over Inheritance in my powershell scripts.
I think it would go like this:
Diagram for clarity:

# Actions
interface Swims {
    [bool] Swim( [object]$config );
}

interface Lands {
    [bool] Land( $land_spot );
}

interface Flies : Lands {
    [bool] Fly( $destination );
}

# Animals
class Duck : Flies, Swims {
    Duck(){}

    [bool] Fly( $destination, $land_spot ){
        $this.Fly($destination);
        $this.Land($land_spot)
        return $true
    }

    [bool] Fly( $destination ){
        write-host "The duck flies to $($destination)"
        return $true
    }

    [bool] Land( $land_spot ){
        write-host "The duck lands at $($land_spot)"
        return $true
    }

    [bool] Swim(){
        write-host "The duck paddles it's flippers"
        return $true
    }
}

class Dove : Flies {
    [bool] Fly( $destination, $land_spot ){
        $this.Fly($destination);
        $this.Land($land_spot)
        return $true
    }

    [bool] Fly( $destination ){
        write-host "The dove flies to $($destination)"
        return $true
    }

    [bool] Land( $land_spot ){
        write-host "The dove lands at $($land_spot)"
        return $true
    }
}

$duck = [Duck]::New()
$dove = [Dove]::New()

function Fly-To([Flies]$flier, $destination){ return $flier.Fly($destination) }
function Swim-To([Swims]$swimmer, $destination){ return $swimmer.Swim($destination) }

## Should Work ##
Fly-To $duck "Minnesota"
Fly-To $dove "New York"
Swim-To $duck "Pier 15"

## Should Fail ##

# should error because $dove doesn't implement [Swims]
# or if Duck Typing then because it doesn't implement $_.Swim()
Swim-To $dove "Pier 21"

The net result being that I don't have to create different versions of Fly-To for Duck and Dove, but Swim-To gives a meaningful error when trying to make the Dove swim
I take it these aren't currently implemented (I can't find documentation for this anywhere) so I was going to submit a feature request but I think this ticket is a match for this pattern?  But let me know if it should be a separate issue

I think this is the right place for this but not 100% sure so if it's not please point me in the right place to post
I'm trying to figure out how to implement Composition Over Inheritance in my powershell scripts.
I think it would go like this:
Diagram for clarity:

# Actions
interface Swims {
    [bool] Swim( [object]$config );
}

interface Lands {
    [bool] Land( $land_spot );
}

interface Flies : Lands {
    [bool] Fly( $destination );
}

# Animals
class Duck : Flies, Swims {
    Duck(){}

    [bool] Fly( $destination, $land_spot ){
        $this.Fly($destination);
        $this.Land($land_spot)
        return $true
    }

    [bool] Fly( $destination ){
        write-host "The duck flies to $($destination)"
        return $true
    }

    [bool] Land( $land_spot ){
        write-host "The duck lands at $($land_spot)"
        return $true
    }

    [bool] Swim(){
        write-host "The duck paddles it's flippers"
        return $true
    }
}

class Dove : Flies {
    [bool] Fly( $destination, $land_spot ){
        $this.Fly($destination);
        $this.Land($land_spot)
        return $true
    }

    [bool] Fly( $destination ){
        write-host "The dove flies to $($destination)"
        return $true
    }

    [bool] Land( $land_spot ){
        write-host "The dove lands at $($land_spot)"
        return $true
    }
}

$duck = [Duck]::New()
$dove = [Dove]::New()

function Fly-To([Flies]$flier, $destination){ return $flier.Fly($destination) }
function Swim-To([Swims]$swimmer, $destination){ return $swimmer.Swim($destination) }

## Should Work ##
Fly-To $duck "Minnesota"
Fly-To $dove "New York"
Swim-To $duck "Pier 15"

## Should Fail ##

# should error because $dove doesn't implement [Swims]
# or if Duck Typing then because it doesn't implement $_.Swim()
Swim-To $dove "Pier 21"

The net result being that I don't have to create different versions of Fly-To for Duck and Dove, but Swim-To gives a meaningful error when trying to make the Dove swim
I take it these aren't currently implemented (I can't find documentation for this anywhere) so I was going to submit a feature request but I think this ticket is a match for this pattern?  But let me know if it should be a separate issue

Yeah, this more or less would allow for that pattern in full.
From discussions with @IISResetMe as far as I recall, he had the features more or less ready to go, but there were some design decisions he felt shouldn't be made alone and he was trying to solicit feedback on his implementation as @joeyaiello mentioned above.
I don't think that's gone anywhere thus far, though, as far as I can recall the implementation hasn't really had a good look that I'm aware of.

Yeah, this more or less would allow for that pattern in full.
From discussions with @IISResetMe as far as I recall, he had the features more or less ready to go, but there were some design decisions he felt shouldn't be made alone and he was trying to solicit feedback on his implementation as @joeyaiello mentioned above.
I don't think that's gone anywhere thus far, though, as far as I can recall the implementation hasn't really had a good look that I'm aware of.

No update on the capability to support : interface ?


(cloud-merge) Enables concurrent file downloads

Proposed changes
Issue Number: close #xxx

Slow warm up job because only single thread download files.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Lazy load a script

Not an issue, but a question.
On my site I have a script running to display a map with ship data. Loading this script requires a lot requests. It would be handy/efficient to only load it when it enters the viewport. The script is:
<!-- https://www.myshiptracking.com/nl/more/embed-our-map -->
                <script>var mst_width="96%";var mst_height="350px";var mst_border="0";var mst_map_style="simple";var mst_mmsi="244770624";var mst_show_track="true";var mst_show_info="true";var mst_fleet="";var mst_lat="";var mst_lng="";var mst_zoom="";var mst_show_names="0";var mst_scroll_wheel="true";var mst_show_menu="true";</script><script id="myshiptrackingscript" src="//www.myshiptracking.com/js/widgetApi.js" async defer></script>

Is there a possibility to use Lozad to lazy load this script?
Thanks in advance!

Anyone willing to help?

Don't know if you are using lozad on your site but I believe you could do something like this:
// mapContainer -> it's container in which you display a map with ship data lozad(mapContainer, {     load: function() {         const script = document.createElement("script");         script.src = "//www.myshiptracking.com/js/widgetApi.js";         script.id = "myshiptrackingscript";         script.async = true;         document.body.appendChild(script);     } });

Hi,
Thanks for your reply.
I indeed have Lozad running on my site (https://develop.uisge-beatha.eu https://develop.uisge-beatha.eu/). I’ll give your script a try. Would this script change when Lozad is in place?
BR

Op 28 feb. 2019, om 15:32 heeft rkumorek<EMAIL_ADDRESS>het volgende geschreven:
Don't know if you are using lozad on your site but I believe you could do something like this:
// mapContainer -> it's container in which you display a map with ship data lozad(mapContainer, { load: function() { const script = document.createElement("script"); script.src = "//www.myshiptracking.com/js/widgetApi.js"; script.id = "myshiptrackingscript"; script.async = true; document.body.appendChild(script); } });
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/ApoorvSaxena/lozad.js/issues/158#issuecomment-468293901, or mute the thread https://github.com/notifications/unsubscribe-auth/AjWMFpJtySK3IQimlItCZJISvaspes9Yks5vR-iRgaJpZM4a0bsL.


Add local Help messages

Current Help window only shows link to user guide.
Help messages of available commands added to help window as well.
This closes #6.

LGTM! 💯


BOCM-15 - Valid appeal part 3

Describe your changes
Missing pages for all 3 type of outcomes.
Issue ticket number and link

https://pins-ds.atlassian.net/browse/BOCM-13
https://pins-ds.atlassian.net/browse/BOCM-15
https://pins-ds.atlassian.net/browse/BOCM-16

Type of change 🧩

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Other (please explain in the description section above)

Checklist before requesting a review

[x] I have performed a self-review of my own code
[x] I have double checked this work does not include any hardcoded secrets or passwords
[x] I have made corresponding changes to the documentation
[ ] I have provided details on how I have tested my code
[x] I have referenced the ticket number above
[x] I have provided a description of the ticket
[ ] I have included unit tests to cover any testable code changes

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


X-RTP-Stat header: report of packet delay always set to zero

It seems the packet delay is always set to zero. (PD=0). The other parameters like PL, JI are all working.
Using Baresip 0.5.3
Example:
X-RTP-Stat: EX=BareSip;CS=1000;CD=29;PR=1463;PS=1490;PL=0,0;PD=0,0;JI=3.0,3.0;IP=<IP_ADDRESS>:48926,<IP_ADDRESS>:12856;EN=PCMA/8000;DE=PCMA/8000

If memory doesn't fail me, and it's been a while both delay and IP fields were pending some patches in libRE I never got around actually using them.... will attempt to take a look if time allows

THX!

@smokersonly what does the specification say about the PD field?
according to the source code it means Packets Discarded:
(audio.c line 1712)
			 "PD=%d,%d;"     /* Packets Discarded, RX, TX        */

/Alfred

hmm, there is no RFC for this as far as I know, just this reference:
https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/xrtpv32.pdf
there is indeed no PD parameter in that document, so my assumption that it had anything to do with delay was wrong.


synology jdownloader - plugin not grabbing links from uloz.to

Just tried to install jdownloader in docker2. Seems to work but I am using only 1 service - uloz.to as file host. I can't get browser extension to grab link (neither premium nor free) that would transfer it to client in synology. If I paste it manually in linkcollector - it will start easily. Any idea what could I be missing? Other links like youtube videos or so work.

Are you using the MyJDownloader extension (https://my.jdownloader.org/apps/) ?  Normally, you just need to login to your account on both the extension and JDownloader2 and it should work fine.

Closing this issue.  Please re-open if needed.


SignInManager.IsSignedIn(User) == false, yet User.Identity.IsAuthenticated == true

https://github.com/ghstahl/P7.Core-2.0/blob/master/src/A.OIDC/Startup.cs
I would like to have an example that shows how to get OIDC tokens using the following method;
if (User.Identity.IsAuthenticated)
{
  string accessToken = await HttpContext.GetTokenAsync("access_token");
}

When I do the following, I can log in, the user gets authenticated, and I can get the access_tokens when logging in to Google using OpenIdConnect.  However, then calling  SignInManager.IsSignedIn(User) == false.
When I play around with other options, I can get my SignInManager.IsSignedIn(User) == true, but then I cant get my access_tokens.
Why is SignInManager.IsSignedIn(User) == false in this case?

Out of the box asp.net core 2 webapp with user accounts.
Upgrade to 2.0.1
Add OpenIdConnect as follows, where I changed only the following in the original starter app;

 var authenticationBuilder = services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            }).AddCookie();
            var configuration = Configuration;

            if (!(string.IsNullOrEmpty(configuration["Google-ClientId"]) ||
                  string.IsNullOrEmpty(configuration["Google-ClientSecret"])))
            {
                authenticationBuilder.AddOpenIdConnect(GoogleDefaults.AuthenticationScheme, GoogleDefaults.DisplayName,
                    o =>
                    {

                        o.CallbackPath = new PathString("/signin-google");

                        o.ClientId = configuration["Google-ClientId"];
                        o.ClientSecret = configuration["Google-ClientSecret"];

                        o.Authority = "https://accounts.google.com";
                        o.ResponseType = OpenIdConnectResponseType.Code;
                        o.GetClaimsFromUserInfoEndpoint = true;
                        o.SaveTokens = true;

                        o.Events = new OpenIdConnectEvents()
                        {
                            OnTicketReceived = (context) =>
                            {
                                ClaimsIdentity identity = (ClaimsIdentity)context.Principal.Identity;
                                return Task.CompletedTask;

                            }
                        };

                    });
            }

Check your auth flow maybe.
https://github.com/aspnet/Identity/issues/1452

SignInManager is part of the Identity framework. The configuration you're showing is now using the Identity framework, it's only using the Authentication components.

Yeah, SignInManager is looking specifically for the identity application cookie, you only want to use that method if you are using SignInManager to sign in typically.

SignInManager is part of the Identity framework. The configuration you're showing is not using the Identity framework, it's only using the Authentication components.

I think this is the first time I've ever heard anyone at Microsoft delineate the two. It's refreshing :)
But seriously, the docs don't make this distinction -- perhaps that leads to this type of confusion.

@Haok,
So if I do this, I should trash all the SignInManager stuff and just use User.Identity.IsAuthenticated for decisions in _LoginPartial.cshtml.   That cshtml file is where I first saw that it didn't show I was logged in.
Saying that, what do I do if I want Identity and still want those access tokens.  I stepped the OpenIdConnect handler and it was definitely saving the Tokens in that AuthTicket.  SigninManager.IsSignedIn worked, but calling HttpContext.GetTokenAsync("access_tokens") failed.
I really want Identity and those access_tokens too.

@dallancarr
 string accessToken = await HttpContext.GetTokenAsync(IdentityConstants.ExternalScheme,"access_token");
doesn't work for me, when I changed my config to the following;
            var authenticationBuilder = services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = IdentityConstants.ApplicationScheme;
                options.DefaultChallengeScheme = IdentityConstants.ApplicationScheme;
                options.DefaultSignInScheme = IdentityConstants.ExternalScheme;
            });

Now SigninManager.IsSignedIn == true.

You need swap out your defaults...mixture of oidc and cookies should do it. Then the token get should work without specifying scheme.

@dallancarr
I am using asp.net core 2.0.1, which doesn't have AddCookieAuthentication().  I used .AddCookie().  I got the same result though, where I get the access_token but SignInManager.IsSignedIn is still false.
Can you guys to tell me if I am wrong?
I decided to manage the OIDC tokens myself where I harvested them from the OnTicketReceived, and stuffed them into the session.
here is my code snippets;
 var authenticationBuilder = services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = IdentityConstants.ApplicationScheme;
                options.DefaultChallengeScheme = IdentityConstants.ApplicationScheme;
                options.DefaultSignInScheme = IdentityConstants.ExternalScheme;
            });

so no Cookie stuff.
And writing the OIDC stuff into the session OnTicketReceived;
 authenticationBuilder.AddOpenIdConnect(GoogleDefaults.AuthenticationScheme, GoogleDefaults.DisplayName,
                    o =>
                    {
                        var openIdConnectOptions = new GoogleOpenIdConnectOptions();
                        o.CallbackPath = openIdConnectOptions.CallbackPath;

                        o.ClientId = configuration["Google-ClientId"];
                        o.ClientSecret = configuration["Google-ClientSecret"];

                        o.Authority = openIdConnectOptions.Authority;
                        o.ResponseType = openIdConnectOptions.ResponseType;
                        o.GetClaimsFromUserInfoEndpoint = openIdConnectOptions.GetClaimsFromUserInfoEndpoint;
                        o.SaveTokens = openIdConnectOptions.SaveTokens;

                        o.Events = new OpenIdConnectEvents()
                        {
                            OnRedirectToIdentityProvider = (context) =>
                            {
                                if (context.Request.Path != "/Account/ExternalLogin"
                                    && context.Request.Path != "/Account/ExternalLoginWhatIf"
                                    && context.Request.Path != "/Manage/LinkLogin")
                                {
                                    context.Response.Redirect("/account/login");
                                    context.HandleResponse();
                                }

                                return Task.FromResult(0);
                            },
                            OnTicketReceived = (context) =>
                            {
                                ISession Session = context.HttpContext.Session;
                                var query1 = from item in context.Properties.Items
                                    where item.Key.StartsWith(".Token.")
                                    select item;
                                var query2 = from item in context.Properties.Items
                                    where !item.Key.StartsWith(".Token.")
                                    select item;
                                var ap = new AuthenticationProperties();
                                foreach (var a in query2.Where(a => a.Key != ".TokenNames"))
                                {
                                    ap.Items.Add(a.Key, a.Value);
                                }
                                context.Properties = ap;
                                var oidc = new Dictionary<string, string>();
                                foreach (var a in query1)
                                {
                                    var keys = a.Key.Split('.');
                                    oidc.Add(keys[2], a.Value);
                                }
                                Session.SetObject(".oidc", oidc);

                                ClaimsIdentity identity = (ClaimsIdentity)context.Principal.Identity;
                                var query = from claim in context.Principal.Claims
                                    where claim.Type == ClaimTypes.Name || claim.Type == "name"
                                    select claim;
                                var nameClaim = query.FirstOrDefault();
                                var nameIdentifier = identity.FindFirst(ClaimTypes.NameIdentifier);

                                var claimsToKeep =
                                    new List<Claim>
                                    {
                                        nameClaim,
                                        nameIdentifier,
                                        new Claim("DisplayName", nameClaim.Value),
                                        new Claim("UserId", nameIdentifier.Value)
                                    };

                                var newIdentity = new ClaimsIdentity(claimsToKeep, identity.AuthenticationType);

                                context.Principal = new ClaimsPrincipal(newIdentity);
                                return Task.CompletedTask;

                            }
                        };

                    });

It looks like your using third party google so Identity + Google is an option.

@dallancarr I am using google as a placeholder for other OpenIdProviders.  I have always had Identity + a bunch of external OIDC providers, but then all of a sudden there was a need to get a hold of those tokens.  As it is, it looks like when I configure "SaveTokens", the only thing that does for me is allow me to harvest them via OnTicketReceived.  I was hoping to use what the asp.net team provided, HttpContext.GetTokenAsync("access_token").  At the moment it doesn't look like I can have Identity and use HttpContext.GetTokenAsync("access_token"), hence my harvesting technique.  Let me know if I am missing something that lets me still use Identity and HttpContext.GetTokenAsync("access_token").

@ghstahl so this is a fairly common ask, where you want to get something on the external identity (which lives in the "Identity.External" cookie, which gets cleared out when the "Identity.Application" cookie is signed in.
https://github.com/aspnet/Identity/issues/628 is a similar issue which you can read for context.
But the gist of it is, you will need to harvest the token via HttpContext.GetTokenAsync(IdentityConstants.ExternalScheme , "access_token") on the externallogin callback action request, since after that request the external cookie (and token) will get cleared.  You just need to take that token and store it somewhere you will have access to on subsequent requests (you could store it in the user claims (userManager.AddClaimAsync) which would show up in the normal identity application cookie for example)

We logged https://github.com/aspnet/AuthSamples/issues/6 to track creating a sample for this.

@HaoK  As usual it always turns out to be the most simple thing.  Verified your gist of it.
I get to keep my Identity.
var authenticationBuilder = services.AddAuthentication(options =>
{
  options.DefaultAuthenticateScheme = IdentityConstants.ApplicationScheme;
  options.DefaultChallengeScheme = IdentityConstants.ApplicationScheme;
  options.DefaultSignInScheme = IdentityConstants.ExternalScheme;
});

And harvest the tokens before they get cleared out after signin.,
 [HttpGet]
 [AllowAnonymous]
 public async Task<IActionResult> ExternalLoginCallback(string returnUrl = null, string remoteError = null)
 {
  var at = await HttpContext.GetTokenAsync(IdentityConstants.ExternalScheme, "access_token");
  var idt = await HttpContext.GetTokenAsync(IdentityConstants.ExternalScheme, "id_token");
  var rt = await HttpContext.GetTokenAsync(IdentityConstants.ExternalScheme, "refresh_token");
  var tt = await HttpContext.GetTokenAsync(IdentityConstants.ExternalScheme, "token_type");
  var ea = await HttpContext.GetTokenAsync(IdentityConstants.ExternalScheme, "expires_at");
  // put this data into the session, or
 // add them as a user claim
 ...
 }

Thanks


Avoid extra Cargo installation artifacts

As @bjorn3 mentioned in #420, using --no-track should get rid of the extra files that show up after the cargo install. Fixes #420.

I haven't yet verified this works but wanted to do this before I forget.

I tried this out locally and the build failed for other reasons!
$ NINJA_FLAGS=-v make package
...
/.../wasi-sdk/build/install/opt/wasi-sdk/bin/llvm-ar crs build/wasm32-wasi/libc.so.a
/.../wasi-sdk/build/install/opt/wasi-sdk/bin/clang --target=wasm32-wasi -nodefaultlibs -shared --sysroot=/.../wasi-sdk/build/install/opt/wasi-sdk/share/wasi-sysroot \
-o /.../wasi-sdk/build/install/opt/wasi-sdk/share/wasi-sysroot/lib/wasm32-wasi/libc.so -Wl,--whole-archive build/wasm32-wasi/libc.so.a -Wl,--no-whole-archive /.../wasi-sdk/build/install/opt/wasi-sdk/lib/clang/18/lib/wasi/libclang_rt.builtins-wasm32.a
wasm-ld: warning: creating shared libraries, with -shared, is not yet stable
wasm-ld: error: duplicate symbol: accept
>>> defined in build/wasm32-wasi/libc.so.a(accept.pic.o)
>>> defined in build/wasm32-wasi/libc.so.a(accept-wasip1.pic.o)

wasm-ld: error: duplicate symbol: accept4
>>> defined in build/wasm32-wasi/libc.so.a(accept.pic.o)
>>> defined in build/wasm32-wasi/libc.so.a(accept-wasip1.pic.o)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [Makefile:587: /.../wasi-sdk/build/install/opt/wasi-sdk/share/wasi-sysroot/lib/wasm32-wasi/libc.so] Error 1
make[1]: Leaving directory '/.../wasi-sdk/src/wasi-libc'
make: *** [Makefile:150: build/wasi-libc.BUILT] Error 2

I wonder if something is failing in the build that is being masked by our action caching?


[request] Edge Caching

Supports the local caching of requests to closest geographical location, to improve response times for the client.
example:
Kong machine is in Paris and NY. Client is in Paris. Kong will route and cache the request/response from Kong Paris only, to minimize network latency.

Related to #411

Can you clarify what you are requesting?
https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching
A shared cache inside of Kong or ability to set Cache-Control headers by API to enable private browser cache?

Since edge-caching is available in the enterprise edition, and this issue deals with where the request comes from (which Kong doesn't deal with, but the infrastructure in front of Kong does) I think there is nothing more we can do here.
Can we close this?

Do we have any update on Edge Caching support in Kong?
Since cache plugins will take care of retrieving the data, but How it will take care of getting responses from the nearest kong node as per the client location, to minimize the latency.
As of now We use static website hosting on S3 for my Single Page Application (SPA Web App), so I can use CloudFront as well to serve the static files on time.
So the same thing, how I can achieve w.r.t Kong?

unless you do something very specialized, it is not really possible. Usually when a Kong node is hit, you're already in a datacenter somewhere. Kong sits close to the backends. For geo/ip based routing you'd typically use a CDN in front of Kong

This can be safely closed. proxy-cache plugin is OSS and users can do caching using it.
Re inter-node communication for caching, that is unlikely to happen right now. You can share the cache somehow between regions (it is a terrible idea) and then it would be possible out of the box.


mobile: Buttons overflowing

Buttons can be too wide on mobile, which forces the page to overflow on the X axis. They should wrap or simply be placed vertically on mobile layout
Credit u/gigusx

Fixed in https://github.com/sam-cross/css-only-responsive-header/commit/bed633b057ac8c5f40cd2a7790d508c8ad77adcf


Always raise warning when stream option is specified in to_gpu

Related to #3278, #2238

jenkins, test this please

jenkins, test this please

LGTM!


Images taken from camera are oriented incorrectly

When  we capture image from camera it send back mis oriented image.
i tried both full image and original image option

Is anyone else having this issue? I have been unable to reproduce this.
@hadwanihardik Can you share with us some code of how you are implementing this library please?

Below code resolved my issue.
func fixOrientationOfImage(image: UIImage) -> UIImage? {
if image.imageOrientation == .Up {
return image
}
    // We need to calculate the proper transformation to make the image upright.
    // We do it in 2 steps: Rotate if Left/Right/Down, and then flip if Mirrored.
    var transform = CGAffineTransformIdentity

    switch image.imageOrientation {
    case .Down, .DownMirrored:
        transform = CGAffineTransformTranslate(transform, image.size.width, image.size.height)
        transform = CGAffineTransformRotate(transform, CGFloat(M_PI))
    case .Left, .LeftMirrored:
        transform = CGAffineTransformTranslate(transform, image.size.width, 0)
        transform = CGAffineTransformRotate(transform, CGFloat(M_PI_2))
    case .Right, .RightMirrored:
        transform = CGAffineTransformTranslate(transform, 0, image.size.height)
        transform = CGAffineTransformRotate(transform, -CGFloat(M_PI_2))
    default:
        break
    }

    switch image.imageOrientation {
    case .UpMirrored, .DownMirrored:
        transform = CGAffineTransformTranslate(transform, image.size.width, 0)
        transform = CGAffineTransformScale(transform, -1, 1)
    case .LeftMirrored, .RightMirrored:
        transform = CGAffineTransformTranslate(transform, image.size.height, 0)
        transform = CGAffineTransformScale(transform, -1, 1)
    default:
        break
    }

    // Now we draw the underlying CGImage into a new context, applying the transform
    // calculated above.
    guard let context = CGBitmapContextCreate(nil, Int(image.size.width), Int(image.size.height), CGImageGetBitsPerComponent(image.CGImage), 0, CGImageGetColorSpace(image.CGImage), CGImageGetBitmapInfo(image.CGImage).rawValue) else {
        return nil
    }

    CGContextConcatCTM(context, transform)

    switch image.imageOrientation {
    case .Left, .LeftMirrored, .Right, .RightMirrored:
        CGContextDrawImage(context, CGRect(x: 0, y: 0, width: image.size.height, height: image.size.width), image.CGImage)
    default:
        CGContextDrawImage(context, CGRect(origin: .zero, size: image.size), image.CGImage)
    }

    // And now we just create a new UIImage from the drawing context
    guard let CGImage = CGBitmapContextCreateImage(context) else {
        return nil
    }

    return UIImage(CGImage: CGImage)
}


Add return value filter

When having filter on open/openat it'd be usefull to be able
to filter on return value - file descriptor value, like:
apiVersion: cilium.io/v1alpha1
metadata:
  name: "sys-openat"
spec:
  kprobes:
  - call: "sys_openat"
    return: false
    syscall: true
    args:
    - index: 0
      type: "int"
    - index: 1
      type: "string"
    - index: 2
      type: "int"
    returnArg:
      type: "int"
    selectors:
    - matchArgs:
      - index: 1
        operator: "Equal"
        values:
        - "/tmp/passwd\0"
      matchReturnArg:
      - operator: ">"
        values:
        - 0

The matchReturnArg would filter out events that do not have return value 'file descriptor' > 0.

I want to try this.Can you assign it to me?


Windows Support

Has anyone thought about how to support windows?
I was thinking of using WebView which supports Windows 8 and Windows 10.

In apps compiled for Windows 10, WebView uses the Microsoft Edge rendering engine to display HTML content. In apps compiled for Windows 8 or Windows 8.1, WebView uses Internet Explorer 11 in document mode.

There's a sample UWP app available on GitHub.
Thoughts?

I think that's implied in #4 (but the subject could perhaps be changed to something else to clarify cross platform support)

WebView would be a nice option. I've done some experiments for something similar to Electrino on UWP but nothing serious, maybe I can help here!

@kipters I've also began to experiment with WebView in a UWP app but am not really fond of the Windows Store deployment scenario. Do you know if it's possible to embed Edge into a WPF app? The Browser control seems to only embed IE in WPF apps unfortunately.

@frankhale There's the WebView for WPF, docs

That is the docs for the UWP WebView.

@frankhale I've looked into it but I couldn't find anything about embedding Edge in desktop apps 😞
UWP may still be an option since UWP != Windows Store, you can deploy non UWP apps to the store and you can install UWP apps from outside the store (but yes, no support for 7 or 8.x)
I'll dig up on my PC to see if I can find my old prototype and clean it up a bit

@kipters oh I see. I got tripped up on the setting that I had to set when developing UWP which allows apps to be installed outside the store. The settings menu makes it look like it's only available for developers and of course Microsoft makes it sound like setting that is the worst security decision I could ever make. This is why I assumed that UWP needed to be deployed to Windows Store (I thought that option wouldn't be available for non developers).

@frankhale IIRC the "allow sideload" option is enabled by default for every user (the three possible options are "only from the store", "allow sideload", "dev mode") since Anniversary Update.
The only caveat with out-of-the-store installs is that the .appx must be signed

All, it seems tht13 added windows support in #11 so take a look if you get a chance.

#11 uses the chakra JavaScript engine and Edge for the viewing browser. It implements the same functionality as the initial hello world implementation of webview on Mac OS but in c# Vs objective c.

Has anyone considered Windows 7 support? I really don't want to build apps for Windows 7, but most usage statistics suggest 45-49% of the world is still using Windows 7... which happens to be the largest slice of the OS pie. Obviously Chakra/Edge isn't available.


[Bug] Toolbox DataZoom behaves wrong with multiple axes with different min/max

Version
5.5.1
Link to Minimal Reproduction
https://codesandbox.io/p/sandbox/vw8p5g
Steps to Reproduce
I did encounter this bug in my professional work, so I cannot share this context but it is easily explainable via the minimal reproduction.
I have multiple yAxis and want to use the dataZoom in the toolbox. The yAxis have different min/max values set. The dataZoom is not configured specifically, so it controls all y and xAxis per default.
Current Behavior
Using the dataZoom from the toolbox sets all yAxes to the same start and end value.
This is before the zoom, look at the axes.

This is after the zoom, again please look at the axes.

Expected Behavior
Using the dataZoom from the toolbox should set all yAxes to the correct values. Inspecting the event triggered by the dataZoom reveals, that the event batch carries the correct start and end values for all axes
Environment
I reproduced the example with a CodeSandbox, I do not know which env it utilizes.
- OS:
- Browser:
- Framework:

Any additional comments?
No response

two additional observations:

the problem disappears when option.dataZoom is removed
the official example works ok

As this issue was a blocker for us I did try to come up with a workaround to solve this problem. It relies on a custom handler triggered by the datazoom event which then sets the correct start and end for the correct dataZoom slider. The following snippet may help people having the same issue or even fixing the bug in the codebase. I will also try to find some time, maybe I can contribute with a PR.
// Event Handlers
  const handleDataZoom = (e: SyntheticEvent) => {
    const chart = getInstanceByDom(chartRef.current)

    // @ts-ignore getOption is poorly typed, it should return an array of the yAxis
    const firstIndexWithSetRange = chart.getOption().yAxis.findIndex((yAxis) => {
      // Utilizing == here, as this is an appropriate way to check if it is null OR undefined (nullish and not falsy)
      return !(yAxis.min == null) && !(yAxis.max == null)
    })
    // The toolbox datazoom has a batch at its event, which carries the start and end
    // of all axes that are controlled by it.
    if (firstIndexWithSetRange !== -1 && e.hasOwnProperty('batch')) {
      // I totally dislike this approach as we are looking for magic strings
      // and generally this seems kind of hacky. But I think this is the best
      // fix for the overall problem. Hopefully Echarts does simply fix the zoom via the toolbox.
      // @ts-ignore We check for the existence of this prop in the if-clause
      const yAxisEventForSetRangeAxis = e.batch.find((dataZoomEvent) => {
        return dataZoomEvent.dataZoomId.includes(`yAxis${firstIndexWithSetRange}`)
      })
      const accordingYAxisToEventMaxValue = chart.getOption().yAxis[firstIndexWithSetRange].max
      chart.dispatchAction({
        type: 'dataZoom',
        dataZoomIndex: chart
          .getOption()
          // @ts-ignore As already mentioned, dataZoom is poorly typed
          .dataZoom.findIndex((dataZoomObj) => dataZoomObj?.id === DATA_ZOOM_Y_AXIS_ID),
        start: (yAxisEventForSetRangeAxis.startValue / accordingYAxisToEventMaxValue) * 100,
        end: (yAxisEventForSetRangeAxis.endValue / accordingYAxisToEventMaxValue) * 100,
      })
    }
  }

Be aware that this is just the handler itself as it fits in our company context. The important part is getting e.batch, calculating the start and end percentages and setting it via dispatchAction()


Add VOF theory guide

Description of the problem

There were bits of VOF theory everywhere in the doc.

Description of the solution

A VOF theory was added, gathering all the VOF related methods.

How Has This Been Tested?

No test needed

Documentation
Theory guide file:

[ ] doc/source/theory/fluid_dynamics/vof.rst (added)

Existing files where theory guide content was removed

[ ] doc/source/parameters/cfd/volume_of_fluid.rst
[ ] doc/source/examples/multiphysics/static-bubble/static-bubble.rst
[ ] doc/source/examples/multiphysics/dam-break/dam-break.rst

Future changes

The theory guide will be completed with how the velocity field is obtained

Can you rebase and then this will be ready to merge


[BugFix] Fix auto partition function missing

What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[x] 3.0
[ ] 2.5
[ ] 2.4
[ ] 2.3

run starrocks_admit_test

[FE PR Coverage Check]
:disappointed: fail : 14 / 21 (66.67%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/backup/RestoreJob.java
0
3
00.00%
[525, 555, 843]

:large_blue_circle:
com/starrocks/leader/LeaderImpl.java
0
1
00.00%
[922]

:large_blue_circle:
com/starrocks/server/GlobalStateMgr.java
0
1
00.00%
[2623]

:large_blue_circle:
com/starrocks/catalog/OlapTable.java
1
2
50.00%
[580]

:large_blue_circle:
com/starrocks/common/proc/PartitionsProcDir.java
2
3
66.67%
[322]

:large_blue_circle:
com/starrocks/common/proc/TablesProcDir.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/planner/OlapScanNode.java
2
2
100.00%
[]

:large_blue_circle:
com/starrocks/load/PartitionUtils.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/catalog/ColocateTableIndex.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/load/InsertOverwriteJobRunner.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/service/InformationSchemaDataSource.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/alter/SchemaChangeHandler.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/sql/optimizer/rewrite/OptOlapPartitionPruner.java
3
3
100.00%
[]

run starrocks_admit_test

@Mergifyio backport branch-3.0