Running with suggested args fails

See below. Using the args suggested in the README fails. I tried this after having some issues with my own docker-compose.
Image Setup Details

Image Tag: latest

Docker Host OS: Ubuntu 18.04
docker run command or docker-compose.yml file:

#!/bin/sh
docker run -v steam:/home/steam/Steam -v ark:/ark -p 27015:27015 -p 27015:27015/udp -p 7778:7778 -p 7778:7778/udp -p 7777:7777 -p 7777:7777/udp thmhoag/arkserver

Description of Issue
Output is:
###########################################################################
# Ark Server -  Tue Sep 1 01:03:46 UTC 2020
###########################################################################
Ensuring correct permissions...
Cleaning up any leftover arkmanager files...
Creating arkmanager.cfg from environment variables...
No game files found. Installing...
Starting cron service...
 * Starting periodic command scheduler cron
   ...done.
Loading crontab...
Save file validation is not enabled.
Backup on start is not enabled.
Running command 'start' for instance 'main'
[  WARN  ] 	Your ARK server exec could not be found.
Checking for updates before starting
Checking for update; PID: 44
sed: can't read /ark/server/steamapps/appmanifest_376030.acf: No such file or directory
Downloading ARK updateExecuting /home/steam/.steam/steamcmd/steamcmd.sh +@NoPromptForPassword 1 +login anonymous +force_install_dir /ark/staging +app_update 376030 +quit
Redirecting stderr to '/home/steam/.steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...OK.
"@NoPromptForPassword" = "1"

Connecting anonymously to Steam Public...Logged in OK
Waiting for user info...OK
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
 Update state (0x5) verifying install, progress: 10.91<PHONE_NUMBER> /<PHONE_NUMBER>0)
 Update state (0x5) verifying install, progress: 15.42<PHONE_NUMBER> /<PHONE_NUMBER>0)
 Update state (0x5) verifying install, progress: 83.86<PHONE_NUMBER>1 /<PHONE_NUMBER>0)
 Update state (0x5) verifying install, progress: 87.43<PHONE_NUMBER>4 /<PHONE_NUMBER>0)
Error! App '376030' state is 0x202 after update job.
Update download interrupted
The server is starting...

An update is currently in progress.  Start aborted

Digging a little further, this appears to be happening within arkmanager.

I failed to google. It's because my VM's partition didn't have enough disk space.


Migrate 404 page to "_global"

Is this a BUG REPORT or FEATURE REQUEST?:
feature
Use fragments from "_global". Currently it uses "global" instead.

Regarding this issue, I can't seem to find any 404 page within the dev/fallthrough/global directory

Was more related to the layout code: https://github.com/okkur/syna/blob/master/layouts/404.html#L6
Should have been a bit more elaborate with the issue description.


.js() stucking at 95% if public path is one level before the root

Laravel Mix Version: 1.4.2
Node Version (node -v): 6.11.2
NPM Version (npm -v): 3.10.10
OS: Windows 7
Laravel: 5.4

Description:
*sorry for the bad english
.js() is stucking at '95% emitting' if public path is one level before the Laravel root
I need a setup where compiled css and js folder are located one level before the Laravel root.
The folder root is 'C:\www\rgb-project', and the struct is something like this:

/rgb-project/css (compiled css go here)
/rgb-project/js (compiled js go here)
/rgb-project/laravel
/rgb-project/laravel/public
/rgb-project/laravel/resources/assets/sass/
/rgb-project/laravel/resources/assets/js/

My /rgb-project/laravel/webpack.mix.js is pretty much vanilla, except for the .setPublicPath
let mix = require('laravel-mix');
mix.setPublicPath('../')
	.sass('resources/assets/sass/app.scss', 'css')
	.js('resources/assets/js/app.js', 'js');

If I run 'npm run dev', it will stuck at '95% emitting' state, CSS will be compiled correctly on the '/rgb-project/css' path, but nothing will happen to JS.
If I remove the .js() line it will run perfectly (without JS compiled, off course)
If I do not set the public path (everything vanilla) it will compile correctly at '/rgb-project/laravel/public', but I need it one level before the root

This is the 'mix-manifest.json' generated at '/rgb-project' when it stuck at 95%:
{
    "/C:/www/rgb-project/js/app.js": "/C:/www/rgb-project/js/app.js",
    "/css/app.css": "/css/app.css"
}

Steps To Reproduce:

Vanilla Laravel 5.4
Add ".setPublicPath('../')" to 'webpack.mix.js'
Compile

I am having the same issue so i reverted to using the default structure of the public folder. Then just switching the structure for when I push to production. Would be a useful fix though :)

Try this fix, it's working for me.

@TopFuel That fixed it. Thanks.

@TopFuel Thanks, that works, just a little observation:
path.normalize('../') Do not work
path.normalize('../.') Is working correctly


Share code clipboard function hidden behind bluetooth request, and 'copy to clipboard' text hidden behind black bar.

In the latest update you have to close/dismiss the bluetooth request box just to be able to get to the copy locally button.
When you get to the local option, the 'copy to clipboard' text, it is almost completely blacked out, like a very dark grey, almost impossible to read.
The local copy to clipboard needs to not be hidden behind a bluetooth request, and the copy to clipboard text needs to have the BG colour adjusted so it is visible.

Thanks @Githubuxer we will discuss how we can improve the user experience for copying to clipboard and address the blacked out/hidden text issue.

In previous version the generated token was copied to clipboard automatically. Can we bring this functionality again?

@agiertli This functionality was removed to avoid leaking token codes unintentionally

I also lack the ability to automatically copy to the clipboard.
Unfortunately, the Sharing option does not work.
I tested repeatedly between iPhone-Macbook, iPhone-iPad, iPhone-MacMini.
As a result, I've temporarily started using Google Authenticator.

@justin-stephenson understand - but it makes far worse UX. Is there any way how I can easily rollback my FreeOTP app to an older version? This is a deal breaker functionality for me personally.

@pplch Click "Share". Click "Copy to Clipboard". I'm not sure where the problem lies.

The "copy to clipboard" button is pitch black with a pitch black text. I
had no idea it had some text on it until some guys on memo list mentioned
it. The no contrast just makes it not readable.
On Tue, Jun 9, 2020 at 4:50 PM Nathaniel McCallum<EMAIL_ADDRESS>wrote:

@pplch https://github.com/pplch Click "Share". Click "Copy to
Clipboard". I'm not sure where the problem lies.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/freeotp/freeotp-ios/issues/156#issuecomment-641347110,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA6KI2G23DXVEO6L3KJWJCTRVZDXPANCNFSM4NQ4ULUA
.

@agiertli That seems like a legitimate bug. @justin-stephenson Please investigate.

@agiertli This was fixed in https://github.com/freeotp/freeotp-ios/commit/71ecdc9c36a6b0a47dd6e61f770e689cf4784fcd and will be included in the next minor bug fix release

It works now.
I had to delete all tokens, then re-added them.
Now it works without problems: "Tap" Share -> "Tap" Copy to Clipboard.
Thank you very much.

The other UX issue here, is that you are asking the user to click on the 'share' text without knowing what the status/expiry of the current token is, because to check the token, it hides the share button,  and you can not get back to it. The user needs to see the status of the token expiry to ensure they have enough time to copy/paste token.

The copy to clipboard works, but it should not ask for BT permissions

The other UX issue here, is that you are asking the user to click on the 'share' text without knowing what the status/expiry of the current token is, because to check the token, it hides the share button, and you can not get back to it. The user needs to see the status of the token expiry to ensure they have enough time to copy/paste token.

This is not a problem in practice. OTP servers almost always allow multiple tokens to be valid at once. For example, if you're using TOTP, you typically get something like +/- 3-10 tokens valid at once. So there is really no need to worry about the expiry of the current token.

The copy-to-clipboard/Share scene UI issue is fixed in v2.1
Any other issues should be separated out into different tickets.


Added example with the function code to infer ai platform models, upd…

…ated README.md
Added example code for the scheduled Google Cloud blog post on inferring AI Platform models with Google Cloud Functions.
The original repo for the code is: https://github.com/CaravelApp/serverless-example

I signed it!


Technical updates to front page "version line"

See issue #XXX for discussion of these changes.
This PR, which has no associated issue,  is intended to do two things:

