Dialog crash 2

I/flutter (15109): ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter (15109): The following assertion was thrown while handling a gesture:
I/flutter (15109): Looking up a deactivated widget's ancestor is unsafe.
I/flutter (15109): At this point the state of the widget's element tree is no longer stable. To safely refer to a
I/flutter (15109): widget's ancestor in its dispose() method, save a reference to the ancestor by calling
I/flutter (15109): inheritFromWidgetOfExactType() in the widget's didChangeDependencies() method.
I/flutter (15109): When the exception was thrown, this was the stack:
I/flutter (15109): #0      Element._debugCheckStateIsActiveForAncestorLoopkup.<anonymous closure> (package:flutter/src/widgets/framework.dart:3181)
I/flutter (15109): #1      Element._debugCheckStateIsActiveForAncestorLoopkup (package:flutter/src/widgets/framework.dart:3190)
I/flutter (15109): #2      Element.ancestorStateOfType (package:flutter/src/widgets/framework.dart:3232)
I/flutter (15109): #3      Navigator.of (package:flutter/src/widgets/navigator.dart:712)
I/flutter (15109): #4      AppBarFactory._showFailedToLogoutDialog.<anonymous closure> (package:van_mobile_flutter/app/r/app_bar.dart:67)
I/flutter (15109): #5      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:323)
I/flutter (15109): #6      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:375)
I/flutter (15109): #7      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102)
I/flutter (15109): #8      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:149)
I/flutter (15109): #9      TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:92)
I/flutter (15109): #10     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:315)
I/flutter (15109): #11     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73)
I/flutter (15109): #12     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101)
I/flutter (15109): #13     BindingBase&SchedulerBinding&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:143)
I/flutter (15109): #14     BindingBase&SchedulerBinding&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121)
I/flutter (15109): #15     BindingBase&SchedulerBinding&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101)
I/flutter (15109): #16     BindingBase&SchedulerBinding&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64)
I/flutter (15109): #17     BindingBase&SchedulerBinding&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48)
I/flutter (15109): #18     _invoke1 (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:105)
I/flutter (15109): #19     _dispatchPointerDataPacket (file:///b/build/slave/Linux_Engine/build/src/flutter/lib/ui/hooks.dart:63)
I/flutter (15109): Handler: onTap
I/flutter (15109): Recognizer:
I/flutter (15109):   TapGestureRecognizer#e28eb(debugOwner: GestureDetector, state: possible)
I/flutter (15109): ════════════════════════════════════════════════════════════════════════════════════════════════════

Make example dialog, click "OK"
$ flutter doctor
[✓] Flutter (on Linux, locale en_US.UTF-8, channel master)
    • Flutter at /home/reyer/reyer/flutter/master
    • Framework revision 0a85db2958 (4 days ago), 2017-10-06 07:13:27 +0300
    • Engine revision 459f722b86
    • Tools Dart version 1.25.0-dev.11.0

[✓] Android toolchain - develop for Android devices (Android SDK 26.0.2)
    • Android SDK at /home/reyer/Android/Sdk
    • Platform android-26, build-tools 26.0.2
    • ANDROID_HOME = /home/reyer/Android/Sdk
    • Java binary at: /home/reyer/.local/share/umake/android/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)

[✓] Android Studio (version 2.3)
    • Android Studio at /home/reyer/.local/share/umake/android/android-studio
    • Java version OpenJDK Runtime Environment (build 1.8.0_112-release-b06)

[✓] IntelliJ IDEA Community Edition (version 2017.2)
    • Flutter plugin version 17.0
    • Dart plugin version 172.4155.35

[✓] Connected devices
    • Moto C Plus                  • ZW222422WM    • android-arm • Android 7.0 (API 24)
    • Android SDK built for x86 64 • emulator-5554 • android-x64 • Android 6.0 (API 23) (emulator)

Do you have a sample app that triggers this? I believe we have dialogs in the gallery and don't recall ever seeing this.

Are you using a cached context maybe?

@Hixie What is cached context?

I suggest to merge this issue with the https://github.com/flutter/flutter/issues/12467
Seems like the same reason behind: some layer of abstraction is broken and causing unpredictable outcomes like the stack-trace above.

A cached context means that you take a reference to a context, then store it in a variable and use it later, even after the corresponding widget has gone away.

Yes. In pseudo-code it looks like this:
Widget build( Context context){
   ... new Button(){
         onClick(){
                    doHeavyTask().then((heavyTaskResult){
                                     showDilagog(context, "Heavy task is done!")
                         });
         }
   }

}

while doing the heavy task context destroyed by someone calling setState((){});

Ah, yeah, that won't work. If the State is gone by the time doHeavyTask()'s Future returns, then that will crash. You will need to do this in the context of a widget that is still present, otherwise we won't know what colour to draw the dialog (for example).
We should make that clearer in the error message though.

@jaumard set some context listener, keep the latest context reference on each update, use it from the dialog.

Alternatively, have the connectToDevice logic happen in the code that showed the dialog, not in the dialog itself. Once you pop the dialog, it's gone.

How to avoid stale context ?

I would like to know this too.

@BassamQuantum & @lordgreg & @rubensdemelo may want to check on Stack Overflow for help with this. I'm leaving this bug open to capture the desire to update the relevant error handling to make it friendlier.

This error message is very cryptic and I don't understand what to do with it. In my case, I'm signing in with Google and then try to navigate to different screens. I get the exact same message.
Future<void> _signInWithGoogle(BuildContext context) async {
    final authProvider = Provider.of<AuthProvider>(context, listen: false);

    await authProvider.signInWithGoogle();
    FirebaseUser loggedInUser = authProvider.firebaseUser;

    if (loggedInUser != null) {
      User user = await UserProvider().getUserById(loggedInUser.uid);

      if (user != null) {
        Navigator.of(context).pushReplacement(
          MaterialPageRoute(
            builder: (context) {
              if (!user.setupAccount) {
                return AccountSetupPage();
              } else if (!user.answeredQuestions) {
                return QuestionnaireStartPage();
              }
              return HomePage();
            },
          ),
        );
      }
    }
  }

Any ideas?

Error message remains the same on latest master 1.21.0-6.0.pre.17.

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

void main() {
 runApp(MaterialApp(
   title: 'Navigation Basics',
   home: FirstRoute(),
 ));
}

class FirstRoute extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
   return Scaffold(
     appBar: AppBar(
       title: Text('First Route'),
     ),
     body: Center(
       child: RaisedButton(
         child: Text('Open route'),
         onPressed: () {
           Navigator.push(
             context,
             MaterialPageRoute(builder: (context) => SecondRoute()),
           );
         },
       ),
     ),
   );
 }
}

_showMaterialDialog(BuildContext context) async{
 await new Future.delayed(const Duration(seconds : 1));
 showDialog(
     context: context,
     builder: (_) => new AlertDialog(
       title: new Text("Material Dialog"),
       content: new Text("Hey! I'm Coflutter!"),
       actions: <Widget>[
         FlatButton(
           child: Text('Close me!'),
           onPressed: () {
             Navigator.of(context).pop();
           },
         )
       ],
     ));
}

class SecondRoute extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
   return Scaffold(
     appBar: AppBar(
       title: Text("Second Route"),
     ),
     body: Center(
       child: RaisedButton(
         onPressed: () {
           _showMaterialDialog(context);
           Navigator.pop(context);
         },
         child: Text('Go back!'),
       ),
     ),
   );
 }
}

flutter doctor -v
[√] Flutter (Channel master, 1.21.0-6.0.pre.38, on Microsoft Windows [Version 10.0.18362.959], locale et-EE)
   • Flutter version 1.21.0-6.0.pre.38 at C:\Development\flutter_master
   • Framework revision 8e0eee9008 (2 hours ago), 2020-07-26 23:38:01 -0700
   • Engine revision 626244a72c
   • Dart version 2.9.0 (build 2.9.0-21.0.dev a3815b6590)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
   • Android SDK at C:\Users\Isa\AppData\Local\Android\sdk
   • Platform android-30, build-tools 30.0.0
   • Java binary at: C:\Users\Isa\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\193.6626763\jre\bin\java
   • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
   • All Android licenses accepted.

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

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.6.4)
   • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
   • Visual Studio Community 2019 version 16.6.30309.148
   • Windows 10 SDK version 10.0.18362.0

[√] Android Studio (version 4.0)
   • Android Studio at C:\Users\Isa\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\193.6626763
   • Flutter plugin version 47.1.2
   • Dart plugin version 193.7361
   • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] VS Code (version 1.47.2)
   • VS Code at C:\Users\Isa\AppData\Local\Programs\Microsoft VS Code
   • Flutter extension version 3.12.2

[√] Connected device (5 available)
   • sdk gphone x86 (mobile)     • emulator-5554 • android-x86    • Android 11 (API 30) (emulator)
   • sdk gphone x86 arm (mobile) • emulator-5556 • android-x86    • Android 11 (API 30) (emulator)
   • Windows (desktop)           • windows       • windows-x64    • Microsoft Windows [Version 10.0.18362.959]
   • Web Server (web)            • web-server    • web-javascript • Flutter Tools
   • Chrome (web)                • chrome        • web-javascript • Google Chrome 84.0.4147.89

• No issues found!

@loolooii the context you originally call the signInWithGoogle function from is likely stale by the time the user logs in. Same advice to you as has been offered to all the others in this thread.

when I pop the screen via pop method then I am getting the same issue in the latest stable version 1.20.4.
But it was working fine with older version of flutter SDK flutter1.12.13+hotfix.5.
I think that something is changed in new version of Flutter SDK(1.20.4).


Calibration and IMU DLPF settings

Dear Peter,
I am working on an off-road robot that uses a gps module and the MPU9250 to navigate between waypoints. I am using your library for the MPU9250 together with this library to get readings for heading, and I'm trying to set up a PID controller to get to the waypoints. I have a couple of questions regarding this setup.

Do I need to calibrate the MPU9250 separately, save the coefficients and then calibrate the Fuse object as well, or is it enough to only calibrate the Fuse?

I have a separate thread for the imu which is continuously updated. The Fusion algorithm is run at 1.5 kHz to get better convergence, and my PID loop runs at 300 Hz. Is this setup sensible?

Finally, I would like to ask if you have any guidance about which low pass filter I should use on the imu.

Best regards,
Ben

The problem with calibration is the magnetometer. The accel and gyro will behave consistently over long periods of time. But the mag is a sensitive beast and you will need to calibrate it repeatedly - it will throw fusion way out if this isn't done.
The fusion calibrate method is intended to help you do this. You may need to go through the process each time you move the robot to a new location. In conjunction with the physical movement of the sensor around the axes it works out the local bias enabling the fusion algorithm to compensate. The physical position of the IMU is critical: don't locate it anywhere near high current wiring e.g. to the wheel motors.
Those rates sound high, but it all depends on the target hardware - what processor are you using? I'm surprised you've resorted to threading: can you not just query the fusion algorithm on demand, letting the PID run as fast as possible? Or use the asynchronous version?
Re the LPF I found a big issue is vibration. In my balancing robot (which is not off-road) I had to develop a mechanical LPF (a mass, rubber mounted) to stop vibration from overwhelming the PID. Filtering is something of a trial-and-error process. Especially for off-road work - something I've never tried. I can imagine distinguishing between vibration and off-road movement is difficult. See the notes in the doc about sampling theory.


