html web-renderer incorrectly renders nine-slice images with an empty center region

drawImageNine is not well documented for the case where the center region disappears, but it is implemented consistently for all of the Skia backed platforms such as mobile and the canvaskit web renderer. Unfortunately, the html web renderer throws exceptions on a debug build and produces an inconsistent output on non-debug builds.
There are already issues filed for the lack of documentation of drawImageNine and the centerSlice properties, but the behavior that Skia provides when the center region disappears makes sense and should become the documented behavior. Basically, the center slice takes up all of the scaling until it goes to a zero size. It is fine to have an empty center section, not a condition that should be asserted as in the web renderer. At that point only the 4 corners of the image are visible and if you continue to scale down then the corners will start scaling down with the reduced size.
Here is the test sample:

Code sample:

import 'dart:ui' as ui;

import 'package:flutter/material.dart';

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

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

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

  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  ui.Image theImage;
  double size = 200.0;

  @override
  void initState() {
    super.initState();
    makeImage().then((image) => setState(() {
      theImage = image;
    }));
  }

  void newSize(double newSize) {
    setState(() {
      size = newSize;
    });
  }

  Future<ui.Image> makeImage() {
    Rect bounds = Rect.fromLTWH(0, 0, 200, 200);
    ui.PictureRecorder recorder = ui.PictureRecorder();
    Canvas canvas = Canvas(recorder, bounds);
    paintCheckerboard(canvas, bounds, 10, 10, Colors.white, Colors.grey);
    paintCheckerboard(canvas, bounds.deflate(50), 10, 10, Colors.blue, Colors.green);
    return recorder.endRecording().toImage(200, 200);
  }

  paintCheckerboard(Canvas canvas, Rect bounds, double w, double h, Color c1, Color c2) {
    Paint p = Paint();
    double y = bounds.top;
    for (int i = 0; i < bounds.height / h; i++) {
      double x = bounds.left;
      for (int j = 0; j < bounds.width / w; j++) {
        p.color = (i ^ j) & 1 == 0 ? c1 : c2;
        canvas.drawRect(Rect.fromLTWH(x, y, w, h), p);
        x += w;
      }
      y += h;
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: theImage == null ? null : CustomPaint(
          size: Size(size, size),
          painter: NineSlicePainter(
            theImage,
            const Rect.fromLTWH(50, 50, 100, 100),
            Rect.fromLTWH(0, 0, size, size),
          ),
          willChange: false,
          isComplex: false,
        ),
      ),
      bottomNavigationBar: BottomAppBar(
        child: Wrap(
          children: [
            Slider(
              value: size,
              min: 50,
              max: 300,
              onChanged: theImage == null ? null : newSize,
            ),
          ],
        ),
      ),
    );
  }
}

class NineSlicePainter extends CustomPainter {
  NineSlicePainter(this.theImage, this.center, this.dst);

  Rect center;
  Rect dst;
  ui.Image theImage;

  @override
  void paint(Canvas canvas, Size size) {
    canvas.drawImageNine(theImage, center, dst, Paint());
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) {
    if (oldDelegate is NineSlicePainter) {
      return oldDelegate.dst != dst || oldDelegate.theImage != theImage;
    }
    return true;
  }
}

logs
[   +6 ms] DwdsInjector: Injected debugging metadata for entrypoint at http://localhost:60468/main_module.bootstrap.js
[+1603 ms] ChromeProxyService: Initializing expression compiler for main_module.bootstrap.js with sound null safety: false
[ +347 ms] DevHandler: Debug service listening on ws://<IP_ADDRESS>:60499/fTzpH3NV78k=/ws