Activate the html link to https://cfconventions.org in the "version line" (below author list) of the html document.
Change the spaces in the text related to the same html link to non-breaking spaces so that a possible line break in the pdf version does not chop up the text (this should have been done already in PR#464.

Release checklist

[x] Authors updated in cf-conventions.adoc?
[x] Next version in cf-conventions.adoc up to date? Versioning inspired by SemVer.
[x] history.adoc up to date?
[x] Conformance document up-to-date?

For maintainers
After the merge remember to delete the source branch.
Tags are set at the conclusion of the annual meeting; until then, main always is a draft for the next version.

This is  a purely technical and formatting PR. It builds on PR #475 and needs to be updated as soon as that one is merged. Because it does not aftect the content in any way, it should be possible to merge this one as soon as it has been established that it does what is intended.

The result of these changes can be checked by downloading the zipped documents that resultsw from the gh action. These are available from this link. Essentially, here are screen captures of the changes:
Current version html:

New version html:

Current version pdf:

New version pdf:

@davidhassell could you have a final look and merge if nothing comes up.

OK, I the < > have are now removed.


FAQ: In-app statistics (EN) correct translation discrepancies

This PR corrects some translation discrepancies in
https://www.coronawarn.app/en/faq/#further_details
In-App statistics starting with release 1.11
compared to
https://www.coronawarn.app/de/faq/#further_details
In-App Statistiken ab Release 1.11
This is the updated text:

The main problem was stating that the results in the app were deferred, which means a long delay, for example "The exhibition was deferred until next year due to the pandemic". I changed that to "slightly delayed" instead because deferred was not a correct use of the word in this context.
The English text referred to "figures and graphs" where the German text only refers to "Zahlen". I removed the references to "graphs".
I also wrote out the first reference to "Robert Koch Institute" in full then used the abbreviation (RKI).
There are some other minor wording changes I made as well.

The text should now better correspond to the German text.

@MikeMcC399 Looks good to me. Thanks.

@GisoSchroederSAP Please, have a look and merge if you approve! Thanks!

This change should be fine on its own. Will try to get approval again.

@MikeMcC399 Thanks for adjusting this article.


[Request]: Launch Argument for Collapse

Is your request related to a problem?
No
How is the feature request related to the problem?
No response
Describe your proposed solution
Having something like /Genshin argument when starting Collapse, and it will directly load the "Genshin Impact" screen
Describe alternatives you've considered
I don't know any alternatives
Additional context
No response

Hello!
Collapse already has a command-line argument which lets you load a specific game/region on launch.
Its syntax is the following:
CollapseLauncher.exe open -g <game name/id>

While specifying a game is required, you can also optionally:

choose what region to load by adding
-r <region name/id>
If no region is specified, the last used region will be loaded.

start the game automatically after loading the region by adding
-p

Note that if the game/region name has spaces, the name must be enclosed by quotes.
If you need any help or have any doubts about the usage of this argument, don't hesitate to ask!

Thanks, I didn't know that! Do you know where I can find the list of ID for the games and region?

The "id"s follow the order the game/region appears in the launcher selector (starting at 0).
For example:
Games: 0 -> HI3, 1 -> GI, 2 -> HSR
Regions for Genshin Impact: 0 -> Global, 1 -> Mainland China, 2 -> Bilibili

Thanks!


Fixing issue with PaginationSettings and other debugging issues

Fixes and unit tests for:

item #20
item #21
item #22
item #23

Also fixed some broken unit tests.

All tests passed. As a side note, I'll open an issue to run these tests in a GitHub action once a PR is opened.


win11h2 bug causes unusual behavior

the current mstsc bug introduced with win11h2 (https://pureinfotech.com/windows-11-22h2-bug-remote-desktop/) caused the following behaviour for me.
ls of /home/user/ hung until ctrl+c
tab autocomplete in /home/user/ totally hung the shell.
some other misc behavior of apps trying to access the home directory
I tracked this back to something going wrong with the thinclient_drives mountpoint.
this behaviour did not occur when remoting in from a win10 box.
after disabling the udp stuff as recomended in the above link and rebooting both systems the issue does not reoccur..
I am not sure exactly what is going on but I was able to replicate the issue with win11h2 client and ubuntu 22.04lts server.
its likely microsoft will fix the issue on their end soon enough but given that this can cause this bizzare behavior on a server it might be a possible attack vector or at least an annoyance that a client can cause these issues.
perhaps worth investigating and handling the issue on server side?

@plez0r - we don't support UDP at all on the server side. I take your point however that the chansrv process could be trying to send a request to the client over TCP, and the response over UDP is never received.
Here's a link to the MS forum discussion:-
https://answers.microsoft.com/en-us/windows/forum/all/issues-with-remote-desktop-on-windows-11-after/2f0b90c8-9549-46bb-bede-41c2d3990380
We'll need to try to reproduce this to see if we can do anything server-side.

@matt335672 - yeah that was my point, not supporting udp is fine but if a client tries to use it and it causes server side issues then that is obviously a bit of a problem.
notes for reproduction:
win11 22h2 with standard rdp client
ubuntu 22.04LTS running KDE
if you have any other questions about the setup if you cant reproduce and ill see what I can do to help.

Hi @piez0r
I was having problems reproducing this, but I've just realised Windows Update is b0rked on my VM, so I'm stuck on 21H2. I'll have to re-install.
While I'm doing that, I could do with a log file from you. The use of UDP is initiated by the server during the optional 'multitransport bootstrapping' phase of the connection request - see [MS-RDPBCGR] <IP_ADDRESS> point 8. If the server doesn't do this, the channels won't exist for the client to use.
So, at the moment it's a bit of a mystery. I could be misreading the spec., or something else may be going on.
Can you invoke a crash, and then post the log of the xrdp-chansrv process? It's stored in ~/.local/share/xrdp/xrdp-chansrv.<display>.log, where <display> is the display number of the session. This process is at the very least mis-behaving, so it seems like a good place to start.

I can't actually install 22h2 on any hardware I have at the moment. The boot iso hangs.
That log file might be useful though.

@matt335672
without any evidence to back it up I imagined that it worked in such a way:
client: talk to me on udp://xyz
instead of:
client: talk to me on tcp://xyz
and the server did its best to accommodate and somehow the mounting of thinclient_drives pooped the bed in the process
however onwards with the issue at hand: when I have tried to reproduce once again by changing my settings back to allow udp on the client I can no longer get it to produce the unusual behaviour.
I suspect this is due to cumulative update KB5018427 which had a number of bugfixes to various things which may have fixed the issue client side
I will try a few things to see if I can get it to fall over again but I suspect the reproduction method would now involve reinstalling with 22h2 initial version and not adding the cumulative update
that is unless this is a freak thing that only happened to me... which I suppose without further people adding information is entirely possible
as said: ill have a bit of a play around with it again time permitting and see if it falls over and report back if It does anything strange

@akarl10  kde did indeed have some issues at the same time. I assumed it was because it was trying to look at my home directory and was hanging in the same way. also part of my testing was. rdpi'ing in with a win10 box and not getting the issue then straight away rdp'ing in with win11 box and the issue was there. hence the narrowing of the issue to the win11 box which had recently been updated to 22h2 then once turning off the udp stuff it worked without issue.
during the testing to the best of my knowledge i didnt change the clipboard. and even if i did that wouldnt account for it disappearing and then reappearing.
so whilst i dont think its clipboard contents directly causing the issue maybe whatever was happening might have caused the same issue somehow. perhaps it garbled what was supposed to be clipboard contents?

the reason why I mentioned the clipboard thing is because afaik chansrv is single threaded and if it blocks the whole filesystem is blocked. Anything that does interacts with thinclient_drive (even a stat that is done by ls $HOME) will be blocked too until chansrv recovers or gets killed.
For me something was able to block chansrv if the xrdp side clipboard contained a file reference to a previous rdp session that was not there any more. Don't know how that can happen, but it happened to me. The clipboard itself however is only a virtual directory in thinclient_drives. If something different is able to block "inside" thinclient_drive you will get the same result.
For me it was plasmashell (clipboard) accessing a "mstsc side" file in the clipboard. That blocked chansrv that in turn blocked the whole thing.

@akarl10 - you're right in that chansrv is single-threaded, and it is (or was) possible to get the clipboard and the file redirector wrapped around each other. See #1563.
I did some work on this for #2032 which was merged for xrdp v0.9.18. The version of xrdp packaged for 22.04 LTS is v0.9.17, so what you suggest is entirely possible. Or we may have hit another bug in this area.
As regards my somewhat embarrassing inability to run Windows 11; My VM server is powered by a 4th generation Intel Xeon, which is a bit long in the tooth now. After a bit of experimentation however, I think the problem I've got with Windows 11 is QEMU-related, so when I get a bit of time to upgrade QEMU/KVM I'm hopeful I can have another go at reproducing this.
On the meantime @piez0r, have a look at #1563 and see if it fits your problem. Given the way that UDP channels are negotiated, I think this is more likely than a UDP issue.

I've finally got 22H2 working on my rig, and again, I can't reproduce the problem as reported.
However, I'm able to reproduce #1563 as follows:-

Log in to 22H2
Open Windows Explorer and browse to a writeable directory. This is important and explained below.
Run mstsc.exe. On the 'local resources' tab make sure local printers aren't shared and drives are. Connect to Ubuntu 22.04 and log in.
Browse the thinclient_drives share. All should be OK.
Somewhere under ~/thinclient_drives/C:\ select a file and copy it.

On my system this breaks chansrv. Of the two threads within chansrv, one is stuck within the FUSE code:-

$ ps -ef | grep chansrv
testuser    9352    9229  0 11:05 ?        00:00:00 /usr/local/sbin/xrdp-chansrv
$ ls /proc/9352/task
9352  9423
$ sudo cat /proc/9352/task/9352/stack
[<0>] do_select+0x56c/0x850
[<0>] core_sys_select+0x1dd/0x420
[<0>] do_pselect.constprop.0+0xca/0x170
[<0>] __x64_sys_pselect6+0x68/0x90
[<0>] do_syscall_64+0x5c/0xc0
[<0>] entry_SYSCALL_64_after_hwframe+0x61/0xcb
$ sudo cat /proc/9352/task/9423/stack
[<0>] request_wait_answer+0x104/0x210
[<0>] fuse_simple_request+0x1b5/0x360
[<0>] fuse_dentry_revalidate+0x17b/0x3c0
[<0>] lookup_fast+0xe0/0x160
[<0>] walk_component+0x43/0x1c0
[<0>] link_path_walk.part.0.constprop.0+0x23f/0x3a0
[<0>] path_lookupat+0x3e/0x1c0
[<0>] filename_lookup+0xcf/0x1d0
[<0>] user_path_at_empty+0x3f/0x60
[<0>] vfs_statx+0x7a/0x130
[<0>] __do_sys_newfstatat+0x36/0x70
[<0>] __x64_sys_newfstatat+0x1c/0x30
[<0>] do_syscall_64+0x5c/0xc0
[<0>] entry_SYSCALL_64_after_hwframe+0x61/0xcb

A program must be running on the windows side which is interested in file announcements on the clipboard. This is why I ran Windows Explorer. The sequence of operations is like this:-

File is copied on Ubuntu side.
chansrv picks up file announcement and sends a Format List PDU to the RDP client containing the code 0xc0bc.
RDP client announces that a file is available on the clipboard
Windows Explorer asks for file details
RDP client sends a Format Data Request PDU to chansrv containing the code 0xc0bc.
chansrv deadlocks as described in 1563

Because this sequence is dependent on a Windows client, it won't happen all the time. I suspect this is why we don't see it more often.
Unless anyone has anything else to add, I'll close this in a while I think.


[iOS] Crash during integration tests, 'package:flutter/src/widgets/binding.dart': Failed assertion: 'sendFramesToEngine': is not true.

Hello, I'm back with my integration test crash (https://github.com/flutter/flutter/issues/86778) as I can't comment on it.
══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞══════════════════════
The following assertion was thrown while executing callbacks for
FrameTiming:
'package:flutter/src/widgets/binding.dart': Failed assertion:
line 858 pos 16: 'sendFramesToEngine': is not true.

Either the assertion indicates an error in the framework itself,
or we should provide substantially more information in this error
message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on
GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack:
#2      WidgetsBinding.drawFrame.<anonymous closure> (package:flutter/src/widgets/binding.dart:858:16)
#3      SchedulerBinding._executeTimingsCallbacks (package:flutter/src/scheduler/binding.dart:289:19)
#7      _invoke1 (dart:ui/hooks.dart:182:10)
#8      PlatformDispatcher._reportTimings (dart:ui/platform_dispatcher.dart:441:5)
#9      _reportTimings (dart:ui/hooks.dart:120:31)
(elided 5 frames from class _AssertionError and dart:async)

The TimingsCallback that gets executed was:
  Closure: (List<FrameTiming>) => void

I have test on master, beta and stable and none of the channel works, still getting this crash.
I have tried to comment the line package:flutter/src/widgets/binding.dart:858:16 and then everything is working. But I don't know what this assert is preventing and how I can change so it is good. I'm able to reproduce this on my mac and on our CI.
This is what look like one of my tests:

minimal code sample
import 'package:flare_flutter/flare_testing.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:kiwi_mobile/auth/auth_manager.dart';
import 'package:kiwi_mobile/common/preferences/shared_preferences_provider.dart';
import 'package:kiwi_mobile/l10n/common_localizations.dart';
import 'package:kiwi_mobile/l10n/error_localizations.dart';
import 'package:kiwi_mobile/main-testing.dart' as app;

import 'utils.dart';

Future<void> _moveToLoginScreen(WidgetTester tester) async {

  await tester.tap(find.byWidgetPredicate((widget) => widget is IconButton && (widget.icon as Icon).icon == Icons.menu));
  await tester.pumpAndSettle();
  await tester.pumpAndSettle();
  final ctaFinder = find.byKey(Key('ctaButton'));
  expect(
    ctaFinder,
    findsOneWidget,
    reason: 'can\'t find CTA button acting as login button',
  );
  await tester.tap(ctaFinder);
  await tester.pumpAndSettle();
  expect(
    find.byKey(Key('loginScreen')),
    findsOneWidget,
    reason: 'can\'t find login screen',
  );
}

void main() {
  final binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized() as IntegrationTestWidgetsFlutterBinding;
  binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;

  FlareTesting.setup();
  final commonLocalizations = CommonLocalizations();
  final errorLocalizations = ErrorLocalizations();

  setUp(() async {
    await app.reset();
    await SharedPreferencesProvider.instance.deleteSecure(AuthManager.keyToken);
  });

  testWidgets('Login phone number error', (WidgetTester tester) async {
    await moveToCashRegister(tester);
    await _moveToLoginScreen(tester);

    await tester.enterText(find.byKey(Key('phoneNumberField')), '555');
    await tester.pumpAndSettle();

    // Verify error on screen
    expect(
      find.text(errorLocalizations.phoneIncorrect),
      findsOneWidget,
    );
  });
}

Any idea how I can track the root cause of this?

I use this command to run my test:
flutter drive --driver=test_driver/integration_test.dart --flavor=kiwi -d 87DA534B-2FAF-457B-9F52-37DA7B9EE214 integration_test/login_test.dart

Which give this output:
Running "flutter pub get" in kiwi_mobile2...                     1 945ms
The plugin `sms_autofill` uses a deprecated version of the Android embedding.
To avoid unexpected runtime failures, or future build failures, try to see if this plugin supports the Android V2 embedding. Otherwise, consider
removing it since a future release of Flutter will remove these deprecated APIs.
If you are plugin author, take a look at the docs for migrating the plugin to the V2 embedding: https://flutter.dev/go/android-plugin-migration.
Running Xcode build...
 └─Compiling, linking and signing...                        10,1s
Xcode build done.                                           59,7s
VMServiceFlutterDriver: Connecting to Flutter application at http://<IP_ADDRESS>:51683/nixnhsOeHHo=/
VMServiceFlutterDriver: Isolate found with number:<PHONE_NUMBER>517875
VMServiceFlutterDriver: Isolate is paused at start.
VMServiceFlutterDriver: Attempting to resume isolate
flutter: 00:00 +0: Login phone number error
VMServiceFlutterDriver: Connected to Flutter application.
flutter: ══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞═════════════════════════════════════════════════════════
flutter: The following assertion was thrown while executing callbacks for FrameTiming:
flutter: 'package:flutter/src/widgets/binding.dart': Failed assertion: line 860 pos 16: 'sendFramesToEngine':
flutter: is not true.
flutter:
flutter: Either the assertion indicates an error in the framework itself, or we should provide substantially
flutter: more information in this error message to help you determine and fix the underlying cause.
flutter: In either case, please report this assertion by filing a bug on GitHub:
flutter:   https://github.com/flutter/flutter/issues/new?template=2_bug.md
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #2      WidgetsBinding.drawFrame.<anonymous closure> (package:flutter/src/widgets/binding.dart:860:16)
flutter: #3      SchedulerBinding._executeTimingsCallbacks (package:flutter/src/scheduler/binding.dart:286:19)
flutter: #7      _invoke1 (dart:ui/hooks.dart:185:10)
flutter: #8      PlatformDispatcher._reportTimings (dart:ui/platform_dispatcher.dart:455:5)
flutter: #9      _reportTimings (dart:ui/hooks.dart:123:31)
flutter: (elided 5 frames from class _AssertionError and dart:async)
flutter:
flutter: The TimingsCallback that gets executed was:
flutter:   Closure: (List<FrameTiming>) => void
flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════
flutter: 00:06 +0: Login phone number error [E]
flutter:   Test failed. See exception logs above.
  The test description was: Login phone number error
flutter:
flutter: Consider enabling the flag chain-stack-traces to receive more detailed exceptions.
For example, 'dart test --chain-stack-traces'.
flutter: 00:06 +0 -1: (tearDownAll)
flutter: Warning: integration_test plugin was not detected.

If you're running the tests with `flutter drive`, please make sure your tests
are in the `integration_test/` directory of your package and use
`flutter test $path_to_test` to run it instead.

If you're running the tests with Android instrumentation or XCTest, this means
that you are not capturing test results properly! See the following link for
how to set up the integration_test plugin:

https://flutter.dev/docs/testing/integration-tests#testing-on-firebase-test-lab
flutter: 00:06 +1 -1: Some tests failed.
Failure Details:
Failure in method: Login phone number error
══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞══════════════════════
The following assertion was thrown while executing callbacks for
FrameTiming:
'package:flutter/src/widgets/binding.dart': Failed assertion:
line 860 pos 16: 'sendFramesToEngine': is not true.

Either the assertion indicates an error in the framework itself,
or we should provide substantially more information in this error
message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on
GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack:
#2      WidgetsBinding.drawFrame.<anonymous closure> (package:flutter/src/widgets/binding.dart:860:16)
#3      SchedulerBinding._executeTimingsCallbacks (package:flutter/src/scheduler/binding.dart:286:19)
#7      _invoke1 (dart:ui/hooks.dart:185:10)
#8      PlatformDispatcher._reportTimings (dart:ui/platform_dispatcher.dart:455:5)
#9      _reportTimings (dart:ui/hooks.dart:123:31)
(elided 5 frames from class _AssertionError and dart:async)

The TimingsCallback that gets executed was:
  Closure: (List<FrameTiming>) => void
═════════════════════════════════════════════════════════════════

end of failure 1

Like I said if I comment the assert that is failing then the test pass.
There is also one thing I found weird in the log: Warning: integration_test plugin was not detected
My tests are under integration_test but I can't run them with flutter test $path_to_test because I need to pass the flavor and that command doesn't support flavor parameter (Could not find an option named "flavor").

Hi @jaumard
Is there a way you can reduce the test case for the issue to be reproducible?
Your test class looks like from a production app and your test command is using flavor. Does the issue need third-party packages and flavor?
Can you please provide a minimal complete reproducible code sample in a repository
Thank you

Not sure how to proceed for that. Our app is quite big, of course I can't reproduce with an empty test or under a brand new project. So I wondering what this crash is and how it can occurred to guess a bit what could cause this. Because the assert doesn't have any description so it crash but I don't know why.
If I already knew what was wrong I would have mentioned it.

Hence is coming from the framework so adding framework label too
══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞══════════════════════
The following assertion was thrown while executing callbacks for
FrameTiming:
'package:flutter/src/widgets/binding.dart': Failed assertion:
line 858 pos 16: 'sendFramesToEngine': is not true.

Hey @TahaTesser, good news, after a long search I narrow down the problem!
Here is the example projet to reproduce the issue:
bug_integration_test.zip
Didn't test on android but flutter test -d 87DA534B-2FAF-457B-9F52-37DA7B9EE214 integration_test/bug_test.dart on iOS definitely produce the Failed assertion: line 860 pos 16: 'sendFramesToEngine': is not true.
Short story is that I'm loading translations from assets inside the LocalizationsDelegate.load by doing
await rootBundle.loadString('assets/arb/common_en.arb');

That's what cause the integration test to crash.
But unfortunately I didn't find any workaround so far to fix this

Hi @jaumard
Running on the latest stable, only test fails, no crash with flutter test -d A9530DDA-3DB6-4737-BD67-26506428926F integration_test/bug_test.dart
tahatesser@Tahas-MacBook-Pro bug_integration_test % fs test -d A9530DDA-3DB6-4737-BD67-26506428926F integration_test/bug_test.dart
00:07 +0: ...rojects/bug_integration_test/integration_test/bug_test.dart     R00:08 +0: ...rojects/bug_integration_test/integration_test/bug_test.d 1,329ms
00:33 +0: ...rojects/bug_integration_test/integration_test/bug_test.dart
00:42 +0: ...rojects/bug_integration_test/integration_test/bug_test.d    9.4s
Xcode build done.                                           34.1s
00:49 +0: Login phone number error
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure object was thrown running a test:
  Expected: exactly one matching node in the widget tree
  Actual: _TextFinder:<zero widgets with text "test2" (ignoring offstage widgets)>
   Which: means none were found but one was expected

When the exception was thrown, this was the stack:
#4      main.<anonymous closure> (file:///Users/tahatesser/StudioProjects/bug_integration_test/integration_test/bug_test.dart:14:5)
<asynchronous suspension>
<asynchronous suspension>
(elided one frame from package:stack_trace)

This was caught by the test expectation on the following line:
  file:///Users/tahatesser/StudioProjects/bug_integration_test/integration_test/bug_test.dart line 14
The test description was:
  Login phone number error
════════════════════════════════════════════════════════════════════════════════════════════════════
00:49 +0 -1: Login phone number error [E]
  Test failed. See exception logs above.
  The test description was: Login phone number error

00:49 +0 -1: Some tests failed.
tahatesser@Tahas-MacBook-Pro bug_integration_test %

Since you're executing flutter test, the test only actually run on the simulator,
When trying flutter drive using flutter drive --driver=integration_test/bug_test.dart  -d A9530DDA-3DB6-4737-BD67-26506428926F --target=integration_test/bug_test.dart. i am getting unrelated issue
tahatesser@Tahas-MacBook-Pro bug_integration_test % fm drive --driver=integration_test/bug_test.dart  -d A9530DDA-3DB6-4737-BD67-26506428926F --target=integration_test/bug_test.dart
Running "flutter pub get" in bug_integration_test...             1,468ms
Running pod install...                                           1,408ms
Running Xcode build...
 └─Compiling, linking and signing...                        12.4s
Xcode build done.                                           45.5s
../../Code/flutter_master/packages/integration_test/lib/integration_test.dart:7:8: Error: Not found: 'dart:ui'
import 'dart:ui';
       ^
../../Code/flutter_master/packages/flutter_test/lib/src/_goldens_io.dart:9:8: Error: Not found: 'dart:ui'
import 'dart:ui';
       ^
../../Code/flutter_master/packages/flutter_test/lib/src/accessibility.dart:8:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
../../Code/flutter_master/packages/flutter_test/lib/src/animation_sheet.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
../../Code/flutter_master/packages/flutter_test/lib/src/binding.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
../../Code/flutter_master/packages/flutter_test/lib/src/event_simulation.dart:7:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
../../Code/flutter_master/packages/flutter_test/lib/src/frame_timing_summarizer.dart:5:8: Error: Not found: 'dart:ui'
import 'dart:ui';
       ^
../../Code/flutter_master/packages/flutter_test/lib/src/goldens.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui';
       ^
../../Code/flutter_master/packages/flutter_test/lib/src/image.dart:7:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
../../Code/flutter_master/packages/flutter_test/lib/src/matchers.dart:7:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui;
       ^
Failed to stop app
tahatesser@Tahas-MacBook-Pro bug_integration_test %

flutter doctor -v
[✓] Flutter (Channel stable, 2.5.0, on macOS 12.0 21A5506j darwin-x64, locale en-GB)
    • Flutter version 2.5.0 at /Users/tahatesser/Code/flutter_stable
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4cc385b4b8 (32 hours ago), 2021-09-07 23:01:49 -0700
    • Engine revision f0826da7ef
    • Dart version 2.14.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/tahatesser/Code/SDK
    • Platform android-31, build-tools 30.0.3
    • ANDROID_HOME = /Users/tahatesser/Code/SDK
    • Java binary at: /Users/tahatesser/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7621141/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode-beta.app/Contents/Developer
    • Xcode 13.0, Build version 13A5212g
    • CocoaPods version 1.10.2

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

[✓] Android Studio (version 2020.3)
    • Android Studio at /Users/tahatesser/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7621141/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] Android Studio (version 2020.3)
    • Android Studio at /Users/tahatesser/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7621141/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] Android Studio (version 2020.3)
    • Android Studio at /Users/tahatesser/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7583922/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

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