Provide a robots.txt that prevents indexing

Is robots.txt the correct way to do this, or https://developers.google.com/search/docs/crawling-indexing/block-indexing ?

Yeh, noindex attribute sounds like what we actually want.

Done, setting noindex in app.html


Dogecoin 1.21 QT Wallet UI

Feature Request
Describe the Feature Request
The QT wallet for version 1.21 is missing many elements from the stable release (1.14.3). It still uses the Bitcoin icon and the Comic Sans font is missing.
Describe Preferred Solution
I can open a pull request to address this issue for the QT Wallet in 1.21.
Related Info
Bitcoin icons is still being used here: https://github.com/dogecoin/dogecoin/blob/1.21-dev/src/qt/res/icons/bitcoin.png

Hi! The normal process that @rnicoll follows for new major releases is:

Protocol implementations
Branding
Porting Dogecoins-specific UI features

We're currently still at step 1.

Ok nice to know! Good luck!


MM_30478 [v2] Database Manager

Summary
In this PR, we are defining the database manager that will handle

creation of server and default databases
the switching between active server databases,
the deletion of specific databases
returning a subset of server databases instances
handling of the migration events.
deletes a single *.db file.
factory resets and deletes the 'databases' folder on the device.

Ticket Link
https://mattermost.atlassian.net/browse/MM-30478
Tests and Expectations
We are using the iOS App-Group shared directory and the Android Documents directory to save the *.db files under a main sub-folder 'databases'.  Through this manager, we can perform operations to either delete a single *.db file or via a factory reset command, we can delete the whole 'databases' directory.
=> On Android, the documents directory can be viewed via the "Device File Explorer"  at "/data/user/0/com.mattermost.rnbeta/files/databases".  You can access the 'Device File Explorer' just under Tools/View Tool Windows/Device File Explorer.
=> On iOS, we are consol logging it from the function getIOSAppGroupDetails.  A sample path is /Users/{username}/Library/Developer/CoreSimulator/Devices/DA6F1C73/data/Containers/Shared/AppGroup/ACA65327/databases"
You may use the tools listed below to view the db file: https://nozbe.github.io/WatermelonDB/Advanced/ProTips.html
To keep track of all the servers ( multi-server support ), whenever we create a new database connection, we are adding a record in the default database in entity 'servers'.  The database manager sets and provides the active server record when the user ( through some UI interaction on a component ) triggers that action.
If you look at the test_manual.ts file, there is a list of functions that I call one after the other to perform the manual tests.  Please run only one function at a time while leaving the others commented.
1.      testAppGroupDirectory();
2.     testGetDefaultDatabase();
3.     await testNewServerConnection();
4.     testGetActiveServerConnection();
5.     await testSetActiveServerConnection();
6.     await testRetrieveAllDatabaseConnections();
7.     await testDeleteSQLFile();
8.     await testFactoryReset();

/check-cla

@avinashlng1080 As discussed in the channel, please list out the details of the testing steps and expectations in the summary of this PR. Thanks!

Hi @avinashlng1080

The  jest/mock tests look good. I was also able to run the tests and without error (npm run test). Although I keep on getting LokiJSAdapter warnings but those are probably expected

How do I execute the manual test properly? I tried the following,

ts-node app/database/admin/database_manager/test_manual.ts

or
tsc app/database/admin/database_manager/test_manual.ts

but getting errors.
Can you please list the command line steps? Thanks!

Hey @josephbaylon ,  the test_manual needs to be ran on Android/iOS phones.  In there we'll only need to check if the paths are being created correctly and deleted during factory reset.  We can talk about it during our call on Monday.


Mobile Suit Gundam: Extreme VS-Force [PCSE00915]

App summary

App name: Mobile Suit Gundam: Extreme VS-Force
App serial: PCSE00915
App version: 1.0

Vita3K summary

Version: v0.1.6
Build number: 2805
Commit hash: https://github.com/vita3k/vita3k/commit/67c1eb4c
CPU backend: Dynarmic

Test environment summary

Tested by: othmanead
OS: Windows 11
CPU: Intel i5-10300H
GPU: RTX 3060 mobile
RAM: 16 GB

Issue:
Game goes to menu
Screenshots:

Log
vita3k.log
Recommended labels

Menu

Vita3K summary

Version: v0.1.6
Build number: 2861
Commit hash: https://github.com/vita3k/vita3k/commit/45bdd665
CPU backend: Dynarmic

Test environment summary

Tested by: othmanead
OS: Windows 11
CPU: Intel i5-10300H
GPU: RTX 3060 mobile
RAM: 16 GB

Issue:
Game goes ingame but has massive graphical bugs
Screenshots:

Log
vita3k.log
Recommended labels

Ingame-
Graphics bug

The game is Ingame + now based on it's working, so please update it as so

The game is Ingame + now based on it's working, so please update it as so, But graphics bug still exists. Also I actually added that as a separate issue, should I add it here in the comment ? Since it got tagged Duplicate.

yes, you need to post your test result here

App summary

App name: MOBILE SUIT GUNDAM EXTREME VS-FORCE
App serial: [PCSE00915]
App version: 1.04

Vita3K summary

Version: v0.1.9
Build number: 3488-dfe65ccd
Commit hash: https://github.com/vita3k/vita3k/commit/[commit]
CPU backend: Dynarmic
GPU backend: Vulkan

Test environment summary

Tested by: StrykeCalamity
OS: Windows 10
CPU: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
GPU: Intel(R) HD Graphics 620
RAM: 8 GB

Issues
 The game Runs fine And with actual graphics in Extended Force mode(Story mode) With Exception to Explosion, Impact and Large sized Beam shot especially 2 color ones are glitchy(Smaller shots like beam rifle shot are fine, but Beam magnum, Balaena Beams are half visible only) , But the Background and Mobile suit itself are fine. I completed Area 1 and advanced to Area 2 mission 6, no problems yet. But the same can't be said for VS Extend mode(Arcade modeish) Here only the background Graphics for the map is there, the MS have shadows and their bodies and body parts appear and disappear based on position and action, and of course the Visuals for explosion and etc or still glitchy though visible. Also Sorry I don't know how to add commit hash.
Screenshots

Log
vita3k.log
Recommended labels

Ingame +
Graphics bug


Telemetry per node

polkadot companion: https://github.com/paritytech/polkadot/pull/1948

Linking this here: https://github.com/storyscript/tracing-wasm/issues/13
TL;DR
Telemetry in the browser needs some update. It works already! But the logs look completely different because it's not using the same library than before.

I removed the draft status but it's not ready for review

I'm facing an impossible problem here:

If I don't activate arbitrary_precision on serde_json:

u128 cannot be serialized to json (a few places use u128 in telemetry! macro) :red_circle:

If I active arbitrary_precision:

RPC API calls fail but it can be solved with arbitrary_precision of jsonrpc-core :green_circle:
deserializing any integer fail in untagged structs (breaks in frame/contracts/rpc/) :red_circle:

I'm facing an impossible problem here:
* If I don't activate `arbitrary_precision` on `serde_json`:

  * u128 cannot be serialized to json (a few places use u128 in `telemetry!` macro) red_circle

* If I active `arbitrary_precision`:

  * RPC API calls fail but it can be solved with `arbitrary_precision` of jsonrpc-core green_circle
  * deserializing any integer fail in `untagged` structs (breaks in frame/contracts/rpc/) red_circle

Could we use https://crates.io/crates/spez and continue to serialize u128 as String as we do it in other places of the code base?

I tried to solve the underlying problem at some point in serde, but it was not that successful :P https://github.com/serde-rs/serde/pull/1679

I'm facing an impossible problem here:
* If I don't activate `arbitrary_precision` on `serde_json`:

  * u128 cannot be serialized to json (a few places use u128 in `telemetry!` macro) red_circle

* If I active `arbitrary_precision`:

  * RPC API calls fail but it can be solved with `arbitrary_precision` of jsonrpc-core green_circle
  * deserializing any integer fail in `untagged` structs (breaks in frame/contracts/rpc/) red_circle

Could we use https://crates.io/crates/spez and continue to serialize u128 as String as we do it in other places of the code base?

For now I have something that works.
We don't really use much the serialization in substrate so I just fixed all the test with the same trick that is done in jsonrpc-core. I should probably add comments to explain this. But it works (I ran everything locally).

\o/ :tada: @dvdplm do you mind checking the companion polkadot PR?

I've been thinking a bit about code organization. I think that perhaps the new sc-logging crate should actually be a module of sc-tracing. Also move the profiling layer into sc_tracing::profiling. It's possible we will soon need a state_tracing module for sc-tracing soon also. It seems like all these things belong together.

I've been thinking a bit about code organization. I think that perhaps the new sc-logging crate should actually be a module of sc-tracing. Also move the profiling layer into sc_tracing::profiling. It's possible we will need a state_tracing module for sc-tracing soon also. It seems like all these things belong together.

:thinking: ... hmm.. I hate to admit because I have done so much work already but I think you are right it makes sense to have it all in sc-tracing...

I'm a little bit confused about the overall architecture here. I would have imagined the following:
* 1 worker. This worker is started by the first telemetry instance and is spawned as a future.

* Everyone sends new connections to this worker so that it can handle them.

* The worker can communicate with the telemetry object through a channel to tell them about reconnects.

* All macro calls send the data to this worker

* We don't require locking in the worker/telemetry objects.

The worker is not the actual connection. It's a set of connections used by a given substrate node.
The node is the actual connection. That's the thing that is being reused here (hence the mutex).

Let's imagine the following.

Setup the node, get the handle and start the node.
At some later point, maybe after some event we start a second node that uses the handle from 1.

As far as I understand your code this would not work, because the worker already finished its init phase?

@bkchr Ok so, as discussed in private, I have now changed the implementation to allow registering new substrate node instances while the telemetry worker is running.
I have not done the doc yet because I would appreciate that you review this implementation first.
To summarize:

Instead of looping over the messages channel, I know loop on that AND on the "init" channel (renamed to register channel).
The init/register channel is not closed anymore (obviously)
The TelemetryHandle can be cloned and used to start another telemetry. (It doesn't consume itself anymore and it now requires a TelemetrySpan.)
The TelemetrySpan is now created directly from TelemetrySpan::new()

Let's imagine the following.

Setup the node, get the handle and start the node.
At some later point, maybe after some event we start a second node that uses the handle from 1.

As far as I understand your code this would not work, because the worker already finished its init phase?

@bkchr Ok so, as discussed in private, I have now changed the implementation to allow registering new substrate node instances while the telemetry worker is running.
I have not done the doc yet because I would appreciate that you review this implementation first.
To summarize:

Instead of looping over the messages channel, I know loop on that AND on the "init" channel (renamed to register channel).
The init/register channel is not closed anymore (obviously)
The TelemetryHandle can be cloned and used to start another telemetry. (It doesn't consume itself anymore and it now requires a TelemetrySpan.)
The TelemetrySpan is now created directly from TelemetrySpan::new()

bot merge

bot merge

@dvdplm np I will make another PR

@dvdplm np I will make another PR

One slight concern I have that I'm not sure is valid is: there are a few places where you note that it's important to not call things out of order or at most once. It's a bit of a code smell and I wonder if we can do better than that, OnceCell-something-something. More something to ponder than a request for change.

Sorry I forgot to answer you.
Now that the telemetry can be started in the middle of anything I think the only thing that remains is if you start the telemetry twice for the same substrate node. It's not really breaking, it will just extend the existing connections if necessary but I think it will add another connection message so every time the connection re-establishes it will send 2 connection messages instead of one. I could fix that to make it override the previous connection message.

One slight concern I have that I'm not sure is valid is: there are a few places where you note that it's important to not call things out of order or at most once. It's a bit of a code smell and I wonder if we can do better than that, OnceCell-something-something. More something to ponder than a request for change.

Sorry I forgot to answer you.
Now that the telemetry can be started in the middle of anything I think the only thing that remains is if you start the telemetry twice for the same substrate node. It's not really breaking, it will just extend the existing connections if necessary but I think it will add another connection message so every time the connection re-establishes it will send 2 connection messages instead of one. I could fix that to make it override the previous connection message.


Automatic GridFS Index Creation

Is it possible to add automatic GridFS indices creation?
https://docs.mongodb.com/v3.2/core/gridfs/#gridfs-indexes

Hi, as indicated in the guidelines, please use the MailingList to ask question/discuss of possible feature request. Best regards.


Please upgrade go/go.mod grpc package

Please upgrade the go/go.mod google.golang.org/grpc because I have found, using go mod graph, that this repository was the reason I got the following error because it references v1.25.1.
cloud.google.com/go/compute/metadata: ambiguous import: found package cloud.google.com/go/compute/metadata in multiple modules:
Other modules have begun to reference the cloud.google.com/go/compute/metadata package.  This package was moved out of cloud.google.com/go.  Updating the grpc reference should begin to clear up this issue.
My go mod graph produced the following.
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

I would like to work on it .


"Can't get captcha: list index out of range" Error

"Can't get captcha: list index out of range" Error shows up when I run the "!start.bat" file

also i set the auto captcha thing to "false" and its still not working

the site owner turned on cloudflare protection, so it was impossible to get a captcha, now it is disabled again


Modal: accept role as a prop

Is your feature request related to a problem? Please describe
Currently, the role of modals is hard-coded to dialog. However, ARIA also describes an alertdialog role, which is perfect for confirmation prompts or alerts that require user interaction.
Describe the solution you'd like
The Modal component should accept a role prop. If it's set to alertdialog, ensure that "keyboard and mouse interactions only operate within the dialog".
Describe alternatives you've considered
Passing role as a prop to Modal does not work because it's passed to the child div instead.
Additional context
https://www.w3.org/WAI/ARIA/apg/patterns/alertdialog/

role seems to work for me in the examples:

There is one small detail that it incorrectly toggles aria-modal off if you do that, which we can fix. but Are you seeing different behavior here?

Apologies, @jquense. I meant to open this one for react-bootstrap. I think I mixed up the tabs. Would it be possible to move it?
Sorry!


Fix auth page errors

Coverage remained the same at 85.2% when pulling 563025ae25778ab378579cedc7fead88b96d3bc6 on eatonphil:fix-auth-page into b89cd92f5fc32e828eea078f14159bf036f03de7 on linode:master.

thanks!


Move Calico the hard way docs

Per Alex, move Calico the hardway docs up one level.

Can merge at any time.
Approved by Alex.

Deploy preview for calico ready!
Built with commit 781ca436c8a322dc98e4ef1de2c12314c997ff4e
https://deploy-preview-2780--calico.netlify.com

@bmckercher123 looks like there are some internal links that still reference the old location:

- /_site/master/getting-started/kubernetes/hardway/configure-bgp-peering.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/configure-bgp-peering, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/configure-bgp-peering">
- /_site/master/getting-started/kubernetes/hardway/configure-ip-pools.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/configure-ip-pools, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/configure-ip-pools">
- /_site/master/getting-started/kubernetes/hardway/end-user-rbac.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/end-user-rbac, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/end-user-rbac">
- /_site/master/getting-started/kubernetes/hardway/index.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/">
- /_site/master/getting-started/kubernetes/hardway/install-cni-plugin.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/install-cni-plugin, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/install-cni-plugin">
- /_site/master/getting-started/kubernetes/hardway/install-node.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/install-node, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/install-node">
- /_site/master/getting-started/kubernetes/hardway/install-typha.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/install-typha, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/install-typha">
- /_site/master/getting-started/kubernetes/hardway/istio-integration.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/istio-integration, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/istio-integration">
- /_site/master/getting-started/kubernetes/hardway/standing-up-kubernetes.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/standing-up-kubernetes, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/standing-up-kubernetes">
- /_site/master/getting-started/kubernetes/hardway/test-network-policy.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/test-network-policy, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/test-network-policy">
- /_site/master/getting-started/kubernetes/hardway/test-networking.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/test-networking, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/test-networking">
- /_site/master/getting-started/kubernetes/hardway/the-calico-datastore.html
  *  internally linking to https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/the-calico-datastore, which does not exist (line 58)
     <link rel="canonical" href="https://docs.projectcalico.org/master/getting-started/kubernetes/installation/hardway/the-calico-datastore">


I ONLY Need File I/O To Finish My Game!

Hey, I really like this library a lot. Some of the missing features are okay by me because I am using it as a base to port over some of my game engine code to get some of my games on the PicoSystem, which is a great system!
However, to finish porting my game, Circuit Dude (and maybe Treasure Chasers), I am pretty much all set for everything! I just need simple file I/O working for saving the game's progress and reading the progress into memory (as well as making a directory for them).
It would be cool if you could add some functions such as...
bool directory_exists(string path)
bool file_exists(string filename)
bool create_directory(string path)
bool create_file(string filename)
bool save_data(string filename, ??)
bool read_data(string filename, ??)
My use cases are:

Saving a single int to a file.
Reading the file into an int.
Saving a byte[] to a file.
Reading a file into a byte[].

I dunno. Maybe you could also make some functions for reading/saving strings, too, for simple text files.
Anyway, like I said, I only need these to finish my game!! 🤗

This is a solved problem in the 32blit SDK, and works great on the PicoSystem port too- with a 4MiB save partition- thanks to @daft-freak. However! If we want people using the optimised and opinionated PicoSystem native SDK I think savegame support is kinda essential.
I know it’s officially a “work around it with savegame codes” kinda thing but when the flippin’ MicroPython port can do file IO and C++ can’t… it’s just kinda … wat.
Could we build this out as an optional extension I wonder? A basic savegame lib that uses and respects the same 4MiB portion that 32Blit uses (so we don’t trounce players save games). Or does switching out of XiP to handle saving to flash make this difficult to library-ize? 🤔

Or does switching out of XiP to handle saving to flash make this difficult to library-ize? thinking

Pico SDK flash erase/write functions handle this for you, you just need to make sure core1 isn't running (at least not from flash) and interrupts are disabled. (storage_write in 32blit-pico/storage.cpp is where this happens for 32blit)
... now I'm going back to 32blit SDK land :smile:

Pico SDK flash erase/write functions handle this for you

Ah! I should have guessed. Thank you.
I feel bad about stea... uh ... borrowing code from the 32blit SDK! :laughing:

Does this mean that this will be implemented, soon-ish? 😊 😅

Possibly when I get out of Hub75 and Linux kernel driver hell :cry:
Short term fix is to encode your game saves into a catchy phrase or level select code :laughing:


[DOI Registration] Meta-Issue

Stage 1:

[x] [DOI Registration] "Publish This Resource" Button Updates #2291
[x] [DOI Registration] Disable formal publication using the API #2292
[ ] Add reserve a DOI functionality #2558

Stage 2:

[ ] [DOI Registration] Pending Queue #2293
[ ] [DOI Registration] Metadata Updates #2294
[ ] [DOI Registration] User-side Updates and Appeals via Email #2295

Stage 3:

[ ] [DOI Registration] Reminders #2296

Stage 4:

[ ] [DOI Registration] Design Training Module #2297

Refer to Google Document for Policy on this.

Moving to design document in google docs

Moving to design document in google docs


[Suggestion]: Add enchantment compatibility to the Platinum Infused Hatchet

Mod Loader (Optional)
Fabric
Minecraft Version(s) (Optional)
1.20.1
Mod Version(s) (Optional)
v8.0.4
Suggestion (Required)
I have Illager Invasion mod on a server and I want to use the Platinum Infused Hatchet more, but the weapon isn't practical in any way. It's a great alternative to a trident in theory, with potential for Loyalty and Axe enchants. They're such a rare drop too making them fun to collect. Currently the only 2 useful enchants I can add are Mending and Unbreaking since they have durability. Besides throwing them at my target dummy or my friends for fun, I wanna use them for combat.

Remember one ancient but funny mod, maybe it would be interesting to implement it from here?


Add FRED_API_KEY to deploy-book

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
see 3 files with indirect coverage changes


Make Python versions in GitHub Actions consistent

To ensure consistently, use the following Python versions everywhere in CI:

3.8
3.9
3.10
3.11
3.12
3.13
pypy3.9
pypy3.10

The wheels for Python 3.13 are beneficial for dependent packages such as jsonschema.
Note that PyPy3.8 was dropped since the PyPy website (https://www.pypy.org/) states they currently support Python versions 3.10, 3.9, and 2.7.
To build the extension for PyPy on Windows, "generate-import-lib" in Cargo.toml is needed, as per this GitHub issue:
https://github.com/PyO3/maturin-action/issues/267#issuecomment-2106844429

Apologies, I missed some notifications. This looks perfect, thanks!


TypeError: Cannot read property 'length' of undefined ( allRowsSelected )

I'm submitting a ...  (check one with "x")
[X] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, post on Stackoverflow or Gitter

Current behavior

since version 11.1.x I have the following error in console
DatatableComponent.html:5 ERROR TypeError: Cannot read property 'length' of undefined
    at DatatableComponent.get [as allRowsSelected] (index.js:4867)
    at Object.eval [as updateDirectives] (DatatableComponent.html:18)
    at Object.debugUpdateDirectives [as updateDirectives] (core.js:14339)
    at checkAndUpdateView (core.js:13508)
    at callViewAction (core.js:13858)
    at execEmbeddedViewsAction (core.js:13816)
    at checkAndUpdateView (core.js:13509)
    at callViewAction (core.js:13858)
    at execComponentViewsAction (core.js:13790)
    at checkAndUpdateView (core.js:13514)

It seems to be a new feature, so maybe some issues there ? I haven't changed my code since 11.0.4 which is as follow :

<ngx-datatable
    class="material fullscreen"
    [columnMode]="'force'"
    [rowClass]="getRowClass"
    [headerHeight]="50"
    [footerHeight]="50"
    [rowHeight]="50"
    [externalPaging]="true"
    [externalSorting]="true"
    [loadingIndicator]="loading"
    [limit]="pageSize"
    [offset]="pageOffset"
    [count]="totalCount"
    [rows]="items"
    [columns]="columns"

    [messages]="{emptyMessage: 'DataTable.EmptyMessage' | translate, totalMessage: 'DataTable.Total' | translate, selectedMessage: 'DataTable.SelectedMessage' | translate}"
    (page)="onPageChanged($event)"
    (sort)="onSortChanged($event)"
    (scroll)="onScroll($event.offsetY)"
    (reorder)="onColumnsReordered($event)">

    <ng-template #headerTemplate let-column="column" let-sort="sortFn">
        {{ column.name | translate }}
    </ng-template>

    <ng-template #cellTemplate let-column="column" let-value="value">

    </ng-template>

    <ng-template #actionTemplate let-row="row" let-value="value">
        <button mat-icon-button (click)="onDeleteClick(value)" [attr.disabled]="!canDelete" color="warn" matTooltip="{{'CRM.Delete' | translate}}" [matTooltipPosition]="'below'">
            delete
        </button>
        <button mat-icon-button (click)="onEditClick(value)" [attr.disabled]="!canEdit" matTooltip="{{'CRM.Edit' | translate}}" [matTooltipPosition]="'below'">
            create
        </button>
    </ng-template>

</ngx-datatable>

Please tell us about your environment:

win10 pro, vscode, npm, node

Table version: 0.8.x

11.1.2

Angular version: 2.0.x

5.0.2

Browser:

chrome 62.0.3202.94

Language: [all | TypeScript X.X | ES6/7 | ES5]
typescript 2.6.1

@darkurse use release 11.1.2 I was getting the same error

fixed in latest :)

which PR fixes this? i can still reproduce on 11.1.2

@markwaddle , ensure you do have the latest version installed with npm list @swimlane/ngx-datatable ?

Is anyuone else still getting this?

I'm good now. Thanks

I am definitely running 11.1.2. My issue may be another bug with a similar symptom. I have s in the header cells. When editing text in the inputs it was triggering the select event on the table 3 times in succession, every time I changed the text selection in the box. Once with every item as selected, once with no items, and once with the selected as undefined. The last one was causing errors in the data table code. I realized yesterday that  has a select event, and the listeners in datatable aren’t discrete enough to exclude the event coming from the inputs. I added handlers to swallow the select event from the inputs as a workaround for now.

GitHub removed the tags from my comment above.
Corrected: I am definitely running 11.1.2. My issue may be another bug with a similar symptom. I have input elements in the header cells. When editing text in the inputs it was triggering the select event on the table 3 times in succession, every time I changed the text selection in an input. Once with every item as selected, once with no items, and once with the selected as undefined. The last one was causing errors in the data table code. I realized yesterday that input has a select event, and the listeners in datatable aren’t discrete enough to exclude the event coming from the inputs. I added handlers to swallow the select event from the inputs as a workaround for now.

@amcdnl  I can still reproduce this issue in a test if I set rows to undefined.

@amcdnl Hi Austin. I still get the error with 11.1.4. It works with 11.0.4 though.

me too - Version 11.1.4 receiving the same error.

11.1.5 still has this issue. Reverted to 11.0.4 and all good there.

Actually I still have issues with the latest versions .. I've reverted back to 11.0.4 for a while too.

Me too - Version 11.1.4 receiving the same error.
The problem in my case is because an uninitialized object is assigned to the [row] property or it is not an array type.
In my html:
<ngx-datatable class = "material"
    [rows] = "customers"
    [loadingIndicator] = "loadingIndicator">
.....
In my component.ts:
public customers: any; // <- here's the problem
....
The solution, assign an object of type initialized array:
In my component.ts:
public customers: Array  = new Array  (); // <- solution
....
The best solution is to initialize the array of the customer type
public customers: Array  = new Array  ();
I hope you seriva for help, I have solved the problem.

@aog1971 Thank you for the hint. That helped a lot.
There is also the same kind of problem when using async input for the rows. If the Observable returns undefined instead of an empty array the exception is thrown.

I'm still seeing this issue with 11.1.5. Any update on when a build with this fix will be pushed to NPM?

Me too having the same error with 11.1.5

I'm having the same issue with 11.1.5, probably because the rows: Observable<User[]>; is empty at first

@amcdnl. I'm having the same issue with 11.1.5

Same with 11.1.5 - reverting to 11.0.4 resolved.

Same with 11.1.5 too - reverting to 11.0.4 also resolved the problem

Make sure the array is initialized with empty array, that way, you don't have to go back to 11.0.4.

@bobsov That won't work for me as I'm consuming an Observable<T[]>

As aog1971 said initialize your "rows" array in the component constructor, then it works. Generally, we cannot assign undefined array to control.

can you provide a working example please?
rows: Observable<User[]>;
constructor:
this.rows = new Observable<User[]>();
this.rows = this.usersCollection.valueChanges();
is not working, same error

Gave it another try this morning. Installed 11.15 again and everything works, without changing one line of code ...

I can't get rid of this issue
I just followed the getting started page and the very first example keeps showing this error :
TypeError: Cannot read property 'length' of undefined
at DatatableComponent.get [as allRowsSelected] (vendor.bundle.js:sourcemap:17581)
any real solution for this ?

Try 11.1.7 plz

it's working, thanks!

Me too now after update its all good.  Thank you 😁
On 23 Dec 2017 11:29 pm, "Ruben"<EMAIL_ADDRESS>wrote:

it's working, thanks!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/swimlane/ngx-datatable/issues/1141#issuecomment-353735319,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACU_-63tk2sQNLFeq5YHu-lRpjo9m9lsks5tDSp7gaJpZM4Qknra
.

I am using      "@swimlane/ngx-datatable": "^11.2.0",
I still see the same error  ---- "Cannot read property 'length' of undefined ..."
Any suggestions please?

I even tried with version 11.1.7   "@swimlane/ngx-datatable": "^11.1.7", and still see the same error

I'm running version v11.3.2 and I've got the same error on the same line

I'm seeing this error on version 13.1.0, it's triggered when selecting some text in a text field input placed inside a detail row.
@markwaddle it seems I'm facing the same problem, can you please post your workaround here?
  I was experiencing the length is null issue as well, eventually I realized that I was missing the  following :
selected = [];
I was using selected in my HTML, but I did not initialize the selected variable, after I added the initialize it worked, no further length undefined issues, on V14.0.0 of ngxdatatables.

initialize the variable that you are trying to send.
it could be one of the values expected by ngx-data table ;
Selected = [];

I am also getting a similar error:
ERROR TypeError: Cannot read property 'length' of undefined
at Object.eval [as updateDirectives] (DatatableComponent.html:76)
at Object.debugUpdateDirectives [as updateDirectives] (core.js:11054)
at checkAndUpdateView (core.js:10451)
at callViewAction (core.js:10692)
at execEmbeddedViewsAction (core.js:10655)
at checkAndUpdateView (core.js:10452)
at callViewAction (core.js:10692)
at execComponentViewsAction (core.js:10634)
at checkAndUpdateView (core.js:10457)
at callViewAction (core.js:10692)
When I check DatatableComponent.html:76
It has:
[selectedCount]="selected.length"
In my component I have initialized selected = [];
But then also I am getting the error. Any suggestion ?

Experienced this myself.  As @RamkiPannerselvam  said - make sure you declare your variables with a starting empty array = [].
If you still are can you better describe or show your code how you're constructing your table please.

I have found the issue. The issue is I am using rowDetail and select event in the table, so if I try to select the text in row detail. Then select event of row selection gets fired which was making selected undefined.


[VSCode] [UX] Module gets added to an existing project when trying to create a new project

Description:
When a new project is created in a location which already contains a project with the same name, even though an error is thrown saying the project exists, the module is being added to the existing project.
Suggested Labels:
Type/UX, Bug
Steps to reproduce:

Select 'Create New Project' from Ballerina Integrator Dashboard.
Provide Project and module name.
Select a location.
Following the same steps, create another project with the same name and different module name at the same location.

Occured due to regression


browserHistory.push not working on action callback...

Hi,
Thanks for the nice component. I am trying to redirect using browserHistory.push after clicking the action callback button, but it's not getting redirected.
this._notificationSystem.addNotification({
			title: 'You may also interested in',
			message: relatedstory.title,
			level: 'success',
			autoDismiss:0,
			position: 'br',
			action: {
					label: 'Read',
					callback:function(){
						browserHistory.push('/story/'+relatedstory.id);
					}
				}
			});

Thanks in advance.
-Thamizhchelvan

This is not specific to react-notification-system.
if the callback is invoked and you can access browserHistory, react-notification-system is working fine.
From there on it depends on what you want to do.
Whether you're using react-router, react-router-redux and so on changes a lot in how you can change view routes.

thanks @syndbg. This component doesn't change at all the way that's your callback is invoked.


warning "Aborted connection .. to db: '...' user: '...' host: '<IP_ADDRESS>' (Got an error reading communication packets)

Kubernetes version: microk8s v1.26.1
mariadb-operator version: latest
Install method: helm
Install flavour: minimal
Hi, when I connect an application (fireflyiii) sometimes the warning "Aborted connection .. to db: '...' user: '...' host: '<IP_ADDRESS>' (Got an error reading communication packets)" appears. The application does not receive the expected data in that case.
Thank you for any help.

According to this, raising max_allowed_packet most likely fixes this issue.
Specifying a custom my.cnf, and therefore max_allowed_packet, will be possible when this feature is implemented in the next release:

https://github.com/mmontes11/mariadb-operator/issues/51

Will keep you in the loop

thank you for your suggestion @mmontes11
it seems like the problem surfaces when you have hugepages enabled, on a cluster without hugepages it works like a charm.

Hey @daniva6  !
The custom my.cnf feature has been eleased in the v0.0.9, make sure you update:

https://github.com/mmontes11/mariadb-operator/releases/tag/v0.0.9
https://github.com/mmontes11/mariadb-operator/releases/tag/helm-chart-0.9.0

This is something that can potentially fix the current issue. To do so, specify a custom my.cnf with the max_allowed_packet param, like in this example:

https://github.com/mmontes11/mariadb-operator/blob/main/config/samples/mariadb_v1alpha1_mariadb.yaml#L31

Closing! Thanks for contributing to mariadb-operator


Add -q option to docker service ps

- What I did
fixes #27643
- How to verify it
$ docker swarm init
$ docker service create --name redis --replicas=5 redis:3.0.6
$ docker service ps -q redis

- A picture of a cute animal (not mandatory but encouraged)

We need a -q option that removes headers and only does ID.
I am afraid redis.1. in redis.1.6u87kp12lrw1ikrejqti51g8y is not included in task id. @gaocegege

PTAL
$ docker service ps redis
NAME                               IMAGE        NODE          DESIRED STATE  CURRENT STATE            ERROR
redis.1.xrlbr5skxm5mfquugv7igtw21  redis:3.0.6  56a8544282d8  Running        Preparing 9 seconds ago
redis.2.69bi767slr5fmpb37n78zop4m  redis:3.0.6  56a8544282d8  Running        Preparing 9 seconds ago
$ docker service ps -q redis
xrlbr5skxm5mfquugv7igtw21
69bi767slr5fmpb37n78zop4m

LGTM
I'm not sure what to do with docs, though. ping @thaJeztah

I'm not sure what to do with docs, though.

This would only need changes to the reference docs (man-page for this is generated); @gaocegege can you update https://github.com/docker/docker/blob/master/docs/reference/commandline/service_ps.md ?
It also needs a change to the bash and zsh completion scripts, so /cc @albers @sdurrheimer

re @thaJeztah
I have updated the docs. And I found there is no -a option now, so I removed it and add -q.
preview

zsh completion LGTM

LGTM
If someone wants de-leftpad the task package, that would be awesome!

Moving this to docs-review then 👼

Can you squash commits, please?

LGTM after commits are squashed


Fix readme links

Fix readme links

Coverage: 93.766%. Remained the same when pulling 4419228fb0320a52aab89a7907717980689e2d17 on fix-doc-link into 3a664e71a2459cc97287af5ad5d5bdbc3e061f51 on main.


Renames the service name to include the app name

What type of PR is this?
/kind bug
/kind design
What does this PR do / why we need it:
Which issue(s) this PR fixes:
Fixes #4550
PR acceptance criteria:

[ ] Unit test

[ ] Integration test

[ ] Documentation

[ ] Update changelog

[ ] I have read the test guidelines

How to test changes / Special notes to the reviewer:

@mik-dass
I followed the steps from issue #4550

odo create nodejs nodejs --starter=nodejs-starter --project=myproject --app app
odo push
odo create nodejs nodejs --starter=nodejs-starter --project=myproject --app app1
odo push
But it failed at step 4.

odo push

Validation
 ✓  Validating the devfile [163115ns]

Creating Kubernetes resources for component nodejs
 ✓  Waiting for component to start [4s]
 ✓  Waiting for component to start [377ms]

Applying URL changes
 ✗  Failed To Update Config To Component Deployed.
Error: url named "http-3000" already exists in the same app named "app1"

Is this expected?
I also checked kubectl get services which showed services name containing app name, which I think serves the purpose of this PR.
kubectl get services
NAME                          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
nodejs-app                    ClusterIP   <IP_ADDRESS>   <none>        3000/TCP            2m23s
nodejs-app1                   ClusterIP   <IP_ADDRESS>     <none>        3000/TCP            62s
postgresql-operator-metrics   ClusterIP   <IP_ADDRESS>    <none>        8383/TCP,8686/TCP   2d1h

Is there something else I should be looking at/testing?

Applying URL changes
✗  Failed To Update Config To Component Deployed.
Error: url named "http-3000" already exists in the same app named "app1"
Is this expected?

This is a bug as both the routes try to use the same name http-3000. I will raise a PR for the fix.

Is there something else I should be looking at/testing?

The list output of odo list --app app and odo list --app app1

Based on https://github.com/openshift/odo/pull/4858#issuecomment-872893125 and output of odo list --app app and odo list --app app, the functionality lgtm.
/approve

/lgtm

/refresh

/retest

          <*errors.errorString | 0xc000ac4180>: {
              s: "cmd [ps -ef] failed with error Signal 23 (URG) caught by ps (3.3.15).\nps:ps/display.c:66: please report this bug\ncommand terminated with exit code 1\n on pod feduwc-app-c8f869b9f-xg7dg",
          }
          cmd [ps -ef] failed with error Signal 23 (URG) caught by ps (3.3.15).
          ps:ps/display.c:66: please report this bug

/retest

          <*errors.errorString | 0xc000ac4180>: {
              s: "cmd [ps -ef] failed with error Signal 23 (URG) caught by ps (3.3.15).\nps:ps/display.c:66: please report this bug\ncommand terminated with exit code 1\n on pod feduwc-app-c8f869b9f-xg7dg",
          }
          cmd [ps -ef] failed with error Signal 23 (URG) caught by ps (3.3.15).
          ps:ps/display.c:66: please report this bug

/retest

I would be curious to know which process is sending a URG signal to ps, and why. oc? @kadel any clue?


WARNING: Target function was never called. Incorrect target_offset?

I'm attempting to follow the instructions here: https://github.com/googleprojectzero/winafl/blob/master/readme_dr.md
I've compiled afl-win using these steps:
# download and extract https://github.com/DynamoRIO/dynamorio/releases/download/release_8.0.0-1/DynamoRIO-Windows-8.0.0-1.zip
# to C:\users\mjones\DynamoRIO-Windows-8.0.0-1\

git clone --recursive https://github.com/googleprojectzero/winafl.git
mkdir build-winafl

&'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe' -G"Visual Studio 16 2019" -A x64 -S .\winafl\ -B .\build-winafl\ -DDynamoRIO_DIR=C:\users\mjones\DynamoRIO-Windows-8.0.0-1\cmake
&'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe' --build .\build-winafl\ --config Release

I have my program-under-test that is exactly the following
#include <iostream>

extern "C" __declspec(dllexport) void fuzz(char const* const filename)
{
    std::cout << "Entered fuzz function: " << filename << std::endl;
} // fuzz

int main(int argc, char * argv[])
{
    if(argc > 1)
    {
        fuzz(argv[1]);
    }

    return 0;
} // main

I compile that cpp file into "minimal_fuzzer-w64d-1-0.exe", and copy afl-fuzzer and winafl.dll into the same folder as my new exe. I create ./testin/0001.json and attempt to use the DynamoRio drrun.exe program.
C:\Users\mjones\DynamoRIO-Windows-8.0.0-1\bin64\drrun.exe -c winafl.dll -debug -target_module minimal_fuzzer-w64d-1-0.exe -target_method fuzz -fuzz_iterations 10 -nargs 1 -- minimal_fuzzer-w64d-1-0.exe .\testin\0001.json

does not work. Claims it can't find the "fuzz" function.
Changing the -target_module parameter to minimal_fuzzer_w64d_1_0 gets past that.
C:\Users\mjones\DynamoRIO-Windows-8.0.0-1\bin64\drrun.exe -c winafl.dll -debug -target_module minimal_fuzzer-w64d-1-0.exe -target_method fuzz -fuzz_iterations 10 -nargs 1 -- minimal_fuzzer-w64d-1-0.exe .\testin\0001.json

I see the output
Entered fuzz function: .\testin\0001.json

Once and only once, and then drrun.exe exits.
The log file from drrun.exe gives me:
Module loaded, dynamorio.dll
Module loaded, winafl.dll
Module loaded, drx.dll
Module loaded, drreg.dll
Module loaded, drmgr.dll
Module loaded, drwrap.dll
Module loaded, minimal_fuzzer-w64d-1-0.exe
Module loaded, ucrtbased.dll
Module loaded, MSVCP140D.dll
Module loaded, Protector64.dll
Module loaded, VCRUNTIME140D.dll
Module loaded, VERSION.dll
Module loaded, VCRUNTIME140_1D.dll
Module loaded, apphelp.dll
Module loaded, NTMARTA.dll
Module loaded, gdi32full.dll
Module loaded, msvcp_win.dll
Module loaded, ucrtbase.dll
Module loaded, KERNELBASE.dll
Module loaded, win32u.dll
Module loaded, RPCRT4.dll
Module loaded, USER32.dll
Module loaded, combase.dll
Module loaded, KERNEL32.dll
Module loaded, SECHOST.dll
Module loaded, OLEAUT32.dll
Module loaded, GDI32.dll
Module loaded, IMM32.dll
Module loaded, ADVAPI32.dll
Module loaded, msvcrt.dll
Module loaded, SHLWAPI.dll
Module loaded, ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\System32\r_pdwyeany.dll
In OpenFileW, reading C:\Windows\System32\r_pdwyeany.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
Module loaded, AppCore.dll
In OpenFileW, reading C:\Windows\SYSTEM32\ntdll.dll
WARNING: Target function was never called. Incorrect target_offset?
Coverage map follows: (lots of 'nul' characters here)

Attempting to run with afl-fuzzer.exe just to see if I get any new information, gives me this:
.\afl-fuzz.exe -D C:\Users\mjones\DynamoRIO-Windows-8.0.0-1\bin64 -i testin -o testout -t 200000 -- -coverage_module minimal_fuzzer_w64d_1_0 -target_module minimal_fuzzer_w64d_1_0 -target_method fuzz -fuzz_iterations 10 -nargs 1 -- minimal_fuzzer-w64d-1-0.exe \@@
WinAFL 1.16b by<EMAIL_ADDRESS>Based on AFL 2.43b by<EMAIL_ADDRESS>[+] You have 24 CPU cores and 0 runnable tasks (utilization: 0%).
[+] Try parallel jobs - see afl_docs\parallel_fuzzing.txt.
[*] Checking CPU core loadout...
[+] Found a free CPU core, binding to #0.
[+] Process affinity is set to 1.

[*] Setting up output directories...
[+] Output directory exists but deemed OK to reuse.
[*] Deleting old session data...
[+] Output dir cleanup successful.
[*] Scanning 'testin'...
[+] No auto-generated dictionary tokens to reuse.
[*] Creating hard links for all input files...
[*] Attempting dry run with 'id_000000'...

[-] The program took more than 200000 ms to process one of the initial test cases.
    Usually, the right thing to do is to relax the -t option - or to delete it
    altogether and allow the fuzzer to auto-calibrate. That said, if you know
    what you are doing and want to simply skip the unruly test cases, append
    '+' at the end of the value passed to -t ('-t 200000+').

[-] PROGRAM ABORT : Test case 'id_000000' results in a timeout
         Location : perform_dry_run(), C:\Users\mjones\winafl\afl-fuzz.c:3019

process 21780 is not running under DR
0 processes nudged
nudge operation failed, verify permissions and parameters.

Notably, the program did not take 200,000 ms to process a test case. I get this output within 5 seconds of running the program.
This is Windows 10 20H2 19042.867
What can I do to diagnose this problem further?

I guess it's possible that the fuzz() got inlined in main().
On newer Windows versions, you should also grab a more recent DynamoRIO version from https://github.com/DynamoRIO/dynamorio/releases and rebuild WinAFL with it.

On newer Windows versions, you should also grab a more recent DynamoRIO version from https://github.com/DynamoRIO/dynamorio/releases and rebuild WinAFL with it.

Is there a release of Dynamorio newer than 8.0.0-1 ? That's the newest release on the project's official website.

I guess it's possible that the fuzz() got inlined in main().

Ok.
To eliminate the possibility of function inlining, I've re-written my app as such:
main.cpp
extern "C" I3BUILD_DLL_EXPORT void fuzz(char const* const filename);
int main(int argc, char * argv[])
{
    if(argc > 1)
    {
        fuzz(argv[1]);
    }
    return 0;
} // main

impl.cpp
#include <iostream>
extern "C" I3BUILD_DLL_EXPORT void fuzz(char const* const filename)
{
    std::cout << "Entered fuzz function:" << filename << std::endl;
} // fuzz

No behavior difference.
Anything else I can try?

I've "updated" to the newest weekly build of DynamoRIO-Windows-8.0.18705
Recompiled:
&'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe' -G"Visual Studio 16 2019" -A x64 -S .\winafl\ -B .\build-winafl\ -DDynamoRIO_DIR=C:\users\mjones\DynamoRIO-Windows-8.0.18705\cmake
&'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe' --build .\build-winafl\ --config Release

Now drrun.exe works.
C:\Users\mjones\DynamoRIO-Windows-8.0.18705\bin64\drrun.exe -c winafl.dll -debug -target_module minimal_fuzzer-w64d-1-0.exe -target_method fuzz -fuzz_iterations 10 -nargs 1 -- minimal_fuzzer-w64d-1-0.exe .\testin\0001.json
Entered fuzz function:.\testin\0001.json
Entered fuzz function:.\testin\0001.json
Entered fuzz function:.\testin\0001.json
Entered fuzz function:.\testin\0001.json
Entered fuzz function:.\testin\0001.json
Entered fuzz function:.\testin\0001.json
Entered fuzz function:.\testin\0001.json
Entered fuzz function:.\testin\0001.json
Entered fuzz function:.\testin\0001.json
Entered fuzz function:.\testin\0001.json

But WinAFL does not.
.\afl-fuzz.exe -D C:\Users\mjones\DynamoRIO-Windows-8.0.18705\bin64 -i testin -o testout -t 200000 -- -coverage_module minimal_fuzzer_w64d_1_0 -target_module minimal_fuzzer_w64d_1_0 -target_method fuzz -fuzz_iterations 10 -nargs 2 -- minimal_fuzzer-w64d-1-0.exe \@@
WinAFL 1.16b by<EMAIL_ADDRESS>Based on AFL 2.43b by<EMAIL_ADDRESS>[+] You have 24 CPU cores and 0 runnable tasks (utilization: 0%).
[+] Try parallel jobs - see afl_docs\parallel_fuzzing.txt.
[*] Checking CPU core loadout...
[+] Found a free CPU core, binding to #0.
[+] Process affinity is set to 1.

[*] Setting up output directories...
[+] Output directory exists but deemed OK to reuse.
[*] Deleting old session data...
[+] Output dir cleanup successful.
[*] Scanning 'testin'...
[+] No auto-generated dictionary tokens to reuse.
[*] Creating hard links for all input files...
[*] Attempting dry run with 'id_000000'...

[-] The program took more than 200000 ms to process one of the initial test cases.
    Usually, the right thing to do is to relax the -t option - or to delete it
    altogether and allow the fuzzer to auto-calibrate. That said, if you know
    what you are doing and want to simply skip the unruly test cases, append
    '+' at the end of the value passed to -t ('-t 200000+').

[-] PROGRAM ABORT : Test case 'id_000000' results in a timeout
         Location : perform_dry_run(), C:\Users\mjones\winafl\afl-fuzz.c:3019

process 17600 is not running under DR
0 processes nudged
nudge operation failed, verify permissions and parameters.

I ran it in:

Powershell
Admin powershell
cmd
admin cmd

Can you run against the provided example (test.exe)?
I just rebuilt everything and it worked for me.
My configuration:
Windows 10 64-bit 20H2
DynamoRIO-Windows-8.0.18712.zip
Visual Studio 2017
Command line (32-bit and 64-bit):
afl-fuzz.exe -i in -o out -D D:\work\DynamoRIO-Windows-8.0.18712\bin32 -t 20000 -- -coverage_module test.exe -fuzz_iterations 5000 -target_module test.exe -target_offset 0x1630 -nargs 2 -- D:\work\winafl\bin32\test.exe @@

afl-fuzz.exe -i in -o out -D D:\work\DynamoRIO-Windows-8.0.18712\bin64 -t 20000 -- -coverage_module test.exe -fuzz_iterations 5000 -target_module test.exe -target_offset 0x1610 -nargs 2 -- D:\work\winafl\bin64\test.exe @@

Note: offset is that of main. If you rebuild the binaries, the offset will likely change. The offsets above are valid for the pre-built target binaries located in bin32 and bin64 directories.

There also seems to be an error with your command line:
.\afl-fuzz.exe -D C:\Users\mjones\DynamoRIO-Windows-8.0.18705\bin64 -i testin -o testout -t 200000 -- -coverage_module minimal_fuzzer_w64d_1_0 -target_module minimal_fuzzer_w64d_1_0 -target_method fuzz -fuzz_iterations 10 -nargs 2 -- minimal_fuzzer-w64d-1-0.exe \@@

-target_module and -coverage_module should probably be minimal_fuzzer-w64d-1-0.exe and not minimal_fuzzer_w64d_1_0 (extension is important, and there seem to be differences in slashes vs. underscores)

There also seems to be an error with your command line:
.\afl-fuzz.exe -D C:\Users\mjones\DynamoRIO-Windows-8.0.18705\bin64 -i testin -o testout -t 200000 -- -coverage_module minimal_fuzzer_w64d_1_0 -target_module minimal_fuzzer_w64d_1_0 -target_method fuzz -fuzz_iterations 10 -nargs 2 -- minimal_fuzzer-w64d-1-0.exe \@@

-target_module and -coverage_module should probably be minimal_fuzzer-w64d-1-0.exe and not minimal_fuzzer_w64d_1_0 (extension is important, and there seem to be differences in slashes vs. underscores)

See my original post for why I am using the names that I am using.
I have no explanation for why I need to use the modified module name, but I get much farther with it than without it.

I compile that cpp file into "minimal_fuzzer-w64d-1-0.exe", and copy afl-fuzzer and winafl.dll into the same folder as my new exe. I create ./testin/0001.json and attempt to use the DynamoRio drrun.exe program.
C:\Users\mjones\DynamoRIO-Windows-8.0.0-1\bin64\drrun.exe -c winafl.dll -debug -target_module minimal_fuzzer-w64d-1-0.exe -target_method fuzz -fuzz_iterations 10 -nargs 1 -- minimal_fuzzer-w64d-1-0.exe .\testin\0001.json

does not work. Claims it can't find the "fuzz" function.
Changing the -target_module parameter to minimal_fuzzer_w64d_1_0 gets past that.
C:\Users\mjones\DynamoRIO-Windows-8.0.0-1\bin64\drrun.exe -c winafl.dll -debug -target_module minimal_fuzzer-w64d-1-0.exe -target_method fuzz -fuzz_iterations 10 -nargs 1 -- minimal_fuzzer-w64d-1-0.exe .\testin\0001.json

I see the output
Entered fuzz function: .\testin\0001.json
Once and only once, and then drrun.exe exits.

Visual Studio 2017

Why are you using VS2017? That's 4 years old.

test.exe doesn't work.
PS C:\Users\mjones\build-winafl\bin\Release>.\afl-fuzz.exe -i in -o out -D C:\users\mjones\DynamoRIO-Windows-8.0.0-1\bin64 -t 20000 -- -coverage_module .\test.exe -fuzz_iterations 5000 -target_module .\test.exe -target_method main -nargs 2 -- D:\work\winafl\bin64\test.exe \@@
WinAFL 1.16b by<EMAIL_ADDRESS>Based on AFL 2.43b by<EMAIL_ADDRESS>[+] You have 24 CPU cores and 0 runnable tasks (utilization: 0%).
[+] Try parallel jobs - see afl_docs\parallel_fuzzing.txt.
[*] Checking CPU core loadout...
[+] Found a free CPU core, binding to #0.
[+] Process affinity is set to 1.

[*] Setting up output directories...
[+] Output directory exists but deemed OK to reuse.
[*] Deleting old session data...
[+] Output dir cleanup successful.
[*] Scanning 'in'...
[+] No auto-generated dictionary tokens to reuse.
[*] Creating hard links for all input files...
[*] Attempting dry run with 'id_000000'...

[-] PROGRAM ABORT : Error opening pidfile.txt
         Location : create_target_process(), C:\Users\mjones\winafl\afl-fuzz.c:2365

You need to change the path to point to your test.exe. Also not sure why you have a backslash before the last param (\@@)

And you're pointing to an older DR version.

PS C:\Users\mjones\build-winafl\bin\Release>C:\Users\mjones\DynamoRIO-Windows-8.0.0-1\bin64\drrun.exe -c winafl.dll -debug -target_module .\test.exe -target_method main -fuzz_iterations 10 -nargs 1 -- .\test.exe .\in\tracing.h
Error 1

PS C:\Users\mjones\build-winafl\bin\Release>C:\Users\mjones\DynamoRIO-Windows-8.0.0-1\bin64\drrun.exe -c winafl.dll -debug -target_module .\test.exe -target_method main -fuzz_iterations 10 -nargs 2 -- .\test.exe .\in\tracing.h
Error 1

PS C:\Users\mjones\build-winafl\bin\Release>C:\Users\mjones\DynamoRIO-Windows-8.0.0-1\bin64\drrun.exe -c winafl.dll -debug -target_module test -target_method main -fuzz_iterations 10 -nargs 2 -- .\test.exe .\in\tracing.h
Error 1

and with the DynamoRIO nightly build
PS C:\Users\mjones\build-winafl\bin\Release>C:\Users\mjones\DynamoRIO-Windows-8.0.18705\bin64\drrun.exe -c winafl.dll -debug -target_module .\test.exe -target_method main -fuzz_iterations 10 -nargs 2 -- test.exe .\in\tracing.h
Error 1

PS C:\Users\mjones\build-winafl\bin\Release>C:\Users\mjones\DynamoRIO-Windows-8.0.18705\bin64\drrun.exe -c winafl.dll -debug -target_module test.exe -target_method main -fuzz_iterations 10 -nargs 2 -- test.exe .\in\tracing.h
ASSERT FAILURE: C:\Users\mjones\winafl\winafl.c:700: to_warp (Can't find specified method in fuzz_module).

Is there no way for winafl to search for modules in the provided binary that are mutations of the provided path? E.g. strip out leading path separators, and add/remove .exe and variations of underscores/dashes?

And you're pointing to an older DR version.

Yes, you're right. My mistake, sorry. Early morning for me. Trying again.

Also not sure why you have a backslash before the last param (\@@)

PS C:\Users\mjones\build-winafl\bin\Release>.\afl-fuzz.exe -i in -o out -D C:\users\mjones\DynamoRIO-Windows-8.0.18705\bin64 -t 20000 -- -coverage_module .\test.exe -fuzz_iterations 5000 -target_module .\test.exe -target_method main -nargs 2 -- test.exe \@@
WinAFL 1.16b by<EMAIL_ADDRESS>Based on AFL 2.43b by<EMAIL_ADDRESS>[+] You have 24 CPU cores and 0 runnable tasks (utilization: 0%).
[+] Try parallel jobs - see afl_docs\parallel_fuzzing.txt.
[*] Checking CPU core loadout...
[+] Found a free CPU core, binding to #0.
[+] Process affinity is set to 1.

[*] Setting up output directories...
[+] Output directory exists but deemed OK to reuse.
[*] Deleting old session data...
[+] Output dir cleanup successful.
[*] Scanning 'in'...
[+] No auto-generated dictionary tokens to reuse.
[*] Creating hard links for all input files...
[*] Attempting dry run with 'id_000000'...

[-] The program took more than 20000 ms to process one of the initial test cases.
    Usually, the right thing to do is to relax the -t option - or to delete it
    altogether and allow the fuzzer to auto-calibrate. That said, if you know
    what you are doing and want to simply skip the unruly test cases, append
    '+' at the end of the value passed to -t ('-t 20000+').

[-] PROGRAM ABORT : Test case 'id_000000' results in a timeout
         Location : perform_dry_run(), C:\Users\mjones\winafl\afl-fuzz.c:3019

process 18532 is not running under DR
0 processes nudged
nudge operation failed, verify permissions and parameters.
PS C:\Users\mjones\build-winafl\bin\Release>.\afl-fuzz.exe -i in -o out -D C:\users\mjones\DynamoRIO-Windows-8.0.18705\bin64 -t 20000 -- -coverage_module .\test.exe -fuzz_iterations 5000 -target_module .\test.exe -target_method main -nargs 2 -- test.exe @@
At line:1 char:211
+ ... -target_module .\test.exe -target_method main -nargs 2 -- test.exe @@
+                                                                        ~
Unrecognized token in source text.
At line:1 char:212
+ ... -target_module .\test.exe -target_method main -nargs 2 -- test.exe @@
+                                                                         ~
Unrecognized token in source text.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnrecognizedToken

That's why

You shouldn't use a path in -target_module and -coverage_module flags, e.g. -target_module test.exe instead of -target_module .\test.exe. My earlier comment about the path was referring to changing the path in the target command line, not instrumentation flags.

You shouldn't use a path in -target_module and -coverage_module flags, e.g. -target_module test.exe instead of -target_module .\test.exe. My earlier comment about the path was referring to changing the path in the target command line, not instrumentation flags.

Ok.
This isn't really ergonomic, since powershell is automatically adding path characters when I use it's in-build auto-complete functionality.

PS C:\Users\mjones\build-winafl\bin\Release>.\afl-fuzz.exe -i in -o out -D C:\users\mjones\DynamoRIO-Windows-8.0.18705\bin64 -t 20000 -- -coverage_module test.exe -fuzz_iterations 5000 -target_module test.exe -target_method main -nargs 2 -- test.exe \@@
WinAFL 1.16b by<EMAIL_ADDRESS>Based on AFL 2.43b by<EMAIL_ADDRESS>[+] You have 24 CPU cores and 0 runnable tasks (utilization: 0%).
[+] Try parallel jobs - see afl_docs\parallel_fuzzing.txt.
[*] Checking CPU core loadout...
[+] Found a free CPU core, binding to #0.
[+] Process affinity is set to 1.

[*] Setting up output directories...
[+] Output directory exists but deemed OK to reuse.
[*] Deleting old session data...
[+] Output dir cleanup successful.
[*] Scanning 'in'...
[+] No auto-generated dictionary tokens to reuse.
[*] Creating hard links for all input files...
[*] Attempting dry run with 'id_000000'...

[-] The program took more than 20000 ms to process one of the initial test cases.
    Usually, the right thing to do is to relax the -t option - or to delete it
    altogether and allow the fuzzer to auto-calibrate. That said, if you know
    what you are doing and want to simply skip the unruly test cases, append
    '+' at the end of the value passed to -t ('-t 20000+').

[-] PROGRAM ABORT : Test case 'id_000000' results in a timeout
         Location : perform_dry_run(), C:\Users\mjones\winafl\afl-fuzz.c:3019

process 14716 is not running under DR
0 processes nudged
nudge operation failed, verify permissions and parameters.

This gives me the assert popup
ASSERT FAILURE: C:\Users\mjones\winafl\winafl.c:700: to_warp (Can't find specified method in fuzz_module).

Rebuilt WinAFL as debug, tried again.
mkdir build-winafl-debug
&'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe' -G"Visual Studio 16 2019" -A x64 -S .\winafl\ -B .\build-winafl-debug\ -DDynamoRIO_DIR=C:\users\mjones\DynamoRIO-Windows-8.0.18705\cmake\
&'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe' --build .\build-winafl-debug\ --config Debug

PS C:\Users\mjones\build-winafl-debug\bin\Debug>.\afl-fuzz.exe -i in -o out -D C:\users\mjones\DynamoRIO-Windows-8.0.18705\bin64 -t 20000 -- -coverage_module test.exe -fuzz_iterations 5000 -target_module test.exe -target_method main -nargs 2 -- test.exe \@@
WinAFL 1.16b by<EMAIL_ADDRESS>Based on AFL 2.43b by<EMAIL_ADDRESS>[+] You have 24 CPU cores and 0 runnable tasks (utilization: 0%).
[+] Try parallel jobs - see afl_docs\parallel_fuzzing.txt.
[*] Checking CPU core loadout...
[+] Found a free CPU core, binding to #0.
[+] Process affinity is set to 1.

[*] Setting up output directories...
[+] Output directory exists but deemed OK to reuse.
[*] Deleting old session data...
[+] Output dir cleanup successful.
[*] Scanning 'in'...
[+] No auto-generated dictionary tokens to reuse.
[*] Creating hard links for all input files...
[*] Attempting dry run with 'id_000000'...

[-] The program took more than 20000 ms to process one of the initial test cases.
    Usually, the right thing to do is to relax the -t option - or to delete it
    altogether and allow the fuzzer to auto-calibrate. That said, if you know
    what you are doing and want to simply skip the unruly test cases, append
    '+' at the end of the value passed to -t ('-t 20000+').

[-] PROGRAM ABORT : Test case 'id_000000' results in a timeout
         Location : perform_dry_run(), C:\Users\mjones\winafl\afl-fuzz.c:3019

process 10528 is not running under DR
0 processes nudged
nudge operation failed, verify permissions and parameters.

ASSERT FAILURE: C:\Users\mjones\winafl\winafl.c:700: to_warp (Can't find specified method in fuzz_module).

Yep, likely no symbols are available (release build) and, additionally, WinAFL needs to be compiled with -DUSE_DRSYMS=1 in order to recognize the name (main). Otherwise, offset should be used.

Yep, likely no symbols are available (release build) and, additionally, WinAFL needs to be compiled with -DUSE_DRSYMS=1 in order to recognize the name (main). Otherwise, offset should be used.

Locating the offset is way too error prone. Until last week, I had no idea how to even get a copy of WinDbg, much less how to use it. Nearly unusable tool.
I suggest that if WinAFL isn't compiled with the needed flag, it should pop up a warning saying

WinAFL needs to be compiled with -DUSE_DRSYMS=1 in order to recognize the name (main). Otherwise, offset should be used.

Now that I've added -DUSE_DRSYMS=1, running
.\afl-fuzz.exe -i in -o out -D C:\users\mjones\DynamoRIO-Windows-8.0.18705\bin64 -t 20000 -- -coverage_module test.exe -fuzz_iterations 5000 -target_module test.exe -target_method main -nargs 2 -- test.exe \@@

works!
Great.
Going to try my application now.

I'm in business. Fantastic.
Lesson learned appears to be that -DUSE_DRSYMS=1 was required.
There's no documentation in github about this flag that I can find:
https://github.com/googleprojectzero/winafl/search?q=USE_DRSYMS
.\afl-fuzz.exe -D C:\Users\mjones\DynamoRIO-Windows-8.0.18705\bin64\ -i testin -o testout -t 200000 -- -coverage_module minimal_fuzzer-w64d-1-0.exe -target_module minimal_fuzzer-w64d-1-0.exe -target_method fuzz -fuzz_iterations 10 -nargs 2 -- minimal_fuzzer-w64d-1-0.exe \@@
WinAFL 1.16b by<EMAIL_ADDRESS>Based on AFL 2.43b by<EMAIL_ADDRESS>[+] You have 24 CPU cores and 0 runnable tasks (utilization: 0%).
[+] Try parallel jobs - see afl_docs\parallel_fuzzing.txt.
[*] Checking CPU core loadout...
[+] Found a free CPU core, binding to #0.
[+] Process affinity is set to 1.

[*] Setting up output directories...
[+] Output directory exists but deemed OK to reuse.
[*] Deleting old session data...
[+] Output dir cleanup successful.
[*] Scanning 'testin'...
[+] No auto-generated dictionary tokens to reuse.
[*] Creating hard links for all input files...
[*] Attempting dry run with 'id_000000'...
    len = 59, map size = 49, exec speed = 39900 us
[!] WARNING: Instrumentation output varies across runs.
[+] All test cases processed.

[!] WARNING: The target binary is pretty slow! See afl_docs\perf_tips.txt.
[+] Here are some useful stats:

    Test case count : 1 favored, 1 variable, 1 total
       Bitmap range : 49 to 49 bits (average: 49.00 bits)
        Exec timing : 39.9k to 39.9k us (average: 39.9k us)

[+] All set and ready to roll!

         WinAFL 1.16b based on AFL 2.43b (minimal_fuzzer-w64d-1-0.exe)

+- process timing -------------------------------------+- overall results ----+
|        run time : 0 days, 0 hrs, 0 min, 1 sec        |  cycles done : 0     |
|   last new path : none seen yet                      |  total paths : 1     |
| last uniq crash : none seen yet                      | uniq crashes : 0     |
|  last uniq hang : none seen yet                      |   uniq hangs : 0     |
+- cycle progress --------------------+- map coverage -+----------------------+
|  now processing : 0 (0.00%)         |    map density : 0.07% / 0.10%        |
| paths timed out : 0 (0.00%)         | count coverage : 1.00 bits/tuple      |
+- stage progress --------------------+ findings in depth --------------------+
|  now trying : init                  | favored paths : 1 (100.00%)           |
| stage execs : 0/-                   |  new edges on : 1 (100.00%)           |
| total execs : 40                    | total crashes : 0 (0 unique)          |
|  exec speed : 25.02/sec (slow!)     |  total tmouts : 0 (0 unique)          |
+- fuzzing strategy yields -----------+---------------+- path geometry -------+
|   bit flips : 0/0, 0/0, 0/0                         |    levels : 1         |
|  byte flips : 0/0, 0/0, 0/0                         |   pending : 1         |
| arithmetics : 0/0, 0/0, 0/0                         |  pend fav : 1         |
|  known ints : 0/0, 0/0, 0/0                         | own finds : 0         |
|  dictionary : 0/0, 0/0, 0/0                         |  imported : n/a       |
|       havoc : 0/0, 0/0                              | stability : 71.21%    |
|        trim : n/a, n/a                              +-----------------------+
[*] Entering queue cycle 1.---------------------------+             [cpu:  0%]
[*] Fuzzing test case #0 (1 total)...

         WinAFL 1.16b based on AFL 2.43b (minimal_fuzzer-w64d-1-0.exe)

+- process timing -------------------------------------+- overall results ----+
|        run time : 0 days, 0 hrs, 0 min, 2 sec        |  cycles done : 0     |
|   last new path : none seen yet                      |  total paths : 1     |
| last uniq crash : none seen yet                      | uniq crashes : 0     |
|  last uniq hang : none seen yet                      |   uniq hangs : 0     |
+- cycle progress --------------------+- map coverage -+----------------------+
|  now processing : 0 (0.00%)         |    map density : 0.07% / 0.10%        |
| paths timed out : 0 (0.00%)         | count coverage : 1.00 bits/tuple      |
+- stage progress --------------------+ findings in depth --------------------+
|  now trying : bitflip 1\1           | favored paths : 1 (100.00%)           |
| stage execs : 6/408 (1.47%)         |  new edges on : 1 (100.00%)           |
| total execs : 61                    | total crashes : 0 (0 unique)          |
|  exec speed : 24.55/sec (slow!)     |  total tmouts : 0 (0 unique)          |
+- fuzzing strategy yields -----------+---------------+- path geometry -------+
|   bit flips : 0/0, 0/0, 0/0                         |    levels : 1         |
|  byte flips : 0/0, 0/0, 0/0                         |   pending : 1         |
| arithmetics : 0/0, 0/0, 0/0                         |  pend fav : 1         |
|  known ints : 0/0, 0/0, 0/0                         | own finds : 0         |
|  dictionary : 0/0, 0/0, 0/0                         |  imported : n/a       |
|       havoc : 0/0, 0/0                              | stability : 71.21%    |
|        trim : 13.56%/14, n/a                        +-----------------------+
+-----------------------------------------------------+             [cpu:  0%]
         WinAFL 1.16b based on AFL 2.43b (minimal_fuzzer-w64d-1-0.exe)

+- process timing -------------------------------------+- overall results ----+
|        run time : 0 days, 0 hrs, 0 min, 4 sec        |  cycles done : 0     |
|   last new path : none seen yet                      |  total paths : 1     |
| last uniq crash : none seen yet                      | uniq crashes : 0     |
|  last uniq hang : none seen yet                      |   uniq hangs : 0     |
+- cycle progress --------------------+- map coverage -+----------------------+
|  now processing : 0 (0.00%)         |    map density : 0.07% / 0.10%        |
| paths timed out : 0 (0.00%)         | count coverage : 1.00 bits/tuple      |
+- stage progress --------------------+ findings in depth --------------------+
|  now trying : bitflip 1\1           | favored paths : 1 (100.00%)           |
| stage execs : 36/408 (8.82%)        |  new edges on : 1 (100.00%)           |
| total execs : 91                    | total crashes : 0 (0 unique)          |
|  exec speed : 24.57/sec (slow!)     |  total tmouts : 0 (0 unique)          |
+- fuzzing strategy yields -----------+---------------+- path geometry -------+
|   bit flips : 0/0, 0/0, 0/0                         |    levels : 1         |
|  byte flips : 0/0, 0/0, 0/0                         |   pending : 1         |
| arithmetics : 0/0, 0/0, 0/0                         |  pend fav : 1         |
|  known ints : 0/0, 0/0, 0/0                         | own finds : 0         |
|  dictionary : 0/0, 0/0, 0/0                         |  imported : n/a       |
|       havoc : 0/0, 0/0                              | stability : 71.21%    |
|        trim : 13.56%/14, n/a                        +-----------------------+
+-----------------------------------------------------+             [cpu:  0%]
         WinAFL 1.16b based on AFL 2.43b (minimal_fuzzer-w64d-1-0.exe)

+- process timing -------------------------------------+- overall results ----+
|        run time : 0 days, 0 hrs, 0 min, 5 sec        |  cycles done : 0     |
|   last new path : none seen yet                      |  total paths : 1     |
| last uniq crash : none seen yet                      | uniq crashes : 0     |
|  last uniq hang : none seen yet                      |   uniq hangs : 0     |
+- cycle progress --------------------+- map coverage -+----------------------+
|  now processing : 0 (0.00%)         |    map density : 0.07% / 0.10%        |
| paths timed out : 0 (0.00%)         | count coverage : 1.00 bits/tuple      |
+- stage progress --------------------+ findings in depth --------------------+
|  now trying : bitflip 1\1           | favored paths : 1 (100.00%)           |
| stage execs : 66/408 (16.18%)       |  new edges on : 1 (100.00%)           |
| total execs : 121                   | total crashes : 0 (0 unique)          |
|  exec speed : 24.60/sec (slow!)     |  total tmouts : 0 (0 unique)          |
+- fuzzing strategy yields -----------+---------------+- path geometry -------+
|   bit flips : 0/0, 0/0, 0/0                         |    levels : 1         |
|  byte flips : 0/0, 0/0, 0/0                         |   pending : 1         |
| arithmetics : 0/0, 0/0, 0/0                         |  pend fav : 1         |
|  known ints : 0/0, 0/0, 0/0                         | own finds : 0         |
|  dictionary : 0/0, 0/0, 0/0                         |  imported : n/a       |
|       havoc : 0/0, 0/0                              | stability : 71.21%    |
|        trim : 13.56%/14, n/a                        +-----------------------+

That being said, why is win_afl claiming that my binary is pretty slow when the function being fuzzed is a 1-liner?
#include <iostream>
extern "C" __declspec(dllexport) void fuzz(char const* const filename)
{
    std::cout << "Entered fuzz function:" << filename << std::endl;
} // fuzz

That's confusing.

USE_DRSYMS is a WinAFL flag (affecting whether drsyms module will be used) so you won't find it in other projects.
To get some extra speed, increase -fuzz_iterations. -fuzz_iterations 10 means the target process will be restarted every 10 iterations, which is a slow operation (and even more so under instrumentation).

Is that what
[!] WARNING: The target binary is pretty slow! See afl_docs\perf_tips.txt.

is complaining about?


Rename component

Problem
ha-google-home is not PEP8 compliant name for python module. It should use _ for spaces.
This is only 1 of 2 custom components with - here: https://github.com/home-assistant/wheels-custom-integrations/tree/master/components
All components in home assistant follow this rule: https://github.com/home-assistant/core/tree/dev/homeassistant/components
Can we rename the whole thing?
I understand it's quite a huge change but it's better to do this earlier.
But this is also an opportunity to choose a better name. Can we use just google_home or it's too bold? 🙂
There is no official google_home component anymore, so this name should be free.
What needs to be renamed

https://github.com/home-assistant/brands/pull/2317
https://github.com/home-assistant/wheels-custom-integrations/pull/313
This folder: https://github.com/leikoilja/ha-google-home/tree/master/custom_components/ha-google-home
Entries in manifest.json
Documentation
Repo renaming (GitHub automatically redirects within the same domain to the updated repo name).

(edit from Ilja) Update link references in @DurgNomis-drol's card here
(edit from Ilja) Update link references on HA community forum here

uuuu, i see where we messed up with dashes in the name 😄  Had a discussion early on at #19.
I can see the benefit of what you are proposing, and would be up for a challenge. Especially this early on with nearly no people yet using it. I have added two bullet points to the "TODO" list and I believe if we pull the forces together and split the tasks we should be quite able to do it with the minimum amount of hassle :)
@ArnyminerZ, @DurgNomis-drol you guys in? 💥 👨💻

I'm all for it! 😄
I will take home-assistant/brands#2317 and my own card.

Sounds great! Let's reference this ticket everywhere where needed then.
I'll take the repo renaming; community forum reference update; and all references around the code (incl directory name and manifest).
@KapJI would you like to help opening PR at home-assistant/wheels-custom-integrations#313 (i guess after this repo is renamed) and updating documentation?

@leikoilja sure, I can do that!

Thank you both, @KapJI, @DurgNomis-drol, it went surprisingly quick to rename the entire thing 🚀 💯


Allow private route tables not to be created when NAT Gateway is not being created

Is your request related to a problem? Please describe.

I need to create a VPC with intra, public and database subnets and the module ends up creating an unwanted private route table that I have no use for my infrastructure.
Code
module "vpc_spoke" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "3.11.0"

  cidr = "<IP_ADDRESS>/16"
  name = "dev"

  azs              = ["us-east-1a", "us-east-1b", "us-east-1c"]
  intra_subnets    = ["<IP_ADDRESS>/22", "<IP_ADDRESS>/22", "<IP_ADDRESS>/22"]
  public_subnets   = ["<IP_ADDRESS>/22", "<IP_ADDRESS>/22", "<IP_ADDRESS>/22"]
  database_subnets = ["<IP_ADDRESS>/22", "<IP_ADDRESS>/22", "<IP_ADDRESS>/22"]

  single_nat_gateway     = true
  one_nat_gateway_per_az = false
  enable_nat_gateway     = false

  manage_default_network_acl     = true
  public_dedicated_network_acl   = true
  intra_dedicated_network_acl    = true
  database_dedicated_network_acl = true

  manage_default_route_table         = true
  create_database_subnet_route_table = true
  create_database_subnet_group     = false
}

Describe the solution you'd like.

I need the VPC to be created without private route table when I have 0 private subnets. I need each type of my subnets to continue to have only 1 route table.
Describe alternatives you've considered.

Currently:
https://github.com/terraform-aws-modules/terraform-aws-vpc/blob/57ba0ef08063390636daedcf88f71443281c2b84/main.tf#L8
Proposal:
An initial change would be to modify the logic of local.nat_gateway_count.
Change proposal
nat_gateway_count = var.single_nat_gateway ? 1 : var.one_nat_gateway_per_az ? length(var.azs) : !var.single_nat_gateway && !var.enable_nat_gateway ? 0 : local.max_subnet_length

Looking only at the private route table, I changed single nat gateway to false in the module and executed the terraform plan. The private subnet would be destroyed :) . However, 3 new database route tables would eventually be created :( . With this, i realized that it will also be necessary to change the logic in the count of the route tables that are not private, such as the database ones.

dupelicate of #184


[Bug]

Description
Launcher can't identify game files
Reproduction Steps
open launcher-> setting -> locate -> choose game file
Expected Behavior
No response
Screenshots

Starward Version
0.9.1
Windows Version
19045.3448
Log
nope

Additional Context
No response

Closed for no title or content.


fix local param of Timelines.getTag and getPublic

only_media と同様に getTag と getPublic の local パラメータも false では有効になってしまいましたので同じ対応を行いました。

Codecov Report

Merging #40 into master will increase coverage by 0.54%.
The diff coverage is 66.66%.

@@             Coverage Diff              @@
##             master      #40      +/-   ##
============================================
+ Coverage     24.28%   24.83%   +0.54%
  Complexity       54       54
============================================
  Files            36       36
  Lines           457      463       +6
  Branches         59       61       +2
============================================
+ Hits            111      115       +4
  Misses          341      341
- Partials          5        7       +2

Impacted Files
Coverage Δ
Complexity Δ

...va/com/sys1yagi/mastodon4j/api/method/Timelines.kt
50% <66.66%> (+5%)
5 <2> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

good


[Storage] [DataMovement] Add/update various docstrings

Resolves #35354

API change check
API changes are not detected in this pull request.


cpplint: Decode filename path

While waiting for official python3 support,
enable (troublefree) usage of pylint in paths
containing non-ascii characters.
Use local preferred encoding to make a qualified
guess of what the local locale is...

I signed it!

Consider submitting the patch to the fork at https://github.com/cpplint/cpplint


change how clearing dropdowns work

see original request here
https://app.zenhub.com/workspaces/augur-5bfed3424b5806bc2bf8d173/issues/augurproject/augur/5054

closing


⚠ Bofrost.lu has degraded performance

In 4e87b1c, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2535 ms

Resolved: Bofrost.lu performance has improved in 6a0150a after 25 minutes.


JWT with nbf = 0 considered as BAD_FORMAT

More context: https://github.com/cloudendpoints/esp/issues/308
The JWT verifier considers 0 as invalid value, but some JWT issuer (Keycloak) include nbf=0 as claims.

This issue is still valid for us; as far as I know, the JSON Web Token standard does not consider the nbf value of 0 to be invalid.