[   +8 ms] Debug service listening on ws://<IP_ADDRESS>:60499/fTzpH3NV78k=/ws
[        ] Running with unsound null safety
[        ] For more information see https://dart.dev/null-safety/unsound-null-safety
[   +2 ms] 🔥  To hot restart changes while running, press "r" or "R".
[   +3 ms] For a more detailed help message, press "h". To quit, press "q".
[+33270 ms] ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
[   +5 ms] The following assertion was thrown during paint():
[        ] Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[   +1 ms] image.width - center.width < dst.width
[        ] is not true
[        ] The relevant error-causing widget was:
[        ]   CustomPaint file:///Users/tahatesser/AndroidStudioProjects/master_flutter/lib/main.dart:83:15
[   +1 ms] When the exception was thrown, this was the stack:
[        ] dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49  throw_
[        ] dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3    assertFailed
[        ] lib/_engine/engine/html/canvas.dart 302:44                                    drawImageNine
[   +1 ms] packages/master_flutter/main.dart 119:11                                      paint
[        ] packages/flutter/src/rendering/custom_paint.dart 563:12                       [_paintWithPainter]
[        ] packages/flutter/src/rendering/custom_paint.dart 604:7                        paint
[        ] packages/flutter/src/rendering/object.dart 2321:7                             [_paintWithContext]
[        ] packages/flutter/src/rendering/object.dart 188:12                             paintChild
[        ] packages/flutter/src/rendering/shifted_box.dart 72:14                         paint
[        ] packages/flutter/src/rendering/object.dart 2321:7                             [_paintWithContext]
[        ] packages/flutter/src/rendering/object.dart 188:12                             paintChild
[        ] packages/flutter/src/rendering/box.dart 2793:14                               defaultPaint
[   +1 ms] packages/flutter/src/rendering/custom_layout.dart 409:5                       paint
[   +7 ms] packages/flutter/src/rendering/object.dart 2321:7                             [_paintWithContext]
[        ] packages/flutter/src/rendering/object.dart 188:12                             paintChild
[        ] packages/flutter/src/rendering/proxy_box.dart 141:14                          paint
[        ] packages/flutter/src/material/material.dart 551:11                            paint
[        ] packages/flutter/src/rendering/object.dart 2321:7                             [_paintWithContext]
[        ] packages/flutter/src/rendering/object.dart 188:12                             paintChild
[        ] packages/flutter/src/rendering/proxy_box.dart 141:14                          paint
[   +1 ms] packages/flutter/src/rendering/object.dart 395:12                             pushLayer
[        ] packages/flutter/src/rendering/proxy_box.dart 1921:14                         paint
[        ] packages/flutter/src/rendering/object.dart 2321:7                             [_paintWithContext]
[        ] packages/flutter/src/rendering/object.dart 188:12                             paintChild
[        ] packages/flutter/src/rendering/proxy_box.dart 141:14                          paint
[        ] packages/flutter/src/rendering/object.dart 2321:7                             [_paintWithContext]
[        ] packages/flutter/src/rendering/object.dart 188:12                             paintChild
[        ] packages/flutter/src/rendering/proxy_box.dart 141:14                          paint
[        ] packages/flutter/src/rendering/object.dart 2321:7                             [_paintWithContext]
[   +1 ms] packages/flutter/src/rendering/object.dart 139:10                             _repaintCompositedChild
[        ] packages/flutter/src/rendering/object.dart 100:5                              repaintCompositedChild
[   +1 ms] packages/flutter/src/rendering/object.dart 977:29                             flushPaint
[        ] packages/flutter/src/rendering/binding.dart 465:19                            drawFrame
[        ] packages/flutter/src/widgets/binding.dart 876:13                              drawFrame
[        ] packages/flutter/src/rendering/binding.dart 329:5                             [_handlePersistentFrameCallback]
[        ] packages/flutter/src/scheduler/binding.dart 1144:15                           [_invokeFrameCallback]
[        ] packages/flutter/src/scheduler/binding.dart 1082:9                            handleDrawFrame
[        ] packages/flutter/src/scheduler/binding.dart 998:5                             [_handleDrawFrame]
[        ] lib/_engine/engine/platform_dispatcher.dart 963:13                            invoke
[   +1 ms] lib/_engine/engine/platform_dispatcher.dart 152:5                             invokeOnDrawFrame
[        ] lib/_engine/engine.dart 262:45                                                <fn>
[        ] The following RenderObject was being processed when the exception was fired: RenderCustomPaint#51071
relayoutBoundary=up2:
[   +2 ms]   creator: CustomPaint ← Center ← _BodyBuilder ← MediaQuery ← LayoutId-[<_ScaffoldSlot.body>] ←
[        ]     CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ← AnimatedDefaultTextStyle ←
[        ]     _InkFeatures-[GlobalKey#bb15d ink renderer] ← NotificationListener<LayoutChangedNotification> ←
[   +1 ms]     PhysicalModel ← ⋯
[        ]   parentData: offset=Offset(550.3, 224.8) (can use size)
[        ]   constraints: BoxConstraints(0.0<=w<=1200.0, 0.0<=h<=549.0)
[   +6 ms]   size: Size(99.3, 99.3)
[        ] This RenderObject has no descendants.
[   +7 ms] ════════════════════════════════════════════════════════════════════════════════════════════════════
[   +8 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +14 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +27 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +21 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[ +638 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +19 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +13 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +13 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +14 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +13 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +13 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +14 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +70 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +19 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +74 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +20 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[ +174 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +20 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +19 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +20 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +25 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +22 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[ +810 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +21 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +14 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +44 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +19 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +14 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +13 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +14 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +13 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +13 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +23 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[ +171 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +23 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +30 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +21 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +14 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +13 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +13 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +13 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +19 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +27 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +14 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +23 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +20 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[ +662 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +18 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[ +103 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +12 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +12 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +15 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +17 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[  +16 ms] Another exception was thrown: Assertion failed:
org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/html/canvas.dart:302:12
[+1640 ms] DevHandler: Stopped debug service on ws://<IP_ADDRESS>:60497

flutter doctor -v
[✓] Flutter (Channel master, 2.1.0-13.0.pre.233, on macOS 11.2.3 20D91 darwin-x64, locale en-GB)
    • Flutter version 2.1.0-13.0.pre.233 at /Users/tahatesser/Code/flutter_master
    • Framework revision 2f05751973 (3 hours ago), 2021-03-24 02:57:01 -0700
    • Engine revision d59a01d2d3
    • Dart version 2.13.0 (build 2.13.0-150.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 4.1)
    • 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 1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (3 available)
    • Redmi K20 Pro (mobile) • def0ad20 • android-arm64  • Android 10 (API 29)
    • macOS (desktop)        • macos    • darwin-x64     • macOS 11.2.3 20D91 darwin-x64
    • Chrome (web)           • chrome   • web-javascript • Google Chrome 89.0.4389.90

• No issues found!

/cc @ferhatb

I assigned this to myself because I have a much more compact implementation that reduces the code and also fixes this bug as a side effect.


connections to win7 fail and connections to win2008r2 are often dropped

RedHat released updates to freerdp and libwinpr to version 2.1.1-2 to address RHSA-2020:4031
We had many versions of windows that were working properly using Guacamole and freerdp-libs-2.0.0-46.rc4.
After that update we were no longer able to connect to any of the win7 systems and the win2008r2 systems would often drop sessions (especially if you click the Start button). Win10, win2012r2, win2016 and win2019 all continued to work properly.
I found I could get xfreerdp to have similar issues if I used '-themes +glyph-cache' (the Guacamole defaults).
I saw that several win7 issues were fixed in v2.2.0 so I built and tested that with similar results.
I built and tested current master and still have similar results. Here is a sample from current master:
[jonesds@dsjlx7 ~]$ /usr/bin/xfreerdp --version
This is FreeRDP version 3.0.0-dev (n/a)
[jonesds@dsjlx7 ~]$ /usr/bin/xfreerdp /v:win2008r2-test /u:user /p:I3 /cert-ignore  +glyph-cache /relax-order-checks
[18:18:22:830] [12756:12757] [INFO][com.freerdp.core] - freerdp_connect:freerdp_set_last_error_ex resetting error state
[18:18:22:830] [12756:12757] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[18:18:22:830] [12756:12757] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[18:18:22:830] [12756:12757] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[18:18:22:250] [12756:12757] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
[18:18:22:267] [12756:12757] [INFO][com.freerdp.core] - freerdp_tcp_is_hostname_resolvable:freerdp_set_last_error_ex resetting error state
[18:18:22:277] [12756:12757] [INFO][com.freerdp.core] - freerdp_tcp_default_connect:freerdp_set_last_error_ex resetting error state
[18:18:24:442] [12756:12757] [INFO][com.freerdp.gdi] - Local framebuffer format  PIXEL_FORMAT_BGRX32
[18:18:24:442] [12756:12757] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[18:18:24:564] [12756:12757] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[18:18:24:566] [12756:12757] [INFO][com.freerdp.channels.rdpsnd.client] - [static] Loaded fake backend for rdpsnd
[18:18:24:264] [12756:12757] [INFO][com.freerdp.core] - rdp_set_error_info:freerdp_set_last_error_ex resetting error state
[18:18:28:655] [12756:12757] [WARN][com.freerdp.core.update] - [0x35] UNKNOWN - Alternate Secondary Drawing Order UNKNOWN
[18:18:28:655] [12756:12757] [WARN][com.freerdp.core.update] - [0x35] UNKNOWN - SERVER BUG: The support for this feature was not announced!
[18:18:28:655] [12756:12757] [ERROR][com.freerdp.core.update] - order flags d4 failed
[18:18:28:655] [12756:12757] [ERROR][com.freerdp.core.fastpath] - Fastpath update Orders [0] failed, status 0
[18:18:28:655] [12756:12757] [ERROR][com.freerdp.core.fastpath] - fastpath_recv_update() - -1
[18:18:28:655] [12756:12757] [ERROR][com.freerdp.core.fastpath] - fastpath_recv_update_data() fail
[18:18:28:657] [12756:12757] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -3
[18:18:28:657] [12756:12757] [ERROR][com.freerdp.core] - freerdp_check_fds() failed - 0
[18:18:28:657] [12756:12757] [INFO][com.freerdp.client.common] - Network disconnect!
[18:18:28:657] [12756:12757] [ERROR][com.freerdp.client.x11] - Failed to check FreeRDP file descriptor
-- note: this works ---
[jonesds@dsjlx7 ~]$ /usr/bin/xfreerdp /v:win7support /u:user /p:I3 /cert-ignore   /relax-order-checks -themes
[18:18:48:046] [12804:12805] [INFO][com.freerdp.core] - freerdp_connect:freerdp_set_last_error_ex resetting error state
[18:18:48:046] [12804:12805] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[18:18:48:046] [12804:12805] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[18:18:48:046] [12804:12805] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[18:18:49:435] [12804:12805] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
[18:18:49:453] [12804:12805] [INFO][com.freerdp.core] - freerdp_tcp_is_hostname_resolvable:freerdp_set_last_error_ex resetting error state
[18:18:49:464] [12804:12805] [INFO][com.freerdp.core] - freerdp_tcp_default_connect:freerdp_set_last_error_ex resetting error state
[18:18:50:834] [12804:12805] [INFO][com.freerdp.gdi] - Local framebuffer format  PIXEL_FORMAT_BGRX32
[18:18:50:834] [12804:12805] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[18:18:50:928] [12804:12805] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[18:18:50:937] [12804:12805] [INFO][com.freerdp.channels.rdpsnd.client] - [static] Loaded fake backend for rdpsnd
[18:19:51:386] [12804:12805] [INFO][com.freerdp.core] - rdp_set_error_info:freerdp_set_last_error_ex resetting error state
[18:20:05:896] [12804:12805] [INFO][com.freerdp.client.x11] - Closed from X11
[jonesds@dsjlx7 ~]$ /usr/bin/xfreerdp /v:win7support /u:user /p:I3 /cert-ignore   /relax-order-checks -themes +glyph-cache
[18:20:23:555] [12963:12964] [INFO][com.freerdp.core] - freerdp_connect:freerdp_set_last_error_ex resetting error state
[18:20:23:556] [12963:12964] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[18:20:23:556] [12963:12964] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[18:20:23:556] [12963:12964] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[18:20:23:972] [12963:12964] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
[18:20:23:991] [12963:12964] [INFO][com.freerdp.core] - freerdp_tcp_is_hostname_resolvable:freerdp_set_last_error_ex resetting error state
[18:20:23:002] [12963:12964] [INFO][com.freerdp.core] - freerdp_tcp_default_connect:freerdp_set_last_error_ex resetting error state
[18:20:24:271] [12963:12964] [INFO][com.freerdp.gdi] - Local framebuffer format  PIXEL_FORMAT_BGRX32
[18:20:24:271] [12963:12964] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[18:20:24:392] [12963:12964] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[18:20:24:395] [12963:12964] [INFO][com.freerdp.channels.rdpsnd.client] - [static] Loaded fake backend for rdpsnd
[18:20:25:925] [12963:12964] [INFO][com.freerdp.core] - rdp_set_error_info:freerdp_set_last_error_ex resetting error state
[18:20:25:336] [12963:12964] [WARN][com.freerdp.core.update] - [0x00] Switch Surface - SERVER BUG: The support for this feature was not announced!
[18:20:25:336] [12963:12964] [WARN][com.freerdp.core.update] - Adding +offscreen-cache might mitigate
[18:20:25:336] [12963:12964] [ERROR][com.freerdp.cache.offscreen] - invalid offscreen bitmap at index: 0x000003E4
[18:20:25:336] [12963:12964] [WARN][com.freerdp.core.update] - Alternate Secondary Drawing Order [0x00] Switch Surface failed
[18:20:25:336] [12963:12964] [ERROR][com.freerdp.core.update] - order flags 02 failed
[18:20:25:336] [12963:12964] [ERROR][com.freerdp.core.fastpath] - Fastpath update Orders [0] failed, status 0
[18:20:25:336] [12963:12964] [ERROR][com.freerdp.core.fastpath] - fastpath_recv_update() - -1
[18:20:25:336] [12963:12964] [ERROR][com.freerdp.core.fastpath] - fastpath_recv_update_data() fail
[18:20:25:341] [12963:12964] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -3
[18:20:25:342] [12963:12964] [ERROR][com.freerdp.core] - freerdp_check_fds() failed - 0
[18:20:25:342] [12963:12964] [INFO][com.freerdp.client.common] - Network disconnect!
[18:20:25:342] [12963:12964] [ERROR][com.freerdp.client.x11] - Failed to check FreeRDP file descriptor
[jonesds@dsjlx7 ~]$ /usr/bin/xfreerdp /v:win7support /u:user /p:I3 /cert-ignore   /relax-order-checks -themes +glyph-cache +offscreen-cache
[18:26:01:923] [13409:13410] [INFO][com.freerdp.core] - freerdp_connect:freerdp_set_last_error_ex resetting error state
[18:26:01:923] [13409:13410] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpdr
[18:26:01:923] [13409:13410] [INFO][com.freerdp.client.common.cmdline] - loading channelEx rdpsnd
[18:26:01:923] [13409:13410] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[18:26:01:319] [13409:13410] [INFO][com.freerdp.primitives] - primitives autodetect, using optimized
[18:26:01:339] [13409:13410] [INFO][com.freerdp.core] - freerdp_tcp_is_hostname_resolvable:freerdp_set_last_error_ex resetting error state
[18:26:01:348] [13409:13410] [INFO][com.freerdp.core] - freerdp_tcp_default_connect:freerdp_set_last_error_ex resetting error state
[18:26:03:716] [13409:13410] [INFO][com.freerdp.gdi] - Local framebuffer format  PIXEL_FORMAT_BGRX32
[18:26:03:717] [13409:13410] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[18:26:03:826] [13409:13410] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[18:26:03:828] [13409:13410] [INFO][com.freerdp.channels.rdpsnd.client] - [static] Loaded fake backend for rdpsnd
[18:26:03:835] [13409:13410] [WARN][com.freerdp.core.update] - [0x3c] UNKNOWN - Alternate Secondary Drawing Order UNKNOWN
[18:26:03:835] [13409:13410] [WARN][com.freerdp.core.update] - [0x3c] UNKNOWN - SERVER BUG: The support for this feature was not announced!
[18:26:03:835] [13409:13410] [ERROR][com.freerdp.core.update] - order flags f2 failed
[18:26:03:835] [13409:13410] [ERROR][com.freerdp.core.fastpath] - Fastpath update Orders [0] failed, status 0
[18:26:03:835] [13409:13410] [ERROR][com.freerdp.core.fastpath] - fastpath_recv_update() - -1
[18:26:03:835] [13409:13410] [ERROR][com.freerdp.core.fastpath] - fastpath_recv_update_data() fail
[18:26:03:845] [13409:13410] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -3
[18:26:03:845] [13409:13410] [ERROR][com.freerdp.core] - freerdp_check_fds() failed - 0
[18:26:03:845] [13409:13410] [INFO][com.freerdp.client.common] - Network disconnect!
[18:26:03:845] [13409:13410] [ERROR][com.freerdp.client.x11] - Failed to check FreeRDP file descriptor
[jonesds@dsjlx7 ~]$

Please do not use +glyph-cache there are many issues with it and it does not really help performance or otherwise.
Do I read it correctly that this is the option that causes all of these issues?
from the xfreerdp help: +glyph-cache                      Enable Glyph cache (experimental)
So, using that as default is a really BAD idea!

We've been using Guacamole over Freerdp for many years, a couple of years ago they added 'knobs' to control the bitmap, offscreen and glyph cache with default enabled. That appeared to work well until RedHat released v2.1.1 and we started getting failures in Guacamole. After I realized it was the glyph-cache that was causing the Guacamole failures I recreated it using xfreerdp.
It appears to me that the Freerdp default for those 3 caches is disabled (with the warning on glyph), should the Guacamole folk default to disabled on all 3 as well?
Thanks

@TDi-jonesds the glyph cache never worked reliably and we never invested the time to fix it properly (documentation is not really good and it is not used in newer protocol versions)
the other caches work as expected, but glyph is really an annoying beast better not enabled.

@TDi-jonesds but why does that matter for your connections, for everything starting with vista (or 7?) at least /rfx and later /gfx is available and should be the default if available.

Thanks for the info, we're setting up to disable it by default in our use of Guacamole. We've done a fair amount of testing on win7 and newer and don't see any problem with disabling the glyph cache. I'll give Guacamole feedback about changing the default for their app.

@TDi-jonesds I´ve found the parsing issue and fixed it with #6509, the rest about glyph cache still stands.


integrating with gotty programmatically

Is there any way to use gotty programmatically from another application?
For example, I want to execute my application but also be in control as to what the user can type in or see.
Imagine I want to gotty ssh<EMAIL_ADDRESS>but I want to hide certain things from the user (e.g. welcome banner) or I want to automatically type certain commands on behalf of the user without them seeing it.
Any suggestions on how to achieve this or am I totally missing how gotty works?

rephrasing my example, it looks like gotty executes the command every time somebody connects to the web server.
I want to do a similar thing but I will be running the terminal command and then after I want to use gotty to be my PTY-to-web bridge.
This way I can hide things or even execute commands "blindly" without gotty even running, and only start gotty once my application is at the right stage.

You'd have to parse and exclude.

thanks. I started tinkering with it and looks like I'm getting somewhere now, thanks!

@horacimacias Is this issue still open?

it was more of a question than an issue but I guess this can be closed.
In my case, in case this helps anybody, I ended up wrapping my "final program" into something that suppresses all output until the "final program" is at the right stage.
Then I use gotty and the wrapper, so that the end user will only "see" what my wrapper allows to be shown to the user. Everything else my wrapper does not even "let through" to gotty so gotty does not show to the user.


don't try to resume update if diffView has been destroyed. fixes #94

also fixes https://github.com/littlebee/git-time-machine/issues/98 and https://github.com/littlebee/git-time-machine/issues/96

Thank you, @littlebee!


HTTPS

This defaults the gem to use HTTPS when hitting the HasOffers API endpoints. You can still set it back to HTTP manually if you really want to, but this seems like a more reasonable default. Otherwise, we're just sending credentials in the clear.
Maybe I'm missing something though :)

Good idea, looks good. Can you please rebase/squash the commits?

Done. :smiley:

Thanks!


adding pages

hello.
can i add pages(like: about us etc) or menu to this template by connecting my site with forestry??

Actually you can't add this type of page from forestry. you need to edit the source code.  you can follow this guide to do that https://docs.gethugothemes.com/guide/#maintain-page

I am going to close this issue. if you have more queries, don't hesitate to reopen this issue.


Add in out of core sort

This depends on https://github.com/rapidsai/cudf/pull/7381
The code is functionally complete and does a lot of things.
It improves the memory utilization of non-out of core sorting by not gathering columns that will not be output.
It adds in support for spill metrics so sort can report how many bytes were spilled
It fixes a bug in hash aggregate that made first and last not output the correct answer if multiple batches came in.
and it adds in support for out of core sort.
I still need to do some documentation work for sort.
I have been running some benchmarks and out of core is noticeably slower than the other version, but it can sort massive amounts of data. (I was able to sort 100GB in a single task on a 16GB V100), The performance was also fairly awful, but it was spilling.
There are a few more optimizations I want to try and play around with, but I was also hoping for some feedback/ideas on how to improve the performance.
If the code is hard to follow please let me know so I can add in more comments.
I am really interested in ideas for how to split up the batches to combine later on, because this is key to the algorithms performance. Right now I split incoming batches up into ones that are about target size/8.  This means two things. First, if you want to sort data that is smaller than target size/8 or with default configs that is 2GB/8 = 256MB then no merge sort will be done. The overhead is in putting the data into the spill buffer and pulling it back out. I need to do some profiling on this and clean up but ideally it should match the original time. The second thing this means is that if we get less than 8 times the target size (16GB) of input data then we can likely sort all of the data in just 2 passes. One pass to sort it and store it, and the second pass to merge sort and output results.
If we could be more dynamic in this we could probably get better numbers in both cases, but I am not sure of a good algorithm to do that.
This addresses part of #1642 it should fix it until we start to support rank, but then we need to look at out of core window functions.
This fixes #19

This should now be ready for review.  The dependency was merged into cudf 0.19 this morning, but will probably not be all the way through CI until tomorrow.

build

@jlowe and @abellina I think I have addressed most of your review comments. There are still a few things left that I asked questions on. I think I will switch the configs over to talk about stable vs non-stable sorts instead of out of core. But I want to hold off to be sure that there are not other things found/decided on.

build

@jlowe @abellina I think I have addressed all of your review comments. Please take another look

build

I think I got the final nits from everyone.  Thanks for the reviews

build


Automatic error report

Had few files open
Opened tools-preferences-syntax coloring
Changed color scheme to Spyder Dark
Clicked ok
Spyder froze for a few secs
got this bug report prompt

Resolved


Fix RTD memory issue by using mamba

Summary of changes:

specify mamba for RTD builds using the instructions here

The latest RTD build for this branch failed. Once it is fixed, I can approve this.

@erogluorhan I thought I'd broken something again, but I re-ran the docs and they're passing now.


How To import Binance Wallet to Omni Wallet

By Mistake I have transferred funds from My Binance BTC wallet Using Omni Network, I am able to view the balance using my Binance BTC Wallet Address in Omni Wallet, However I don't have access to Fund, I tried Importing Wallet, But Binance I am not able  to find Private Key. Need Help to get access to my funds.

I have the same issue, you need to find a wallet that supports the OMNI network
I am trying to find one right now and will leave a comment here if I do locate one


Could not compile v0.1.0 on Windows

Have a look at this build: https://ci.appveyor.com/project/kpp/tox/build/1.0.1654
Commit: https://github.com/tox-rs/tox/commit/93f989a54b
Fixes https://github.com/tox-rs/tox/pull/160

@kpp Thanks for reporting this issue. We will look into it.

You may use our Appveyor config to setup CI

@kpp do you mind sending a PR? :stuck_out_tongue:

Sure. Register your project at https://appveyor.com/ to allow github use webhooks to trigger CI buils

@kpp done :

Fixed.


Would it be possible to add a license to this project?

@awtkns there is already a MIT license added to the project.


Peer to peer review september 23rd

Hey, your project is looking good! However, we have some suggestions about your project that might make your project look even better!!

Local Storage
You did a really good job storing the activities into local storage, however, it looks like you are not loading them!! This is a really important feature you have to consider adding! Other than that I think I have no more suggestions.
Happy Coding!


Save status observation and paddle initial states

First commit saves status as image in a folder called 'states', only in training time. Only implemented in dqn_atari.py. Its helpful to see what our agent is watching while playing.
Second commit paddles states with last frame as it's advised here:

We suggest to model initial states by replicating the state instead of padding it with zeroes and to model the terminal states in the network itself and not the target function

is esentially the same as the previous PR which I cancelled, but this includes a states folder to save states observed into it

I'm okay with changing the way we handle initial states for the memory but adding the state saving capabilities like this is not going to work. This can log a lot of stuff and slow down training quite significantly. Additionally, not everybody will want to use that feature. It would be better to write a custom callback for the state saving if you really want/need that feature.
Again, I'm happy to consider the change for the memory but please separate that change from the state saving.


archiveTTL not respected ?

Summary
What happened/what you expected to happen?
In the configmap, I set persisntece.archiveTTL to 60d (the line was previously commented in my configmap)
I then restarted the pods with k rollout restart deployment workflow-controller and k rollout restart deploy argo-server
However, in my db, I still have rows in argo_archived_workflows older than 60d and I still have log files in my artifactRespoitory
-> Did I miss something when I reconfigured ? How can I see what config argo has loaded in order to check ?
Another question : will the archiveTTL also clean the artifact repository because I have archiveLogs: true in the artifactRespoitory section ?
What version of Argo Workflows are you running?
3.1.1

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

Can you please look at the section of the controller logs does archiving? Maybe there is an error there?

@alexec The keywords "archive" & "archiving" do not appear in the workflow-controller logs
The only ting I can see is a block of 6
time="2021-12-03T08:19:03.096Z" level=info msg="Enforcing history limit for 'xxx'" namespace=staging-argo workflow=xxx

where xxx are the names of my 6 cron workflows
What should I see in the logs ?

@alexec could you also give me a pointer about the cleaning of logs (i.e if the archiveTTL only delete archived workflows in the db, I need to create a routine to delete the log files in the artifact repository because my main problem is the fact that the artifactRepository contains 1 directory per workflow and so I have 30K directories...)

@alexec ok, it seems there is some "cron" somewhere because now I have this in the logs
time="2021-12-03T15:57:36.115Z" level=info msg="Performing archived workflow GC"
time="2021-12-03T15:59:59.150Z" level=info msg="Deleted archived workflows" rowsAffected=16527

So the only thing to know is : did it also clean the logs in the artifactRepository ?

It will not clean up your logs. You must do that yourself.

#10904 10904


Feature/proposal to track profile who did the actions aka follow / collect etc

With wallet being able to follow and collect as the main ethos of this protocol you do hit some UI/UX issues when trying to display this to the users. If you can tag the profileIds you did the action on this allows you to show notifications based on the profile itself same with followers.
Yes you would have some edge cases where:

0x...01 follows @josh passing in profileFollowedWith @cat
UI shows 0x..01 follows me from @cat
0x..01 sells @cat to 0x..01
0x..01 still follows @cat but now doesn't own a profile so you would have to handle this case here on UI

but overall it allows UIs greater flexibility to at least link some of this data together! These few event changes allow the indexer to match this all up!

Closing this after a meeting this morning with design team we think the main identity from wallet > profile would be better like how ENS works and solves a lot of UX issues... another PR will come soon.

https://github.com/aave/lens-protocol/pull/27 < this is the PR which superseded this


[WIP] port to sapper

Staged version: https://sveltetechnology-lwbhpbhswb.now.sh/
I think this is basically done. Hard to overstate what an improvement it is from an authoring perspective. Should be quicker as well — the initial payloads are smaller thanks to code-splitting. We do pretty well in Lighthouse:

The one thing we lose (that I'm aware of) is some subtle navigation behaviour: currently, if you open the menu on mobile and navigate somewhere, the menu closes gracefully. With the Sapper version, the entire page is re-rendered, which means the menu is destroyed (along with the animation) and recreated. I don't think that should be considered a blocker, but it would be nice to come up with some kind of a solution.


can springfox-swagger2 ui support choose multiple file once?

Latest project I used spring boot and integrated swagger-ui（springfox-swagger2）， I want to once upload multiple files , so operator could batch upload goods images, my controller method is
@ApiOperation(value = "batch upload goods cover image", notes = "batch upload goods cover image",
  response = UploadCoverResultDTO.class, responseContainer = "List")

public Result<?> uploadGoodsCover(@ApiParam(value = "Image array", allowMultiple = true,
  required = true) @RequestPart("image") MultipartFile[] files) throws IOException

and real swagger ui effect is:

But I want this effect

Can springfox-swagger2 support this? or even more convenience once choose all pictures in one folder, like
<input type="file" name="img" multiple="multiple"/>

This is not currently supported in swagger-ui I think

Same behavior in version 2.6.1. Is it supported now?

This is only going to be supported when swagger-ui supports it. The right place to create an issue is in the swagger-ui project.


No error using keywords in dotted module names

Reported originally on https://typescript.codeplex.com/workitem/2540
module module.var.var {
    export var a;
}

Generated JS is invalid, but it's not a compiler error now.

It is an error on the TypeScript Playground now ("Identifier expected"), so is this something that should stil be open or do you want a better error message?

The error message/recovery is pretty bad right now:

Would be great if we can give the straightforward error description.

Closing for housekeeping purposes. The behavior outlined in the OP has been in place for over 18 month now and have not got any updates on this issue. Please file a new issue if an action is required.


Boost version Error: Running Rippled on Mac (Darwin)

Hi,
I'm trying to run rippled on Mac OS (uname output: Darwin username 21.5.0 Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:37 PDT 2022; root:xnu-8020.121.3~4/RELEASE_ARM64_T6000 arm64)
I have checked out the develop branch of this repository (the last commit hash: is commit e32bc674aa2a035ea0f05fe43d2f301b203f1827)
I have installed Boost 1.75.0 and configured the paths in my .zshrc file. But due to line 15 in Builds/CMake/RippleConfig.cmake and Builds/CMake/deps/FindBoost.cmake (these are the few of the many files that contain "1.70" Boost version), I'm getting a dependency (Boost) version mismatch error.
-- gch:e32bc674aa2a035ea0f05fe43d2f301b203f1827
-- Using 4 cores for ExternalProject builds.
-- rippled version: 1.9.1
-- NIH-EP cache path: /Users/keshava/rippled/.nih_c/unix_makefiles/AppleClang_<IP_ADDRESS>00027/Debug
-- docker NOT found -- won't be able to build containers for packaging
-- BOOST_ROOT: /Users/keshava/Downloads/boost_1_75_0
-- BOOST_LIBRARYDIR:
CMake Error at /opt/homebrew/Cellar/cmake/3.23.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Boost (missing: chrono container context coroutine date_time
  filesystem program_options regex system thread) (found suitable version
  "1.75.0", minimum required is "1.70")
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.23.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  Builds/CMake/deps/FindBoost.cmake:1994 (find_package_handle_standard_args)
  Builds/CMake/deps/Boost.cmake:47 (find_package)
  CMakeLists.txt:54 (include)

-- Configuring incomplete, errors occurred!

The error message contained pointers to additional log files as well.
I understand that Mac is not the preferred environment for running rippled. Am I doing anything wrong here? What can I do to execute rippled on mac?
I tried changing Boost version to 1.75.0 (instead of 1.70), but there are many such occurences and I wasn't sure if it is recommended to do so.

This issue popped up due to an incorrect building of the Boost libraries. It is important to run the "b2" executable after the successful excution of bootstrap.sh file, as detailed in this page - https://xrpl.org/build-run-rippled-macos.html


Migrating from Lerna+Yarn to Rush+PNPM

Since Lerna is maintained again by the awesome guys of NX, and they are integrating the two tools, this won't be updated anymore. Yarn+Lerna+NX are the new tools used.


Finalize Onboarding Procedures for non-Core Contributors

Hi all,
We met with Tom from Veramed on Monday to discuss their involvement with admiral.  There seemed to be some confusion between how much access he would have as a non-Core Contributor.  Is there a decision/process around this?  In my discussion with Samia I was very unclear on this.
Is it possible to just give full access?  Later if we have a deluge of outside contributors (low probability), then we could revisit this, but it would make it a lot easier if we didn't have tier-levels of contributor access.
This does beg the question if we should be doing a purging of contributors every 6 months or so.

To directly push code to our repo "Write" access is required. As main and devel are protected branches anyway I don't see an issue granting this permission to non-core contributors. So, basically they would get the same rights as core contributors but not admin rights 😉

Can we give access to Tom Ratford then?  @kabis-ops IS there anything else we need to do to onboard Tom?  We can get his Github user name and add to repo if everyone is happy with having a non-Roche/GSK person contributing.

@bms63 Feel free to do so here.


Add Search Bar

I can add an animated responsive search bar. Can you please assign me?

Sure, if you make it in the main page, make sure to follow the theme, otherwise create a separate page for it.

Yeah, I could do both. I will try to include it in the main page itself.

@xMrAfonso i can solve this issue can you assign it to me


Migrate to sorted PPs

Task/Issue URL:
Description
Stacked PR migrating existing plugins to sorted plugins
Steps to test this PR
Smoke test que parts of the app with sorted plugins

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

develop

#4155

#4156   👈

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @aitorvs and the rest of your teammates on  Graphite


$http service should accept xhr2's responseType property

http://www.html5rocks.com/en/tutorials/file/xhr2/
Requesting the resource as a "blob" or "arraybuffer" is something new to xhr and is quite useful for working with binary data

I'm trying to get binary data (a simple jpeg image) with responseType: 'blob' (also tried 'arraybuffer'), but the data property of the response object is always a string instead of a Blob object. Am I doing something wrong? This issue is closed, so it should work, right?

Ok I found out it didn't work because I was using ngMockE2E. However, I specified to passThrough() the request - it seems like $httpBackend swallows the responseType parameter.
See https://github.com/angular/angular.js/pull/11524


Python Wrapper: Release Blocker: support writer

We need to rethink the create method.
Either:

Return a writer from the create method which implements the IO interface
Use the open method with write modes to return an ObjectWriter
Other?

Some more context:
Many Python libraries do serialization by accepting a file-like object (as opposed to create(data=...) that currently requires the caller to provide a file-like object that we read from.
Examples:

Standard library

pickle.dump(fp, data)
json.dump(fp, data)
csv.writer(f)

PIL - Image.save()
PyYAML - yaml.dump()
Pandas - pandas.DataFrame.to_csv() (and all other DataFrame.to_* methods)

Many other Python libraries seem to behave this way.
Using the current design, this would require setting up an intermediate buffer (io.BytesIO, write to that object, and pass it back to create(). This means we lose the benefits of being able to stream.

My suggestion:

replace create with an upload(data=..) leaving the interface as-is.
expose an additional writer() context manager and object:

with branch.object('foo.csv').writer() as f:
    yaml.dump(f)

# or without the context manager:
f = branch.object('foo.csv').writer():
yaml.dump(f)
f.flush() # or f.close()

Looking for thoughts/feedback on this, of course.

My suggestion:

rename create to upload leaving the arguments as-is.
expose an additional writer() context manager and object:

with branch.object('foo.csv').writer() as f:
    yaml.dump(f)

# or without the context manager:
f = branch.object('foo.csv').writer():
yaml.dump(f)
f.flush() # or f.close()

Looking for thoughts/feedback on this, of course.

If providing the writer context - why not provide it in the context of open and add the appropriate write modes?
Also suggest in that case to limit the upload functionality to either file names / explicit strings bytes

fine with both. The reasoning to differentiate open() from create() is @arielshaqed's comment on the original proposal which still holds true IMO.
Another design option to separate the two and perhaps remove some ambiguity, is to replace open() with reader(mode: Literal['r', 'rb'] = 'rb') and writer(mode: Literal['w', 'wb', 'x', 'xb'] = 'wb').
Example:

with branch.object('foo.yaml').reader() as fr:
    data = yaml.load(fr)

with branch.object('foo.yaml').writer() as fw:
    yaml.dump(fw, data)

With that, we can optionally also provide an upload(data: bytes | string = "") and perhaps at some later point upload_file(path: str | os.PathLike[str] = "").
WDYT? @N-o-Z @arielshaqed

Seems like a good solution. Just to make sure:

Will reader / writer support modes (as was with open and create including 'x', 'xb')?

Yes, see above.

Will upload also accept the same writer modes?

I would suggest so, for consistency

Is the writer RW or write only?

write-only.

How do you suggest handling write buffering (we can't rely on access to disk)

I think we can start with a reasonable hard-coded value (1MiB?) and later make it configurable on the Client object (including DefaultClient). WDYT?

Should we support write after flush?

Why not? as long as we haven't closed, flush should empty the buffer into the HTTP connection. close() becomes important here - not calling it when in pre-signed mode means data was uploaded into the void..
Again, opinions and suggestions welcome.

As currently we don't support multipart upload, suggest to hold no more than 32MB of data before we switch to use tmp file to hold the content.
Love zero abstractions, can pay for some abstractions, but sometimes when it is too expensive I prefer to just document and enable fast upload using filename/bytes.

@guy-har Note the changes required in the interface


Add /github/workspace to safe.directory

Fixes #59.

It seems that this approach doesn't work. I will try again in the future.


got HTTP 404 error when running "pulsar-admin functions list" on functions-worker

Describe the bug
when running "pulsar-admin functions list" on functions-worker, i got HTTP 404 error, however, running "pulsar-admin functions status ..." got the right response
To Reproduce
Steps to reproduce the behavior:
I have 3 functions-worker and 3 broker, and in the client.conf on all functions-worker, webServiceUrl =http://<functions-worker ip1>:6750/
brokerServiceUrl=pulsar://<broker ip1>:6650,<broker ip2>:6650,<broker ip3>:6650/
Expected behavior
get the functions list
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]

Additional context
Add any other context about the problem here.

Thanks @wjybupt for reporting this issue.  Which version of Pulsar is used?
@wolfstudy Is this a know issue?

webServiceUrl =http://:6750/

The pulsar-admin is using 8080, can you try it again?

ok, i will try on monday as it was deploy in the product environment which is isolate from the public network. thank u~
---Original---
From<EMAIL_ADDRESS>Date: Fri, Jan 3, 2020 20:55 PM
To<EMAIL_ADDRESS>Cc: "wjybupt"<wjybupt<EMAIL_ADDRESS>Subject: Re: [apache/pulsar] got HTTP 404 error when running "pulsar-admin functions list" on functions-worker (#5947)
webServiceUrl =http://:6750/
The pulsar-admin is using 8080, can you try it again?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

according to the official doc, "pulsar-admin functions list" is support by the functions-worker, and in functions-worker's config file(functions_worker.yml), the workerPort is 6750 and workerPortTls is 6751.
when i use 6750, "pulsar-admin functions list" is unavailable, but "pulsar-admin sinks list" works. and other cmd just like "pulsar-admin functions get/state/stats" works well, that why i am confused.
------------------ 原始邮件 ------------------
发件人<EMAIL_ADDRESS>发送时间: 2020年1月3日(星期五) 晚上8:55
收件人<EMAIL_ADDRESS>抄送: "kiss fire"<wjybupt<EMAIL_ADDRESS>主题: Re: [apache/pulsar] got HTTP 404 error when running "pulsar-admin functions list" on functions-worker (#5947)
webServiceUrl =http://:6750/
The pulsar-admin is using 8080, can you try it again?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

You can try :
curl http://functions-worker ip1:6750/admin/v2/functions/{TENANT}/{NAMESPACE}

Function worker has no functions list API (for all tenant)

Same issue for me on 2.5.1:
bin/pulsar-admin functions list --tenant internal --namespace classification
HTTP 404 Not Found

Reason: HTTP 404 Not Found

but there is a function there:
bin/pulsar-admin functions get  --tenant internal --namespace classification --name classification_out_router
{
  "tenant": "internal",
  "namespace": "classification",
  "name": "classification_out_router",
  "className": "classification_out_router.RoutingFunction",
  "inputSpecs": {
    "persistent://internal/classification/out": {
      "isRegexPattern": false
    }
  },
  "processingGuarantees": "ATLEAST_ONCE",
  "retainOrdering": false,
  "userConfig": {},
  "runtime": "PYTHON",
  "autoAck": true,
  "parallelism": 1,
  "resources": {
    "cpu": 1.0,
    "ram":<PHONE_NUMBER>,
    "disk":<PHONE_NUMBER>0
  },
  "cleanupSubscription": true
}

I encountered the same issue when I list brokers. In my case, I change the 8080 port to 8087. The pulsar version is 2.8.1.
./bin/pulsar-admin brokers list pulsar-cluster
HTTP 404 Not Found

Reason: HTTP 404 Not Found

Thanks for sharing your investigation @Hongten!
I believe it's something about port conflict or port misconfigured. Closed as information delivered.
If you think it's a bug, feel free to open a new issue with the Pulsar version and reproduce steps (demo repo).

I am facing this issue in pulsar 3.1 or 3.0.1 docker containers. I have tried change the port config as mentioned in the container. still facing this issue.
Could someone suggest here ?


WKT -> PROJJSON

👋 Hi Even, awesome work on this.
I've been looking through the code and thinking about trying to write an implementation that converts from WKT to PROJJSON. I think a pure-Python example of this could partly assuage some PROJJSON interoperability concerns, e.g. in https://github.com/geopandas/geo-arrow-spec/issues/8#issuecomment-1164285103.
My thinking is that I'd implement a WKT parser (prior pure-Python art here https://github.com/karimbahgat/PyCRS/blob/master/pycrs/parse.py#L136-L423) and then attempt to follow your code for the inverse mapping of tags from WKT into PROJJSON (probably first starting just with WKT2 and then maybe later with WKT1).
Would you be interested in a PR to this repo? Or would you prefer to keep this repo minimal with just PROJJSON -> WKT?

Would you be interested in a PR to this repo?

make sense.
Note that the PROJJSON -> WKT1 in the existing code is more a toy than something actually useful. It produces syntaxically valid WKT1, but the issue is that real interoperability comes with projection method and parameter names, datum names, etc. and traditionnaly WKT1 in GDAL <= 2.4 uses quite different names from the one of WKT2 with latest EPSG database, and this more or less requires a full PROJ implementation to do those non-trivial morphing. So you'd better restricting your scope to WKT2:2019 -> PROJJSON.


[Build System: build-script] Update the --stdlib-deployment-targets flag to no longer append from multiple uses, instead use the standard last-wins strategy.

This aligns better with the existing documentation for the argument and the similar --build-stdlib-deployment-targets flag. I've programmatically verified that all presets existing in the repo do not utilize the previously undocumented behavior. Which is to say that there are no presets that ever have two occurrences of --stdlib-deployment-targets once expanded and the --swift-sdks argument has been migrated.

@swift-ci please test and merge

@swift-ci please test and merge

@swift-ci please test and merge

@swift-ci please test Linux

@swift-ci please smoke test Linux

Build failed
Swift Test Linux Platform
Git Sha - 5fb5d88b91ba12e79e53e09c67cddb57b7d97fef

@swift-ci please test Linux

@swift-ci please test macOS Platform

@swift-ci please smoke test macOS

Build failed
Swift Test OS X Platform
Git Sha - 5fb5d88b91ba12e79e53e09c67cddb57b7d97fef

@swift-ci please smoke test macOS Platform


update pypi CHANGELOG.md for releases 22.08.00 and 22.08.01

Think this got resolved by the forward-merge PR ( https://github.com/rapidsai/cucim/pull/403 ), but please double check

That content is mostly the same, but this is a second copy of the CHANGELOG.md that is under the python/cucim folder and gets included in the long_description in setup.py so that it shows up on PyPI. I didn't realize we even had this second changelog when I did the 22.08.00 release, so it was not updated at that time. That is why both 22.08.00 and 22.08.01 changes are both here.
It seems we could migrate to just a single file going forward. (as for the README issue you recently raised in #397)

This is where these second copies are used:
https://github.com/rapidsai/cucim/blob/90fc72aa149b2bd2fa89622e2fb5f0ab5010b596/python/cucim/setup.py#L33-L37

Oh missed that. Thanks for clarifying Greg 🙏
Yeah think tracking these duplicates down and coming up with a way to consolidate should save us additional maintenance work in the future

@gpucibot merge

Thanks Greg! 🙏


Learn about best practices to employ ?

Not sure if employ is the write wording on the meta description:

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

ID: 8e353ed2-980c-d8c6-9fea-b1ba2a705b40
Version Independent ID: 55628956-caca-d64f-588f-4d48d58b817a
Content: Best practices for Microsoft Sentinel
Content Source: articles/sentinel/best-practices.md
Service: microsoft-sentinel
GitHub Login: @limwainstein
Microsoft Alias: lwainstein

@kborkowski
Thanks for your feedback! We will investigate and update as appropriate.

@kborkowski
Could you explain more about the issue like which section of the document have you mentioned about?

@YashikaTyagi-MSFT
Please ignore.


Bug: Index.save method raise TypeError on Path argument

Describe the bug
Index.save method has following declaration: save(path: Optional[PathLike] = None). From python docs Path implements PathLike protocol. So I expected that passing Path object is fine, but I got an error.
TypeError: save(): incompatible function arguments. The following argument types are supported:
    1. (self: usearch.compiled.Index, path: str) -> None
Invoked with: <usearch.compiled.Index object at 0x7f5955d810b0>, PosixPath('index.usearch')

I recommend to use either str type annotation or add support for Path objects: e.g. just calling str(path).
Steps to reproduce
import numpy as np
from pathlib import Path
from usearch.index import Index

index = Index(ndim=3)
vector = np.array([0.2, 0.6, 0.4])
index.add(42, vector)
index.save(Path("index.usearch"))

Expected behavior
File "index.usearch" created.
USearch version
0.22.3
Operating System
Ubuntu 20.04.6
Hardware architecture
x86
Which interface are you using?
Python bindings
Contact Details
No response
Is there an existing issue for this?

[X] I have searched the existing issues

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I think the most accurate solution is to use os.fspath() method, since PathLike interface has relative method as you can see from python code.

Thanks, @AleksandrKent! Fixed, coming in the next release!

:tada: This issue has been resolved in version 0.23.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


ListOrdersByNextToken only needs NextToken as a parameter

https://github.com/ScaleLeap/amazon-mws-api-sdk/blob/e1fd605b8ebd6d647ff32f61bf4c0e67aafdf62e/src/sections/orders.ts#L341-L353
ListOrdersByNextToken is attaching too many parameters but MWS docs only lists NextToken as parameter
http://docs.developer.amazonservices.com/en_CA/orders-2013-09-01/Orders_ListOrdersByNextToken.html

You are correct, we don't need those params. Feel free to remove the argument and the ...spread in the request.


bernpoly behaviour at infinity with 0 imaginary component

Good:
>>> inf = float('inf')
>>> mpmath.bernpoly(3, inf)
mpf('+inf')

>>> mpmath.bernpoly(4, inf)
mpf('+inf')

Now how about complex with 0 imag part?  This seems ok:
>>> bernpoly(4, complex(inf, 0))
mpc(real='+inf', imag='0.0')
```
But:
```
>>> bernpoly(3, complex(inf, 0))
mpc(real='nan', imag='nan')

This isn't wrong per se if you think of complex(..., 0) as a very small negative part.
Do we care?  Correct behaviour at real infinity is very nice property but maybe exactly what happens for complex(..., 0) is less important?

Ah, that happens because of specialized code:
https://github.com/mpmath/mpmath/blob/cf98bcf07d7d6ef8ebfc0575276107aac46519b9/mpmath/functions/zeta.py#L291-L295
z = mpc(inf, 0); z*(z*(z-1.5)+0.5)
mpc(real='nan', imag='nan')
>>> z**3
mpc(real='inf', imag='0.0')

This is slightly better in C, because it complex arithmetic has special rules for real operands:
$ cat a.c
#include <complex.h>
#include <math.h>
#include <stdio.h>
int main(void)
{
    double complex z = CMPLX(INFINITY, 0);
    z = z*(z*(z-1.5)+0.5);
    printf("%lf%+lfj\n", creal(z), cimag(z));
    return 0;
}
$ gcc a.c -std=c17 -Wpedantic -lm && ./a.out
inf-nanj

https://github.com/mpmath/mpmath/issues/805 might help here.  But simplest solution would be moving handling all special cases (inf/nans) up.


CouchDB support in Gauge is not tested

@shivarammysore  - CouchDB support in Gauge has no tests. In particular, it does not handle CouchDB being down (if CouchDB is down Gauge will crash).
CouchDB should get tests in the same way as InfluxDB is tested (ie the most basic down/up test).
instantiating app /home/faucet/faucet/src/ryu_faucet/org/onfsdn/faucet/gauge.py of Gauge
Traceback (most recent call last):
File "/usr/local/bin/ryu-manager", line 9, in
load_entry_point('ryu==4.11', 'console_scripts', 'ryu-manager')()
File "/usr/local/lib/python2.7/dist-packages/ryu/cmd/manager.py", line 81, in main
services.extend(app_mgr.instantiate_apps(**contexts))
File "/usr/local/lib/python2.7/dist-packages/ryu/base/app_manager.py", line 509, in instantiate_apps
self._instantiate(app_name, cls, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/ryu/base/app_manager.py", line 495, in _instantiate
app = cls(*args, **kwargs)
File "/home/faucet/faucet/src/ryu_faucet/org/onfsdn/faucet/gauge.py", line 77, in init
watcher = watcher_factory(conf)(conf, self.logname)
File "/home/faucet/faucet/src/ryu_faucet/org/onfsdn/faucet/watcher.py", line 455, in init
self.setup()
File "/home/faucet/faucet/src/ryu_faucet/org/onfsdn/faucet/watcher.py", line 106, in setup
self.switch_database, exists = self.conn.create(self.conf.switches_doc)
File "/home/faucet/faucet/src/ryu_faucet/org/onfsdn/faucet/nsodbc.py", line 91, in create
self.database[db_name] = DatabaseCouch(self.conn.create(db_name))
File "/usr/local/lib/python2.7/dist-packages/couchdb/client.py", line 207, in create
self.resource.put_json(name)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 570, in put_json
**params)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 585, in _request_json
headers=headers, **params)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 581, in _request
credentials=self.credentials)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 289, in request
conn = self.connection_pool.get(url)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 507, in get
conn.connect()
File "/usr/lib/python2.7/httplib.py", line 836, in connect
self.timeout, self.source_address)
File "/usr/local/lib/python2.7/dist-packages/eventlet/green/socket.py", line 69, in create_connection
raise err
socket.error: [Errno 111] ECONNREFUSED

I believe there is a setting in gauge.yaml which is "file" for flow_table
data.  Maybe we should use that as the default and comment out the CouchDB
part as documentation for folks who will use it.
On Wed, Mar 8, 2017 at 4:45 PM, Josh Bailey<EMAIL_ADDRESS>wrote:

@shivarammysore https://github.com/shivarammysore - CouchDB support in
Gauge has no tests. In particular, it does not handle CouchDB being down
(if CouchDB is down Gauge will crash).
CouchDB should get tests in the same way as InfluxDB is tested (ie the
most basic down/up test).
instantiating app /home/faucet/faucet/src/ryu_faucet/org/onfsdn/faucet/gauge.py
of Gauge
Traceback (most recent call last):
File "/usr/local/bin/ryu-manager", line 9, in
load_entry_point('ryu==4.11', 'console_scripts', 'ryu-manager')()
File "/usr/local/lib/python2.7/dist-packages/ryu/cmd/manager.py", line
81, in main
services.extend(app_mgr.instantiate_apps(**contexts))
File "/usr/local/lib/python2.7/dist-packages/ryu/base/app_manager.py",
line 509, in instantiate_apps
self._instantiate(app_name, cls, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/ryu/base/app_manager.py",
line 495, in _instantiate
app = cls(*args, **kwargs)
File "/home/faucet/faucet/src/ryu_faucet/org/onfsdn/faucet/gauge.py",
line 77, in init
watcher = watcher_factory(conf)(conf, self.logname)
File "/home/faucet/faucet/src/ryu_faucet/org/onfsdn/faucet/watcher.py",
line 455, in init
self.setup()
File "/home/faucet/faucet/src/ryu_faucet/org/onfsdn/faucet/watcher.py",
line 106, in setup
self.switch_database, exists = self.conn.create(self.conf.switches_doc)
File "/home/faucet/faucet/src/ryu_faucet/org/onfsdn/faucet/nsodbc.py",
line 91, in create
self.database[db_name] = DatabaseCouch(self.conn.create(db_name))
File "/usr/local/lib/python2.7/dist-packages/couchdb/client.py", line
207, in create
self.resource.put_json(name)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 570,
in put_json
**params)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 585,
in _request_json
headers=headers, **params)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 581,
in _request
credentials=self.credentials)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 289,
in request
conn = self.connection_pool.get(url)
File "/usr/local/lib/python2.7/dist-packages/couchdb/http.py", line 507,
in get
conn.connect()
File "/usr/lib/python2.7/httplib.py", line 836, in connect
self.timeout, self.source_address)
File "/usr/local/lib/python2.7/dist-packages/eventlet/green/socket.py",
line 69, in create_connection
raise err
socket.error: [Errno 111] ECONNREFUSED
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/REANNZ/faucet/issues/448, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABmf84k2wmn7QkCKhjFMT6bJDjHRuVAoks5rj0vDgaJpZM4MXgQo
.

https://github.com/faucetsdn/faucet/commit/ba59208fc76382968d7d7c5dbcb0b9ce58765c72