[✓] Connected device (3 available)
    • iPhone 11 Pro (mobile) • A9530DDA-3DB6-4737-BD67-26506428926F • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
    • macOS (desktop)        • macos                                • darwin-x64     • macOS 12.0 21A5506j darwin-x64
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 93.0.4577.63

• No issues found!

I have made a small video here https://youtu.be/fDDo2M1ijuk I'm also using the last flutter stable  Flutter (Channel stable, 2.5.0, on macOS 11.5.2 20G95 darwin-x64, locale fr-FR)
On my project I use flutter drive because I have flavor, but here I use flutter test and still reproduce

@TahaTesser I think your command is wrong, for the drive it should be:
flutter drive --driver= test_driver/integration_test.dart -d A9530DDA-3DB6-4737-BD67-26506428926F integration_test/bug_test.dart

I tested on Android emulator and can't reproduce, so only on iOS on my side

full flutter doctor -v
[✓] Flutter (Channel stable, 2.5.0, on macOS 11.5.2 20G95 darwin-x64, locale fr-FR)
    • Flutter version 2.5.0 at /Users/jaumard/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 4cc385b4b8 (32 hours ago), 2021-09-07 23:01:49 -0700
    • Engine revision f0826da7ef
    • Dart version 2.14.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/jaumard/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.1

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

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 59.0.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (3 available)
    • iPhone 8 (mobile) • 87DA534B-2FAF-457B-9F52-37DA7B9EE214 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)   • macos                                • darwin-x64     • macOS 11.5.2 20G95 darwin-x64
    • Chrome (web)      • chrome                               • web-javascript • Google Chrome 93.0.4577.63

• No issues found!

Hi @jaumard
Sorry for the delay, I was on vacation.
I just tried your command on your project, I get the following the error
tahatesser@Tahas-MacBook-Pro bug_integration_test % fs drive --driver=test_driver/integration_test.dart -d  00008020-000255113EE8402 integration_test/bug_test.dart

Running "flutter pub get" in bug_integration_test...               905ms
Test file not found: test_driver/integration_test.dart
tahatesser@Tahas-MacBook-Pro bug_integration_test %

No problem hope you enjoy it!
On the project I shared I only use the flutter test command as it didn't have any flavor. The flutter driver only on my project sorry I wasn't clear about that.

Hi @jaumard
Thanks, I can reproduce the issue on the ios simulator, doesn't reproduce on Andrpod. Here are the clear steps

Get the project with assets from https://github.com/flutter/flutter/issues/89651#issuecomment-915941957
Add test_driver/integration_test.dart with the following

import 'package:integration_test/integration_test_driver.dart';

Future<void> main() => integrationDriver();

Execute flutter drive --driver=test_driver/integration_test.dart -d  <simulator_id> integration_test/bug_test.dart with simulator launched

logs
tahatesser@Tahas-MacBook-Pro bug_integration_test % fm drive --driver=test_driver/integration_test.dart -d A9530DDA-3DB6-4737-BD67-26506428926F integration_test/bug_test.dart
Running "flutter pub get" in bug_integration_test...             2,204ms
Running pod install...                                           2,387ms
Running Xcode build...
 └─Compiling, linking and signing...                         6.1s
Xcode build done.                                           38.2s
VMServiceFlutterDriver: Connecting to Flutter application at http://<IP_ADDRESS>:58064/1aYKUDkf1jU=/
VMServiceFlutterDriver: Isolate found with number:<PHONE_NUMBER>815407
VMServiceFlutterDriver: Isolate is paused at start.
VMServiceFlutterDriver: Attempting to resume isolate
flutter: 00:00 +0: Login phone number error
VMServiceFlutterDriver: Connected to Flutter application.
flutter: ══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK
╞═════════════════════════════════════════════════════════
flutter: The following assertion was thrown while executing callbacks for FrameTiming:
flutter: 'package:flutter/src/widgets/binding.dart': Failed assertion: line 860 pos 16:
'sendFramesToEngine':
flutter: is not true.
flutter:
flutter: Either the assertion indicates an error in the framework itself, or we should provide
substantially
flutter: more information in this error message to help you determine and fix the underlying cause.
flutter: In either case, please report this assertion by filing a bug on GitHub:
flutter:   https://github.com/flutter/flutter/issues/new?template=2_bug.md
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #2      WidgetsBinding.drawFrame.<anonymous closure>
(package:flutter/src/widgets/binding.dart:860:16)
flutter: #3      SchedulerBinding._executeTimingsCallbacks
(package:flutter/src/scheduler/binding.dart:286:19)
flutter: #7      _invoke1 (dart:ui/hooks.dart:185:10)
flutter: #8      PlatformDispatcher._reportTimings (dart:ui/platform_dispatcher.dart:455:5)
flutter: #9      _reportTimings (dart:ui/hooks.dart:123:31)
flutter: (elided 5 frames from class _AssertionError and dart:async)
flutter:
flutter: The TimingsCallback that gets executed was:
flutter:   Closure: (List<FrameTiming>) => void
flutter:
════════════════════════════════════════════════════════════════════════════════════════════════════
flutter: 00:01 +0: Login phone number error [E]
flutter:   Test failed. See exception logs above.
  The test description was: Login phone number error
flutter:
flutter: Consider enabling the flag chain-stack-traces to receive more detailed exceptions.
For example, 'dart test --chain-stack-traces'.
flutter: 00:01 +0 -1: (tearDownAll)
flutter: Warning: integration_test plugin was not detected.

If you're running the tests with `flutter drive`, please make sure your tests
are in the `integration_test/` directory of your package and use
`flutter test $path_to_test` to run it instead.

If you're running the tests with Android instrumentation or XCTest, this means
that you are not capturing test results properly! See the following link for
how to set up the integration_test plugin:

https://flutter.dev/docs/testing/integration-tests#testing-on-firebase-test-lab
flutter: 00:01 +1 -1: Some tests failed.
Failure Details:
Failure in method: Login phone number error
══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞══════════════════════
The following assertion was thrown while executing callbacks for
FrameTiming:
'package:flutter/src/widgets/binding.dart': Failed assertion:
line 860 pos 16: 'sendFramesToEngine': is not true.

Either the assertion indicates an error in the framework itself,
or we should provide substantially more information in this error
message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on
GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack:
#2      WidgetsBinding.drawFrame.<anonymous closure> (package:flutter/src/widgets/binding.dart:860:16)
#3      SchedulerBinding._executeTimingsCallbacks (package:flutter/src/scheduler/binding.dart:286:19)
#7      _invoke1 (dart:ui/hooks.dart:185:10)
#8      PlatformDispatcher._reportTimings (dart:ui/platform_dispatcher.dart:455:5)
#9      _reportTimings (dart:ui/hooks.dart:123:31)
(elided 5 frames from class _AssertionError and dart:async)

The TimingsCallback that gets executed was:
  Closure: (List<FrameTiming>) => void
═════════════════════════════════════════════════════════════════

end of failure 1

Failed to stop app
tahatesser@Tahas-MacBook-Pro bug_integration_test %

stable
master

❗
❗

Check flutter doctor -v outputs for each channel below

flutter doctor -v
[✓] Flutter (Channel stable, 2.5.1, on macOS 12.0 21A5506j darwin-x64, locale en-GB)
    • Flutter version 2.5.1 at /Users/tahatesser/Code/flutter_stable
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ffb2ecea52 (3 days ago), 2021-09-17 15:26:33 -0400
    • Engine revision b3af521a05
    • Dart version 2.14.2

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/tahatesser/Code/SDK
    • Platform android-31, build-tools 30.0.3
    • ANDROID_HOME = /Users/tahatesser/Code/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode-beta.app/Contents/Developer
    • Xcode 13.0, Build version 13A5212g
    • CocoaPods version 1.10.2

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

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

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

[✓] Connected device (4 available)
    • Taha’s iPad (mobile)   • 00008020-000255113EE8402E            • ios            • iOS 15.0 19A344
    • iPhone 11 Pro (mobile) • A9530DDA-3DB6-4737-BD67-26506428926F • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
    • macOS (desktop)        • macos                                • darwin-x64     • macOS 12.0 21A5506j darwin-x64
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 93.0.4577.82

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 2.6.0-6.0.pre.147, on macOS 12.0 21A5506j darwin-x64, locale en-GB)
    • Flutter version 2.6.0-6.0.pre.147 at /Users/tahatesser/Code/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 83dfb2237a (2 days ago), 2021-09-17 23:48:04 -0400
    • Engine revision 31792e0340
    • Dart version 2.15.0 (build 2.15.0-120.0.dev)

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/tahatesser/Code/SDK
    • Platform android-31, build-tools 30.0.3
    • ANDROID_HOME = /Users/tahatesser/Code/SDK
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
    • Xcode at /Applications/Xcode-beta.app/Contents/Developer
    • CocoaPods version 1.10.2

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

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

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

[✓] Connected device (4 available)
    • Taha’s iPad (mobile)   • 00008020-000255113EE8402E            • ios            • iOS 15.0 19A344
    • iPhone 11 Pro (mobile) • A9530DDA-3DB6-4737-BD67-26506428926F • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
    • macOS (desktop)        • macos                                • darwin-x64     • macOS 12.0 21A5506j darwin-x64
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 93.0.4577.82

! Doctor found issues in 1 category.

✅: No Issue ❗: Issue reproduced
Thanks for filing the issue

@TahaTesser - I am also facing the same issue. Could you please share an update on this? Or do we have any workaround to execute our integration tests on iOS?

I was also having this issue. Android was passing, IOS was failing.
I was able to get the tests to run and pass on IOS by updating my code from:
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
to:
final IntegrationTestWidgetsFlutterBinding binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized();   binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;

I was also having this issue. Android was passing, IOS was failing.
I was able to get the tests to run and pass on IOS by updating my code from:
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
to:
final IntegrationTestWidgetsFlutterBinding binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized(); binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;

Still getting issues.

Interesting. What happens if you add a Duration of 1 second in a pumpAndSettle directly after your pumpWidget? (or after app.main() if using that)
I don't need it to stop the error, but I added one to let the UI fully load before I start tapping/asserting things. The extra time could be beneficial in your case as well.

My integration test looks like this:
  final IntegrationTestWidgetsFlutterBinding binding =
      IntegrationTestWidgetsFlutterBinding();
  binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
  IntegrationTestWidgetsFlutterBinding.ensureInitialized();

  testWidgets("screenshots", (WidgetTester tester) async {
    await setup();
    await tester.pumpWidget(MyApp());
    await tester.pumpAndSettle(Duration(seconds: 10));
  });

So it tries many of the suggested fixes above, but it still fails with the same error.
I was able to make the issue disappear by not loading anything with rootBundle in my startup.

I needed to write it as follows:
var binding = TestWidgetsFlutterBinding.ensureInitialized();
if (binding is LiveTestWidgetsFlutterBinding) {
  binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
}

I experienced the same problem and I fixed it by passing a longer duration directly to pumpWidget.
await pumpWidget(MyApp(), const Duration(seconds: 2));

When I removed this line from the beginning of the main function everything worked perfectly!
IntegrationTestWidgetsFlutterBinding.ensureInitialized();

I was also having this issue. Android was passing, IOS was failing.
I was able to get the tests to run and pass on IOS by updating my code from:
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
to:
final IntegrationTestWidgetsFlutterBinding binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized(); binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;

This one worked for me

I our case we had to add a delay before app.main()
void main() {
  IntegrationTestWidgetsFlutterBinding.ensureInitialized().framePolicy =
      LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;

  testWidgets('verify text', (tester) async {
    await Future.delayed(const Duration(seconds: 2));  <-----
    await app.main();
    await tester.pumpAndSettle();

    expect(
      find.byWidgetPredicate(
        (widget) =>
            widget is RichText &&
            widget.text.toPlainText() == 'Text to match'),
      ),
      findsOneWidget,
    );
  });
}


Make table columns on the right side

Hi @Evertras, first thanks for this great library
Can you make an option to have the table column on the right side?

Hey there, glad you like it!
Could you elaborate what you mean?  As in, have the text aligned to the right?  Or do you mean the selectable column that's added?

Hey there, glad you like it!
Could you elaborate what you mean? As in, have the text aligned to the right? Or do you mean the selectable column that's added?

Hi, thanks for reply
Yes I mean right align text

If you want to style an individual column, you can do this by applying myCol.WithStyle(lipgloss.NewStyle()...).  Example here, just use .Align to change the alignment.  There is not a way to apply a single global base style, which is something I'm happy to add to help this issue as that seems useful for various reasons anyway.
I'm a little confused though, as the default is to align things to the right.  Could you show me a screenshot or a paste of the alignment you're seeing?

If you want to style an individual column, you can do this by applying myCol.WithStyle(lipgloss.NewStyle().Align(lipgloss.Right)). Example here, just use .Align to change the alignment. You can also do this on a per-row or per-cell basis. There is not a way to apply a single global base style, which is something I'm happy to add to help this issue as that seems useful for various reasons anyway.
I'm a little confused though, as the default is to align things to the right. Could you show me a screenshot or a paste of the alignment you're seeing?

Ok, thanks for your help, keep your awesome work


EventViewer as part of ctapipe-process tool

This adds a QT based GUI EventViewer that can be started and used to browse through event data using ctapipe-process -i <file> --viewer.
Add the moment, I only added rudimentary displays of the subarray and of the dl1 intensity image, mainly to test that the general approach works and to gather some early feedback.
I think it should have:

[ ] Reconstruction view like @kosack is working on here: #2539
[ ] Waveform view when clicking on a pixel in the image viewers
[ ] peak_time image
[ ] table views for the container data

To launch, on this branch make sure to have pyside6 installed: mamba install pyside6 and then run:
ctapipe-process --viewer -i dataset://gamma_prod5.simtel.zst

Features I would want (some are already mentioned above):

DL1/DL0:  on DL1 charge/peak_time display: if DL0 or below exists, ability to plot waveforms on click (perhaps shift-click to plot multiple waveforms on the same plot). Ideally with charge extraction windows overlaid  as plt.axvspan if there is a charge extractor that uses windows.
DL1: mark clean pixels (or option to show only cleaned pixels)
DL1: option to show Muon fit overlays (e.g. ring and width) for debugging muon analysis
DL2: in addition to the ellipse-style ground and sky intersection plots,  a summed image plot, probably using resampling to show all cameras the same plot (I have a nice script for that, will add it to a gist or link it here) with optional overlay of Hillas ellipses.  Maybe also the ground plot with images, though that can get very large and slow

Another question that came up for me when I was making the Reco display: should we stick with matplotlib for this type of interactive plot, or use Bokeh?  The advantage of Bokeh is that it is much faster at interactive drawing, particularly if you want to switch between many CameraDisplays.  The disadvantage is is doesn't produce nice PDF output for papers/presentations (it only does PNGs, which are not quite as nice and scalable).

The advantage of Bokeh is that it is much faster at interactive drawing,

Is that true? I also notice quite a delay when updating the browser based figures / overlays / pixel values using the bokeh viewer.
After creating the matplotlib objects, drawing them is quite fast (the camera viewer now creates one display per camera type and just updates the image when telescope / event are changed).

Is that true? I also notice quite a delay when updating the browser based figures / overlays / pixel values using the bokeh viewer.

I think that's more of an issue with how it's implemented in ctapipe: I was able to get very fast camera displays going with essentially realtime image changes, even re-creating all pixel glyphs on each frame ( e.g. with an interactive slider to select the cleaning threshold), but that wasn't using exactly the ctapipe implementation. Mostly it's just that Bokeh is designed for interactive graphics, while matplotlib is more designed towards nice publication-quality rendering.

After creating the matplotlib objects, drawing them is quite fast (the camera viewer now creates one display per camera type and just updates the image when telescope / event are changed).

Yes, it may be fine if that is how it is implemented, and I do generally prefer the nice output of matplotlib. The CameraDisplays were designed to be fast at updating, but not fast to create. I can get about 20 frames per second, though, which isn't bad.  With bokeh, it's much more, but perhaps it's not worth the effort.


changes to add start_time and end_time filters to getAlertsRequest

Issue #, if available:
Description of changes:
changes to add start_time and end_time filters to getAlertsRequest
CheckList:

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

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

can we add integ test verifying the behaviour


Intermittent, but more repeatable, hang sending/receiving a large buffer over TCP

The symptoms of this issue are similar to those described in #493 .  However, the reproducer on that issue has been fixed; this one still reproduces as of build 14376.
Setting up this reproducer is unfortunately a little bit involved...  Hopefully manageable, though.
Initial Setup -- run the following commands in WSL:
sudo apt-get install build-essential git cmake libboost-all-dev
git clone https://github.com/eidheim/Simple-Web-Server.git
cd Simple-Web-Server
cmake .
make -j4
dd if=/dev/zero of=web/big.dat bs=1048576 count=300

Note that this setup relies on code from  this github repository.  I have no affiliation with the repository; I found it while looking around online for  pre-existing code that did a specific set of things.
Steps to reproduce:

Open up two WSL console windows
In one, do cd Simple-Web-Server ; ./http_examples.  Give the server process a couple seconds to start up.
In the other, do curl http://localhost:8080/big.dat >/dev/null

Expected / what happens on real-Ubuntu:

curl is successfully able to download the big file

Actual / what happens in WSL:

curl occasionally finishes the download, but usually hangs partway through

Possibly of note:  When I tried the same steps except using curl.exe in a Windows console, I also experienced a hang.  However, it was much more intermittent; I had to run the command maybe half a dozen times before I experienced the hang.

strace output from when the download is going successfully:
./http_example:
...
[pid   238] epoll_wait(4, {}, 128, 0)   = 0
[pid   238] read(13, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 131072) = 131072
[pid   238] sendmsg(12, {msg_name(0)=NULL, msg_iov(1)=[{"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 65536}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 65536
[pid   238] epoll_wait(4, {}, 128, 0)   = 0
[pid   238] sendmsg(12, {msg_name(0)=NULL, msg_iov(1)=[{"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 65536}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 65536
[pid   238] epoll_wait(4, {}, 128, 0)   = 0
[pid   238] read(13, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 131072) = 131072
[pid   238] sendmsg(12, {msg_name(0)=NULL, msg_iov(1)=[{"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 65536}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 65536
[pid   238] epoll_wait(4, {}, 128, 0)   = 0
[pid   238] sendmsg(12, {msg_name(0)=NULL, msg_iov(1)=[{"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 65536}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 65536
...

curl:
...
clock_gettime(CLOCK_MONOTONIC, {2137, 771882000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2137, 772059000}) = 0
poll([{fd=3, events=POLLIN}], 1, 1000)  = 1 ([{fd=3, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {2137, 781795000}) = 0
poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 16384, 0, NULL, NULL) = 16384
write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192
write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192
clock_gettime(CLOCK_MONOTONIC, {2137, 786292000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2137, 786519000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2137, 786871000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2137, 787168000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2137, 787430000}) = 0
poll([{fd=3, events=POLLIN}], 1, 1000)  = 1 ([{fd=3, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {2137, 787932000}) = 0
poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 16384, 0, NULL, NULL) = 16384
write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192
write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192
clock_gettime(CLOCK_MONOTONIC, {2137, 788674000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2137, 788805000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2137, 788936000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2137, 789066000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2137, 789196000}) = 0
poll([{fd=3, events=POLLIN}], 1, 1000)  = 1 ([{fd=3, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {2137, 791811000}) = 0
poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 16384, 0, NULL, NULL) = 16384
write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192
write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192
clock_gettime(CLOCK_MONOTONIC, {2137, 792807000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2137, 793153000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2137, 793503000}) = 0
...

strace output from after the download has hung:
./http_example:
...
[pid   250] gettimeofday({1467430456, 874565}, NULL) = 0
[pid   250] gettimeofday({1467430456, 874565}, NULL) = 0
[pid   250] timerfd_settime(5, 0, {it_interval={0, 0}, it_value={289, 684622000}}, {it_interval={0, 0}, it_value={289, 688717000}}) = 0
[pid   250] epoll_wait(4, {{EPOLLIN, {u32=17995988, u64=17995988}}}, 128, -1) = 1
[pid   250] gettimeofday({1467430456, 875562}, NULL) = 0
[pid   250] gettimeofday({1467430456, 875562}, NULL) = 0
[pid   250] timerfd_settime(5, 0, {it_interval={0, 0}, it_value={289, 683625000}}, {it_interval={0, 0}, it_value={289, 684803000}}) = 0
[pid   250] epoll_wait(4, {{EPOLLIN, {u32=17995988, u64=17995988}}}, 128, -1) = 1
[pid   250] gettimeofday({1467430456, 876566}, NULL) = 0
[pid   250] gettimeofday({1467430456, 876566}, NULL) = 0
[pid   250] timerfd_settime(5, 0, {it_interval={0, 0}, it_value={289, 682621000}}, {it_interval={0, 0}, it_value={289, 683635000}}) = 0
[pid   250] epoll_wait(4, {{EPOLLIN, {u32=17995988, u64=17995988}}}, 128, -1) = 1
[pid   250] gettimeofday({1467430456, 876566}, NULL) = 0
[pid   250] gettimeofday({1467430456, 877562}, NULL) = 0
[pid   250] timerfd_settime(5, 0, {it_interval={0, 0}, it_value={289, 681625000}}, {it_interval={0, 0}, it_value={289, 682779000}}) = 0
[pid   250] epoll_wait(4, {{EPOLLIN, {u32=17995988, u64=17995988}}}, 128, -1) = 1
[pid   250] gettimeofday({1467430456, 877562}, NULL) = 0
[pid   250] gettimeofday({1467430456, 877562}, NULL) = 0
[pid   250] timerfd_settime(5, 0, {it_interval={0, 0}, it_value={289, 681625000}}, {it_interval={0, 0}, it_value={289, 682000000}}) = 0
[pid   250] epoll_wait(4, {{EPOLLIN, {u32=17995988, u64=17995988}}}, 128, -1) = 1
[pid   250] gettimeofday({1467430456, 878561}, NULL) = 0
[pid   250] gettimeofday({1467430456, 878561}, NULL) = 0
...

curl:
...
clock_gettime(CLOCK_MONOTONIC, {2495, 563635000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2495, 563801000}) = 0
poll([{fd=3, events=POLLIN}], 1, 1000)  = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {2496, 564601000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2496, 564758000}) = 0
poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {2496, 565142000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2496, 565279000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2496, 565450000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2496, 565579000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2496, 565709000}) = 0
poll([{fd=3, events=POLLIN}], 1, 1000)  = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {2497, 566371000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2497, 566510000}) = 0
poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {2497, 566797000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2497, 566928000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2497, 567054000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2497, 567203000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2497, 567338000}) = 0
poll([{fd=3, events=POLLIN}], 1, 1000)  = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {2498, 567866000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2498, 568004000}) = 0
poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {2498, 568290000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2498, 568419000}) = 0
clock_gettime(CLOCK_MONOTONIC, {2498, 568548000}) = 0
...

Note that ./http_example's strace output is spewing out much faster than I can read it, but curl is mostly idle and emits a bunch of syscalls about once per second.

Interestingly, if I just leave ./http_example to its own devices, after a few seconds its strace output starts spewing:
...
[pid   274] epoll_wait(4, {{EPOLLIN, {u32=20240596, u64=20240596}}}, 128, -1) = 1
[pid   274] timerfd_settime(5, 0, {it_interval={0, 0}, it_value={300, 0}}, {it_interval={0, 0}, it_value={299, 999661000}}) = 0
[pid   274] epoll_wait(4, {{EPOLLIN, {u32=20240596, u64=20240596}}}, 128, -1) = 1
[pid   274] timerfd_settime(5, 0, {it_interval={0, 0}, it_value={300, 0}}, {it_interval={0, 0}, it_value={299, 999709000}}) = 0
[pid   274] epoll_wait(4, {{EPOLLIN, {u32=20240596, u64=20240596}}}, 128, -1) = 1
[pid   274] timerfd_settime(5, 0, {it_interval={0, 0}, it_value={300, 0}}, {it_interval={0, 0}, it_value={299, 999684000}}) = 0
[pid   274] epoll_wait(4, {{EPOLLIN, {u32=20240596, u64=20240596}}}, 128, -1) = 1
[pid   274] timerfd_settime(5, 0, {it_interval={0, 0}, it_value={300, 0}}, {it_interval={0, 0}, it_value={299, 999614000}}) = 0
...

In contrast, on a real Ubuntu machine, its strace output looks like:
...
[pid 19646] write(1, "John Smith\n", 11John Smith
 <unfinished ...>
[pid 19647] epoll_wait(4,  <unfinished ...>
[pid 19646] <... write resumed> )       = 11
[pid 19647] <... epoll_wait resumed> {}, 128, 0) = 0
[pid 19646] futex(0x7f9fdfa929d0, FUTEX_WAIT, 19647, NULL <unfinished ...>
[pid 19647] getpeername(11, {sa_family=AF_INET, sin_port=htons(33924), sin_addr=inet_addr("<IP_ADDRESS>")}, [16]) = 0
[pid 19647] getpeername(11, {sa_family=AF_INET, sin_port=htons(33924), sin_addr=inet_addr("<IP_ADDRESS>")}, [16]) = 0
[pid 19647] timerfd_settime(5, 0, {it_interval={0, 0}, it_value={4, 999984000}}, {it_interval={140324628927456, 6151308}, it_value={140324500422152, 15922064}}) = 0
[pid 19647] recvmsg(11, 0x7f9fdfa90e90, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 19647] epoll_wait(4, {}, 128, 0)   = 0
[pid 19647] epoll_wait(4, {{EPOLLIN, {u32=15922404, u64=15922404}}}, 128, -1) = 1
[pid 19647] timerfd_settime(5, 0, {it_interval={0, 0}, it_value={300, 0}}, {it_interval={140324500408512,<PHONE_NUMBER>19232}, it_value={140324628927808, 6202077}}) = 0
[pid 19647] shutdown(11, SHUT_RDWR)     = 0
[pid 19647] epoll_ctl(4, EPOLL_CTL_DEL, 11, {0, {u32=0, u64=0}}) = 0
[pid 19647] close(11)                   = 0
[pid 19647] epoll_wait(4, {}, 128, 0)   = 0
[pid 19647] epoll_wait(4,

(it stops here; no further syscalls are performed until the server process receives an HTTP connection.)

For the record, all straces on the ./http_example process were performed as strace -ff ./http_example.  (It's mulitithreaded, but more-or-less only has one thread active at a time.)

Thanks @aseering for reporting this and the specific repro, really helpful! I will look into this one.

No problem @sunilmut !  Let me know if the reproducer is working for you, if you need anything else, etc.

@sunilmut -- just checking, did you ever have a chance to look into this?  It still affects me, and it sounds like it might be affecting others as well ( #575 ).
I know y'all are busy with the anniversary release, but I'd really appreciate it (and I suspect others would as well) if this were on your post-release ToDo list.

FYI -- this still happens in build 14955 and with Ubuntu 16.04.
Interestingly, while the download is hung, I observe high CPU utilization.  Also interestingly, unlike in #610 , this time the utilization is in Linux-space.  Specifically, the ./http_examples binary is using lots of CPU.  I believe that's not its intent; I believe it's at least trying to do efficient asynchronous I/O (though its implementation is rather complicated, thank you Boost :-) )

@sunilmut @benhillis -- sorry to keep bugging you on this ticket -- some questions:

Is it useful for me to post (on an ongoing basis) that the reproducer for this issue affects recent builds?  I don't want to spam y'all, but I do want to confirm that, among all the great fixes that you've posted so far for other issues, none of them has happened to address this one yet.
It sounds like you looked into this over the summer.  Do you have any pointers / suggestions for things that might lead to a workaround?  Any technical insights about what's going on?  (Even if it's not something we as users can do anything about; I'm just curious :-) )
Could you share anything about where this collection of issues is on your radar?  Do you have telemetry indicating that it's a frequent thing?  Is it just the folks who've reported issues like this on github?  (Order of a dozen such github reports so far; not all that many in the grand scheme of things.)

If it's just me and if it's a difficult fix, I'll focus on finding a workaround.  If it's lots of people and not such a hard fix, then I'll bounce at you folks and do what I can to help you fix it :-)

@aseering This is definitely something that we should look into and get resolved.  Sunil is our resident networking expert and I'll make sure he's aware that network hangs are still happening and reproducible.

Thanks @benhillis !  Let me know if you're having trouble reproducing this in-house; I'm happy to play around / post more details / etc.

@aseering Thanks, Adam for your persistence, which definitely keeps us on track. And, yes, I find it useful when people repost on an "old" issue that it is still reproducible on recent builds, because it "revives" the thread. I have opened a bug on our end to track this and will soon post my findings.

@aseering - My initial investigation is pointing me to #1025. When both, the writer (http_examples) and the reader (curl) are running on WSL (and on the same device), the writer is much faster than the reader. This causes the send buffer to fill up fast, which results in EAGAIN being returned. At that point, the writer relies on EPOLL to know when the socket is again writable. On WSL (because of #1025) the EPOLL is not being set correctly and is returning that the socket is writeable even when the send buffer is full. Trusting the return value from EPOLL, when the writer tries to write to the socket, it again sees EAGAIN and gets confused and gives up. When the writer is moved to a different device and on native Ubuntu, all works fine. The fix for #1025 is a bit involved and so I am not able to immediately confirm the above. Should have something more on this soon.

Not sure if this is related, but on my WSL host I'm using a simple Go HTTP server to serve files (over >1GB each); after a few megabyte, the connection seems to die.

@Manouchehri -- that actually sounds more like #610 to me.  I imagine that ticket and this ticket are related somehow, though I don't know for sure.

Regularly-scheduled ping:  This still reproduces for me in build 14971.

Thanks @aseering for the ping. I am working on the fix for this as we speak. It got more involved that I initially anticipated. Will update soon.

Just an update that this issue has been fixed in the dev branch and should soon hit the release branch. curl doesn't hang anymore, but it does return complaining that all the bytes were not transferred. I looked at the source of http_examples and it doesn't handle any errors (including EAGAIN) during send. With the slow reader on WSL, the send ends up returning EAGAIN soon and http_examples bails out. That's not related to the above issue, which should be fixed. The slow reader on WSL is a performance thing and something that we are aware of and do plan on spending resources looking at it sometime soon.
Many thanks @aseering for being persistent and helping us stay on track. I will also ping this thread again once the fix makes it to the release branch.

@aseering Thanks, my issue was indeed #610.

@sunilmut Do you have any idea what insider build this might land in?

@soljin - Unfortunately, no. The fix has not yet hit the release branch yet, but is moving up nicely. I will be sure to ping this thread when it hits the release build. Thanks for your patience.

This should be fixed in 15002. Please validate and let us know if the issue persists. Thanks @aseering for staying on top of this.

Quick update -- I'm using #15002 and have not seen this reproduce.  Yay!  But I have a collection of things that I'd like to test and I'm still working through them.  I'll post an update when they've finished running.

@aseering - Thanks for the validation. Good to know and waiting for the rest of the results.

Sorry for the lengthy delay; I've been busy with some other things lately.
Anyway -- I've thrown a whole bunch of workloads at build 15007.  (15002 had the issue where WSL always consumed a CPU core, and my test machine is only dual-core, so I upgraded right quick when that was fixed :-) )  I've found (and filed) a few other issues, but so far I have not seen a single recurrence of this hang.  So, as far as I'm concerned, it's fixed!  Feel free to close.
@sunilmut (and the rest of the WSL team) -- thanks!  This particular fix is a huge improvement for me personally.  In general, I always look forward to each new Insider build because there's always something new and useful in it :-)

@aseering - Thanks very much for all the help in the various stages of this issue; from filing, to diagnosis, for patience, to resolution and finally fixing and validating :). We are definitely glad that a core issue is fixed. I will keep this issue around for some more days and then close it out. Thanks again!

Is this problem solved?

Yes.


Flowfield contribution

Link to demo: https://nilsde.github.io/flowfield/

Community Contribution
Link to live project, video, or image:

Sharing

[X] I would be happy to have my project shared on The Coding Train's social media!

Instagram:
Twitter:

Great work!!


Documentation

Is there any documentation for this? I'm fairly new to WebRTC

Closing as duplicate of #33


Error with docker compose version 3

Hey,
I try lauching nginx-proxy with docker compose version '3', and I get this error...
forego     | starting dockergen.1 on port 5000
forego     | starting nginx.1 on port 5100
nginx.1    | 2017/09/18 07:43:10 [emerg] 29#29: no servers are inside upstream in /etc/nginx/conf.d/default.conf:55
nginx.1    | nginx: [emerg] no servers are inside upstream in /etc/nginx/conf.d/default.conf:55
forego     | starting nginx.1 on port 5200
forego     | sending SIGTERM to nginx.1
forego     | sending SIGTERM to dockergen.1

Here is my docker-compose.yml file:
version: '3'
services:

nginx-proxy:
       image: jwilder/nginx-proxy
       container_name: nginx-proxy
       ports:
       - 970:80
       - 1955:443
       volumes:
       - /docker/nginx/vhost.d:/etc/nginx/vhost.d:rw
       - /var/run/docker.sock:/tmp/docker.sock:ro
       - /docker/nginx/ssl:/etc/nginx/certs:rw
       - /docker/nginx/conf:/etc/nginx/conf.d
       - /docker/nginx/html:/usr/share/nginx/html
       environment:
       - HTTPS_METHOD=nohttp
       - VIRTUAL_PROTO=https
       labels:
       - com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy="true"

 letsencrypt-nginx-proxy-companion:
      image: jrcs/letsencrypt-nginx-proxy-companion
      container_name: letsencrypt
      volumes:
      - /docker/nginx/ssl:/etc/nginx/certs:rw
      - /var/run/docker.sock:/var/run/docker.sock:ro

Here is the /etc/nginx/conf.d/default.conf that was generated:
# graylog.xxxx.xx upstream graylog.xxxx.xx { } server { 	server_name graylog.laudenlaruto.me; 	listen 80 ; 	access_log /var/log/nginx/access.log vhost; 	include /etc/nginx/vhost.d/default; 	location / { 		proxy_pass http://graylog.xxxx.xx; 	} }
They are on the same network, the default one. What am I missing?

Found the solution, you have to set the volume :
- /docker/nginx/conf:/etc/nginx/conf.d
to
- /docker/nginx/conf:/etc/nginx/conf.d:rw
or simply delete it.


Update gunicorn

What and why?
Update gunicorn to 23.0.0
How to test?
Ensure secure message still works
Jira
RAS-1260

/deploy wilkia


Allow '0' in DropdownField

This fixes #5196.
It's actually sort of a workaround, because I feel like whatever code prettifies <select>s in the CMS should not ignore <option>s without any content. But this works too, without any harm (it just adds an invisible space to all values, instead of just to falsy values).

(and this could probably be merged all the way to 3.1)

If you want it applied to 3.1 and up then the PR needs to go into the 3.1 branch as we only merge code up from 3.1 -> master and not down.
I think we can wrap the   in a <% if not $Title %> just to keep the behaviour the exact same and to prevent any regressions.
Have you tested this in the CMS thoroughly?

Ah, I thought maybe some commits from the 3-branch were sometimes merged into older 3.x branches. They only go into the most recent (i.e. 3.3) then, or not even that (and only 3.4)? Is there maybe a page somewhere detailing how the branches work? :D
Anyway, I personally don't really care whether it goes into previous versions. For now, I just improved this fix: the only change is now that the condition is changed from Title to $Title.exists (which allows the string '0').

the .exists is implied (ie: the template checks the ->exists method to determine if there's a value.

Hmm. Well, I can only report what I see: when I put .exists there, 0 appears in the dropdown, and if it's not, it doesn't!

Wierd :/
on branches see: last point in https://docs.silverstripe.org/en/3.2/contributing/code/#quickfire-do-s-and-don-t-s and https://docs.silverstripe.org/en/3.2/contributing/release_process/#supported-versions

Mega super related; https://github.com/silverstripe/silverstripe-framework/pull/4053
I suggest looking through the code in that change to discover where your '0' is getting treated as false.
I am hesitant about merging this in, because it's only resolving the symptoms, not cause of, a bug.

@dhensby I wonder if this would be fixed by your "always cast" pull request, since it would force the value to be cast to a Varchar, which must have .exist() called on it.

I'm going to merge this because I don't think doing so is problematic. If there are other, deeper issues at play, then it's fine to look at them too, but I don't think think stops us form including this fix.


Consider allowing callers of simpleion.dump to provide their own writer

ion-hash-python currently relies on the private-by-convention _dump method instead of the public dump method because the former allows you to provide your own writer.
We should investigate whether there are enough other use cases for providing a writer that we can add that to dump, allowing ion-hash-python to use the public version. (Alternatively, if there aren't other use cases, we could at least add a comment to _dump indicating that it is relied upon by a sibling project.)

As discussed offline, we don't know of a use case for user-provided writer coroutines at this time, beyond ion-hash-python. We can reopen this if we learn of additional use cases.
In the meantime, we can address the root of the issue, which is that breaking changes to _dump cause ion-hash-python to break. See #113 .


Fix Modrinth download badge

v1 of Modrinth's API has been deprecated since January 2022 and is scheduled to begin breaking in February, with a complete breakage being done by March. This pull request has been created as a courtesy to update it to use the dedicated shields.io badge rather than manually constructing the API request.
After merging this PR, please also update any usages on other pages, for example a CurseForge and/or Modrinth project description, and also cherry-pick/copy these changes to any other branches you might have.
P.S. Allium isn't on Modrinth at all anymore so I guess the badge doesn't work even with this fix... what's up with that?

@hugeblank Please make sure you merge this before the March 14th deadline.

Allium isn't on Modrinth at all anymore so I guess the badge doesn't work even with this fix... what's up with that?

It actually never has been because it's not release ready. I preemptively put the badge there because I know would have forgotten to at the time of publishing.


VS2019 All the guests can see each other's cursors even in ReadOnly mode

Product and Version [VS/VSCode]:
OS Version [macOS/Windows]:
Live Share Extension Version:
Target Platform or Language [e.g. Node.js]:
Steps to Reproduce / Scenario:

Host shares the readonly session.
All the joining guests can see each other's cursors along with host's cursor (which seems quite distracting)
In readonly session guests should only see host's cursor and NOT other guests' cursor.

cc @IlyaBiryukov Can you take a look?

This issue has been closed due to inactivity. Thank you for reporting this issue. If you face problems with you current Live Share usage, please feel free to reopen this issue.
-Live Share team


Keynotes Searching

Suggested Keynotes:
Marlene Mhangami - https://twitter.com/marlene_zw - English
Carol Willing - https://twitter.com/WillingCarol - English
Cheuk Ting Ho - https://twitter.com/cheukting_ho - English
Ana Cecilia Vieira - Pyladies Brasil - Portugues
Valeria Briz - https://twitter.com/valerybriz - Español
French ??
Chinese ??

Débora Azevedo: https://twitter.com/pydebb - Portuguese
Karolina Ladino: https://twitter.com/karobotco - Spanish
Jimena Bermúdez: https://twitter.com/Jimena_y_yo - Spanish

Here my suggestions
🌟🐍🌟🐍
Keynote Speaker English
Marlene Mhangami: https://www.linkedin.com/in/marlenemhangami/
Keynote Speaker Chinese
Cheuk Ting Ho: https://www.linkedin.com/in/cheukting-ho/
Keynote Speaker Portugues
Débora Azevedo: https://www.linkedin.com/in/debora-azevedo-1919b996/
Keynote Speaker Spanish
Jimena Bermúdez : https://www.linkedin.com/in/jimena-eb/
Keynote Speaker French
Maria Telenczuk: https://www.linkedin.com/in/maria-telenczuk/
🌟🐍🌟🐍

@Mariatta @elkabuitrago @mjmolina What are your suggestions 😊 🙌

The above suggestions are awesome 👍

Julia Evans (English)

https://jvns.ca/
https://www.linkedin.com/in/jvans

Hello everyone!
Sorry for the late reply and for doing it via email, I can not login
right now to GitHub but I don't want to make you wait for my answer.
I think that Denny's proposal looks very good, but also Vicky's proposal
for English,  it is very nice option.
Could we include both of them?
Or do we plan to have only 1 keynote by language?
Another topic related to this..
I wonder if we should create a backup list of speakers just in case?
Thanks a lot and have a nice day 😊
On Sat, 16 Sept 2023, 11:30 whykay, @.***> wrote:

Julia Evans (English)

https://jvns.ca/
https://www.linkedin.com/in/jvans

—
Reply to this email directly, view it on GitHub
https://github.com/pyladies/global-conference/issues/28#issuecomment-1722188168,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHV2LTOLCUPJ53PQU6ZOJ7LX2VWSHANCNFSM6AAAAAA2GF4L3M
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hello everyone! Sorry for the late reply and for doing it via email, I can not login right now to GitHub but I don't want to make you wait for my answer. I think that Denny's proposal looks very good, but also Vicky's proposal for English, it is very nice option. Could we include both of them? Or do we plan to have only 1 keynote by language? Another topic related to this.. I wonder if we should create a backup list of speakers just in case? Thanks a lot and have a nice day 😊
…
On Sat, 16 Sept 2023, 11:30 whykay, @.> wrote: Julia Evans (English) - https://jvns.ca/ - https://www.linkedin.com/in/jvans — Reply to this email directly, view it on GitHub <#28 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHV2LTOLCUPJ53PQU6ZOJ7LX2VWSHANCNFSM6AAAAAA2GF4L3M . You are receiving this because you were mentioned.Message ID: @.>

Yes. We are planning to have 1 Keynote per language. Taking into account diversity and language inclusion

Hi,
I have asked in the Brazilian chapters for keynote suggestions. Here are the top 4:
Lidiane Monteiro - https://www.linkedin.com/in/lidymonteiro/
Thais Viana - https://www.linkedin.com/in/thaisnviana/
Bia Rosa - https://www.linkedin.com/in/biarm/
Ryllari Marques - https://www.linkedin.com/in/ryllari/
These women are pyladies with relevant work in our community. We believe that is important form new Brazilian representant with the global community.

Done! Here:
https://drive.google.com/drive/folders/1jVBlDnrNKqCKSDT7xbo820NhNIwtKwCC?usp=drive_link


How to evaluate the Open-Vocabulary Segmentation results in Table 2?

Hi,
Thank you for sharing your impressive work!
I got confused about Table 2: How are the open vocabulary segmentation metrics calculated?
Also, could you please explain how Osprey outputs the mask to calculate these metrics?
Thanks for your help!

Hi, @Glupapa
For open-vocabulary segmentation, all approaches employ ground truth boxes/masks as input to assess regional recognition capability. We leverage the semantic similarity as the matching measurement to calculate these metrics. We will release the codes for performance evaluation.
Actually, the current version of Osprey lacks the capability to generate output masks.

Thanks for your prompt response!
I noticed that the metrics used on Cityscapes and ADE20K-150 in Table2 are PQ, AP and mIoU, so I'm curious about how to calculate these metrics if Osprey may not output a mask. Could you please shed some light on this?
Thank you once again for your assistance.

@Glupapa The groundtruth masks are used in calculating these metrics.

Hi @CircleRadon! I'm having the same question as @Glupayy. How can we calculate the PQ, AP, and mIoU values since Osprey cannot output masks? My guess is that for each sample, the PQ, AP, and mIoU can either be 1 (when the predicted label is correct) or 0 (when the predicted label is wrong), and these 'binary' scores are averaged across all samples to obtain the values in Table2. I was wondering whether this is correct. Thanks!

Hi @CircleRadon! I'm having the same question as @Glupayy. How can we calculate the PQ, AP, and mIoU values since Osprey cannot output masks? My guess is that for each sample, the PQ, AP, and mIoU can either be 1 (when the predicted label is correct) or 0 (when the predicted label is wrong), and these 'binary' scores are averaged across all samples to obtain the values in Table2. I was wondering whether this is correct. Thanks!

If this is the case, could you please share more insights about why leveraging such metrics rather than simply computing accuracies? Thanks!


First time PhoneNumberInputValidator  not work

When set allowEmpty = false then call validate always return null

What's the expand more icon for ?

Can you remove it , that's private use for when hide flag show expand more icon

Added your fix to release