m3U8 not working in flutter video_player_web

Hi i am try to play video using video_player_web plugin but not able to play m3u8 video in web

Hi @phoelapyae69
can you please provide your updated  flutter doctor -v
and your flutter run --verbose?
Also, to better address the issue, would be helpful
if you could post  a minimal code sample
or the steps to reproduce the problem.
Thank you
possibly related to https://github.com/flutter/flutter/issues/26851

Hi @iapicca
Please find the details you want
1.flutter doctor -v
[✓] Flutter (Channel master, v1.13.1-pre.99, on Linux, locale en_IN)
• Flutter version 1.13.1-pre.99 at /home/dinesh/flutter
• Framework revision 354f80b84a (4 hours ago), 2019-12-11 16:36:03 -0800
• Engine revision 12bf95fd49
• Dart version 2.7.0 (build 2.7.0-dev.2.1 8b8894648f)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /home/dinesh/Android/Sdk
• Android NDK location not configured (optional; useful for native profiling
support)
• Platform android-29, build-tools 29.0.2
• Java binary at:
/home/dinesh/Dinesh/Software/android-studio-ide-191.5900203-linux/android-
studio/jre/bin/java
• Java version OpenJDK Runtime Environment (build
1.8.0_202-release-1483-b49-5587405)
• All Android licenses accepted.
[✓] Chrome - develop for the web
• Chrome at google-chrome
[✓] Android Studio (version 3.5)
• Android Studio at
/Software/android-studio-ide-191.5900203-linux/android-
studio
• Flutter plugin version 42.0.1
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build
1.8.0_202-release-1483-b49-5587405)
[✓] VS Code (version 1.40.2)
• VS Code at /usr/share/code
• Flutter extension version 3.7.0
[✓] Connected device (2 available)
• Chrome     • chrome     • web-javascript • Google Chrome 77.0.3865.120
• Web Server • web-server • web-javascript • Flutter Tools
• No issues found!
2.flutter run --verbose
gnature=false log -n 1
--pretty=format:%H
[        ] 354f80b84a9b30ec3b49d8fed81bce772a1bc8e8
[        ] executing: [/home/dinesh/flutter/] git describe --match v*..
--first-parent --long --tags
[  +16 ms] Exit code 0 from: git describe --match v*.. --first-parent --long
--tags
[        ] v1.13.0-99-g354f80b84
[   +9 ms] executing: [/home/dinesh/flutter/] git rev-parse --abbrev-ref
--symbolic @{u}
[   +6 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/master
[        ] executing: [/home/dinesh/flutter/] git ls-remote --get-url origin
[   +6 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +57 ms] executing: [/home/dinesh/flutter/] git rev-parse --abbrev-ref HEAD
[   +7 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] master
[  +37 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping
update.
[   +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required,
skipping update.
[  +27 ms] executing: /home/dinesh/Android/Sdk/platform-tools/adb devices -l
[  +11 ms] Exit code 0 from: /home/dinesh/Android/Sdk/platform-tools/adb devices
-l
[        ] List of devices attached
[  +19 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping
update.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping
update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required,
skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required,
skipping update.
[  +85 ms] More than one device connected; please specify a device with the '-d
'
flag, or use '-d all' to act on all devices.
[  +63 ms] Chrome     • chrome     • web-javascript • Google Chrome
77.0.3865.120
[   +1 ms] Web Server • web-server • web-javascript • Flutter Tools
[  +12 ms] "flutter run" took 285ms.
#0      throwToolExit (package:flutter_tools/src/base/common.dart:28:3)
#1      RunCommand.validateCommand
(package:flutter_tools/src/commands/run.dart:302:7)

#2      FlutterCommand.verifyThenRunCommand
(package:flutter_tools/src/runner/flutter_command.dart:601:11)

#3      FlutterCommand.run.
(package:flutter_tools/src/runner/flutter_command.dart:516:33)

#4      AppContext.run.
(package:flutter_tools/src/base/context.dart:146:29)
#5      _rootRun (dart:async/zone.dart:1126:13)
#6      _CustomZone.run (dart:async/zone.dart:1023:19)
#7      _runZoned (dart:async/zone.dart:1518:10)
#8      runZoned (dart:async/zone.dart:1465:12)
#9      AppContext.run (package:flutter_tools/src/base/context.dart:145:18)
#10     FlutterCommand.run
(package:flutter_tools/src/runner/flutter_command.dart:506:20)
#11     CommandRunner.runCommand (package:args/command_runner.dart:197:27)
#12     FlutterCommandRunner.runCommand.
(package:flutter_tools/src/runner/flutter_command_runner.dart:333:21)

#13     AppContext.run.
(package:flutter_tools/src/base/context.dart:146:29)
#14     _rootRun (dart:async/zone.dart:1126:13)
#15     _CustomZone.run (dart:async/zone.dart:1023:19)
#16     _runZoned (dart:async/zone.dart:1518:10)
#17     runZoned (dart:async/zone.dart:1465:12)
#18     AppContext.run (package:flutter_tools/src/base/context.dart:145:18)
#19     FlutterCommandRunner.runCommand
(package:flutter_tools/src/runner/flutter_command_runner.dart:284:19)
#20     CommandRunner.run.
(package:args/command_runner.dart:112:25)
#21     new Future.sync (dart:async/future.dart:224:31)
#22     CommandRunner.run (package:args/command_runner.dart:112:14)
#23     FlutterCommandRunner.run
(package:flutter_tools/src/runner/flutter_command_runner.dart:227:18)
#24     run..
(package:flutter_tools/runner.dart:64:22)
#25     _rootRun (dart:async/zone.dart:1126:13)
#26     _CustomZone.run (dart:async/zone.dart:1023:19)
#27     _runZoned (dart:async/zone.dart:1518:10)
#28     runZoned (dart:async/zone.dart:1502:12)
#29     run. (package:flutter_tools/runner.dart:62:18)

#30     AppContext.run.
(package:flutter_tools/src/base/context.dart:146:29)
#31     _rootRun (dart:async/zone.dart:1126:13)
#32     _CustomZone.run (dart:async/zone.dart:1023:19)
#33     _runZoned (dart:async/zone.dart:1518:10)
#34     runZoned (dart:async/zone.dart:1465:12)
#35     AppContext.run (package:flutter_tools/src/base/context.dart:145:18)
#36     runInContext (package:flutter_tools/src/context_runner.dart:64:24)
#37     run (package:flutter_tools/runner.dart:51:10)
#38     main (package:flutter_tools/executable.dart:65:9)
#39     main
(file:///home/dinesh/flutter/packages/flutter_tools/bin/flutter_tools.dart:8:3)
#40     _startIsolate.
(dart:isolate-patch/isolate_patch.dart:305:32)
#41     _RawReceivePortImpl._handleMessage
(dart:isolate-patch/isolate_patch.dart:174:12)
3. Please find the below code snippet
class VideoApp extends StatefulWidget{
@override
State createState() {
_VideoAppState();
}
}
class _VideoAppState extends State {
VideoPlayerController _controller;
@override
void initState() {
super.initState();
controller = VideoPlayerController.network(
'https://mnmedias.api.telequebec.tv/m3u8/29880.m3u8')
..initialize().then(() {
// Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
setState(() {});
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Video Demo',
home: Scaffold(
body: Center(
child: _controller.value.initialized
? AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
)
: Container(),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
_controller.value.isPlaying
? _controller.pause()
: _controller.play();
});
},
child: Icon(
_controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
),
),
),
);
}
@override
void dispose() {
super.dispose();
controller.dispose();
}
}
and chrome console getting following error
Error: Expected a value of type 'PlatformException', but got one of type 'Event$'
at Object.throw [as throw] (errors.dart:196)
at Object.castError (errors.dart:45)
at Object.cast [as as] (operations.dart:426)
at Function.check_C [as _check] (classes.dart:522)
at errorListener (video_player.dart:272)
at _RootZone.runUnaryGuarded (zone.dart:1316)
at sendError (stream_impl.dart:361)
at _ControllerSubscription.new.[_sendError] (stream_impl.dart:376)
at async._DelayedError.new.perform (stream_impl.dart:605)
at _StreamImplEvents.new.handleNext (stream_impl.dart:710)
at async._AsyncCallbackEntry.new.callback (stream_impl.dart:670)
at Object._microtaskLoop (schedule_microtask.dart:43)
at _startMicrotaskLoop (schedule_microtask.dart:52)
at async_patch.dart:168

@dineshpote26 do browsers support this format? If not we may not be able to play it in the video_player_web plugin. You may need a custom plugin that can do this, perhaps a JS library or a WASM module.

@yjbanov m3u8 support the chrome browser . I think plugin does not support other format other then of mp4.can you guide me how to customise the plugin?

/cc @ditman can you please track it down in the plugins repo? It's possible that we're not setting the correct type attribute in the <source> tag.

Taking a look!

Here is where the video element is created and injected into the page on the video_player plugin.
A couple of notes about m3u8; the actual name of this tech is HLS (HTTP Live Streaming).

MDN: https://developer.mozilla.org/en-US/docs/Web/Guide/Audio_and_video_delivery/Live_streaming_web_audio_and_video#HLS

supported on iOS, Safari and the latest versions of Android browser / Chrome.

caniuse HLS? https://caniuse.com/#feat=http-live-streaming

As of today, this seems to not be supported in desktop browsers (except Safari and non-Blink Edge) without a plugin or something like hls.js.
You can try yourself by pasting the following HTML snippet in jsfiddle running in different browsers:
<video width="320" height="240" controls autoplay>
    <source src="http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8" type="application/x-mpegURL">
</video>

@dineshpote26 are you testing this in a mobile web browser, or a desktop web browser?

@ditman I am testing in desktop web browser.

Can you share the list of plugins/extensions that you have installed? According to the list above, m3u8 only works on non-chromium Edge browsers.


Expend composer option displayed for a second when opening chat

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open the chat
Write a message on composer
Press back button
Now open that chat again

Expected Result:
The "Expand Composer" Option Should Not Appear Upon Reopening the Chat
Actual Result:
Brief display of expend composer option when opening chat
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number:
Reproducible in staging?: Needs Reproduction
Reproducible in production?: Needs Reproduction
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/52a37ae1-8251-4b49-8588-ccc7f7a18f94

Expensify/Expensify Issue URL:
Issue reported by: @ayazhussain79
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1684260173925429
View all open jobs on GitHub

This bug seems to be 2 months old, and I can't repro this in .35-5 on Pixel 3a.
Please re-test and re-open with a new video/reproduction steps.


get image size

cannot get header response from cdn.kaskus.com domain.
always return 0 bytes.
test case
http://m.kaskus.co.id/post/54d6132abdcb17035a8b4570/

for unknown reason, fixed by itself.


How to hide select placeholder from options

Question
A clear and concise description of what the question is.

I added some text to placeholder but I don't want to this placeholder shown in options. Couldn't find easy way to do it. Is there any way to do it ?

not possible, the select box doesn't support placeholder so we use it as an option in order to have a placeholder in the select box.
instead, rely on a non-native select such as ng-select https://stackblitz.com/edit/angular-ngx-formly-ngselect-material-2bj3sf


WIP: Dataflow based Preprocessing source

#584

@sakshamarora1 What state is this in?

@pdxjohnny Still in progress.
Can you help me with how should the edit_feature and AssociateDefinition operations work together? I've made AssociateDefinition that maps the feature name with the corresponding record value. edit_feature takes a value as an input and returns value*10 . How should I go about it?

@sakshamarora1 try adding a testcase for just the AssociateDefinition output operation.
The body of the test_... will look something like:
feed_def = Definition(name="feed", primitive="string")
dead_def = Definition(name="dead", primitive="string")
output = Definition(name="output", primitive="string")

feed_input = Input(value="my favorite value", definition=feed_def)
face_input = Input(value="face", definition=OUTPUT, parents=[feed_input])

dead_input = Input(value="my second favorite value", definition=dead_def)
beef_input = Input(value="beef", definition=OUTPUT, parents=[dead_input])

async for ctx, results in run(DataFlow.auto(AssociateDefinition), [
    feed_input, face_input, dead_input, beef_input,
]):
    self.assertEqual(results, {
        "feed": "face",
        "dead": "beef",
    })

Also, you still need to check the parents in the associate operation:
                parents = item.get_parents()
                for parent in parents:
                    if key == parent.definition:
                        want[key.name] = item.value # Change is here
                        break
            return want

If we don't check them, we will just associate all matching definitions, rather than those that are associated with a particular definition as their parent.


Create new Env: HotFix

We need a new Env called Early Access & HotFix.
Early Access: With this env process-designer can test new digiwf features before release
HotFix: With this env process-designer can reproduce Bugs in Production without destroying the Test/Demo-Environment
https://git.muenchen.de/digitalisierung/digiwf-ops#umgebungen-und-deren-zusammenhang
Features:
State of Early-Access is equal to Demo, but without Optimize. -> Demo is used for that purpose
State of HotFix ist equal to processes-demo, but without optimize
Name:
HotFix: digiwf-processeshotfix
Needs new Databases and Kafka-Topics
Internal Tickets:

https://git.muenchen.de/digitalisierung/digiwf-support/-/issues/259

Interner MR für Openshift-Projekt:
https://git.muenchen.de/openshift/projects/-/merge_requests/356

Service-Now-Ticket für neuen S3-Bucket: REQ0479036

Interner MR für Cocreation Deployment: https://git.muenchen.de/digitalisierung/bpm-server/-/merge_requests/38

@simonhir Hab die Story auf Done verschoben, wie im Daily besprochen


ReadTheDocs search and MkDocs

(Sorry for adding this as an issue @ericholscher, but we keep missing each other on IRC. If there is a better place, let me know.)
We added the mkdocs json command to MkDocs for RTD's to use in serverside search. Since then I have been working on clientside search support. This means we generate a JSON index in a slightly different format to work with Tipue search and thus we will potentially have two different JSON output formats which is a bit of a pain.
The Tipue format looks like this: https://github.com/Tipue/Tipue-Search/blob/master/tipuesearch/tipuesearch_content.js . The key difference is that it is one file containing all pages and the key names are different but otherwise I think it contains pretty much the same data.
So, my question is, can RTD be adapted to use this format so we can drop the specific json command from MkDocs? If so, I'd be happy to make the change in the ReadTheDocs code.

Is still relevant? mkdocs json has since become deprecated...

Yes, I believe this is relevant. We have deprecated it in MkDocs but we won't remove it while RTD still depends on it.

Fair enough. Sorry, I was mislead but I'm grasping at straws trying to figure out why the search for some MkDocs projects works on RTD but not for others (#2020).

No problem. I'm not sure how to help you with that issue, I'm not familiar with RTD's search.

It appears that the form action for the searchbox is being injected with this javascript: https://github.com/rtfd/readthedocs.org/blob/master/readthedocs/core/static-src/core/js/doc-embed/mkdocs.js.
It looks like it's just building the wrong query, along the lines of: https://readthedocs.org/search/?q=bar&check_keywords=yes&area=default&project=foo&version=X.y&type=file. Either of these paths actually work though:

https://readthedocs.org/projects/foo/search/?q=bar
http://foo.readthedocs.io/en/X.y/search.html?q=bar

Thanks for the hint. The first doesn't work for me but the second does:

https://readthedocs.org/projects/nodemcu/search/?q=docker -> NOK, no results
http://nodemcu.readthedocs.io/en/dev/search.html?q=docker -> OK

The easiest work-around for this is overriding the searchbox template like so: https://github.com/aegir-project/documentation/compare/2884f80...3a44eec1
Note the change in the form's id (e.g. rtd-search-form-alt). This stops the RTD JS from breaking the default search functionality.

The fact that your work-around has the desired affect means that RTD by default replaces the MkDocs RTD theme? The original theme's searchbox.html isn't so different from yours: https://github.com/mkdocs/mkdocs/blob/master/mkdocs/themes/readthedocs/searchbox.html. So, the custom theme kinda re-introduces the original theme?

RTD isn't replacing the mkdocs theme, just altering it with some javascript. As per http://www.mkdocs.org/user-guide/custom-themes/#creating-a-custom-theme, I just copied the default mkdocs RTD theme's searchbox.html, and altered the form id, so that the JS would no longer have any effect.

@ergonlogic the only "problem" with your nifty custom theme approach I found so far is that RTD changes the implementation of the footer fly-out menu it adds. While it normally sits in the lower left corner it is moved to the lower right and becomes detached once you declare a custom theme in mkdocs.yml.
An alternative is to add the following JavaScript function to your extra.js. It reverts the changes RTD applies to the search form:
  function fixSearch() {
    var target = document.getElementById('rtd-search-form');
    var config = {attributes: true, childList: true};

    var observer = new MutationObserver(function(mutations) {
      // if it isn't disconnected it'll loop infinitely because the observed element is modified
      observer.disconnect();
      var form = $('#rtd-search-form');
      form.empty();
      form.attr('action', 'https://' + window.location.hostname + '/en/' + determineSelectedBranch() + '/search.html');
      $('<input>').attr({
        type: "text",
        name: "q",
        placeholder: "Search docs"
      }).appendTo(form);
    });
    // don't run this outside RTD hosting
    if (window.location.origin.indexOf('readthedocs') > -1) {
      observer.observe(target, config);
    }
  }

Thanks you @marcelstoer the work-around you implemented in https://github.com/nodemcu/nodemcu-firmware/commit/7dd89dd15ef993c9740ba4d4361e6be8edd1284b is working for me!

The latest mkdocs (0.17) removes the json output feature RTD relies on to index, so builds are broken completely with the latest version. It would be great to get someone that knows more about mkdocs maintaining these pieces, we don't have the bandwidth.
Raised in #3174

That is odd because earlier in this issue @d0ugal stated

We have deprecated it in MkDocs but we won't remove it while RTD still depends on it.

I don’t have the bandwidth for MkDocs now. So I guess that goal stopped with me. I’d recommend pinning at the previous release for now.

It sounds like this is resolved.

I believe this Issue should be open as we are not indexing MkDocs in Elasticsearch index.

But it uses the default search from mkdocs (I think this issue was about the search in the docs, not in the rtd.org site?)

@stsewd Yeah. currently it uses built in search of mkdocs. But it would be better if we could index the content to our elasticsearch index so we can provide better search result to our users.

@safwanrahman maybe this interest you https://github.com/rtfd/readthedocs.org/issues/4205

But it would be better if we could index the content to our elasticsearch index so we can provide better search result to our users

IIRC, the problem we have with MkDocs is there is no way to generate a context to create the .json file as we do with Sphinx. The limitation was on MkDocs side, not on us.
I may be wrong, though.

@humitos The json file is created with the HTML file by default. But the structure is different. We need to port the json file to be indexed into our Elasticsearch.

We need a way to dump mkdocs HTML unthemed, which is the main problem. It needs to be consistent across themes and builds.

This isn't fully closed. We are going to be indexing search data for mkdocs since next week, but not yet overriding the mkdocs search for ours.

Hopefully this is going live next week, if someone wants to try the server side search for mkdocs projects next week, let us know via email at<EMAIL_ADDRESS>

What are the changes MkDocs-based projects have to make to be compliant with what goes live next week? Or maybe, which work-arounds have to/can be removed next week?

Let me explain this a little more. We used to index search data only for sphinx projects, but now we index search data for mkdocs too (search works here now https://readthedocs.org/projects/mkdocs-clone/search/?q=test&type=file&project=mkdocs-clone&version=latest for example).
With the other change (to be released next week), now you can get those results inside the doc pages. It should work with all mkdocs themes that have the #mkdocs-search-results and mkdocs-search-query elements. For now, you'll need to trigger a re-build for all versions you want search enabled after we enable the feature for your project. After the beta, you should be able to just use the server side search in all projects without needing to re-build

If someone is curious, this is how it looks

https://mkdocs-clone.readthedocs.io/en/latest/
https://mkdocs-test-stsewd.readthedocs.io/en/latest/search.html?q=versions

If you want to test this let us know via email at<EMAIL_ADDRESS>


Improve the summary on a greenpepper:run build

Currently, we have the following at the end of the build
Results for 414 specification(s):
28439 tests: 25578 right, 931 wrong, 2 ignored, 1928 exception(s)

List of failed tests

A more interesting output should be
Results for 414 specification(s): 300 right, 100 wrong, 10 ignored, 4 not run

The total of specification is the sum of matching specifications of all repositories.
The number of wrong is incremented for each specification with at least one wrong or one exception result.
The number of right is incremented for each specification with no wrong, no exception and at least one right result.
The number of skipped is incremented for each specification in other cases.
The number of not run is the total of specification minus right, wrong and skipped specifications.

I have created a branch for this issue .

Here is the pull request: https://github.com/strator-dev/greenpepper/pull/66


TF 2.3 training slowed down by 15% compared to 2.2

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 2.3.0, 2.4.0.dev20200728
Python version: 3.7.8
CUDA/cuDNN version: 10.1 / <IP_ADDRESS>
GPU model and memory: NVIDIA V100 on 12 vCPUs, 40 GB memory GCP node

Describe the current behavior
When upgrading from TensorFlow 2.2.0 to 2.3.0 we observed a 15 - 18% slow down in training speed for our workloads. Unfortunately I wasn't able to find an easy to reproduce example before the stable release was cut, but below is a code example that illustrates the performance degradation.
When running the training script on a single NVIDIA V100 a 15% performance loss compared to 2.2 can be observed which still is noticable in the latest nightly:

version
epoch time
step time
GPU idle time

2.2.0
34 s
124.3 ms
19.7 ms (15.6 %)

2.3.0
39 s
141.9 ms
37.2 ms (26.1 %)

2.4.0.dev20200728
38s
136.2 ms
31.6 ms (23.2 %)

On Device: total self-time (grouped by type)

2.2.0
2.3.0
2.4.0.dev20200728

The example uses auto mixed precision, but the slowdown can also be observed when running in float32 or in multi-GPU training. When looking at the generated execution profile the slowdown can be explained by an increased idle time of the GPU. Since the training data is cached in memory there should be no IO bottleneck so I am not sure if this performance regression is caused by tf.data or by the runtime itself.
Describe the expected behavior
TensorFlow 2.3 should show equally fast training performance compared to 2.2.
Standalone code to reproduce the issue
import tensorflow as tf
import tensorflow_datasets as tfds

batch_size = 64

def _decode_and_center_crop(image_bytes):
    """Crops to center of image with padding then scales image_size."""
    shape = tf.image.extract_jpeg_shape(image_bytes)
    image_height, image_width, image_size = shape[0], shape[1], 224

    padded_center_crop_size = tf.cast(
        (
            (image_size / (image_size + 32))
            * tf.cast(tf.minimum(image_height, image_width), tf.float32)
        ),
        tf.int32,
    )

    offset_height = ((image_height - padded_center_crop_size) + 1) // 2
    offset_width = ((image_width - padded_center_crop_size) + 1) // 2
    crop_window = tf.stack(
        [offset_height, offset_width, padded_center_crop_size, padded_center_crop_size]
    )
    image = tf.image.decode_and_crop_jpeg(image_bytes, crop_window, channels=3)
    return tf.image.resize(image, [image_size, image_size], method="bicubic")

def preprocessing(data):
    return (
        tf.cast(_decode_and_center_crop(data["image"]), tf.float32),
        data["label"],
    )

dataset = tfds.load(
    "imagenette", decoders={"image": tfds.decode.SkipDecoding()}, split="train",
)

dataset = (
    dataset.cache()
    .repeat(2)  # Artificially increase time per epoch to make it easier to measure
    .map(preprocessing, num_parallel_calls=tf.data.experimental.AUTOTUNE)
    .batch(batch_size)
    .prefetch(1)
)

with tf.distribute.MirroredStrategy().scope():
    model = tf.keras.applications.ResNet50(weights=None)

    model.compile(
        optimizer=tf.train.experimental.enable_mixed_precision_graph_rewrite(
            tf.keras.optimizers.Adam(), loss_scale="dynamic"
        ),
        loss="sparse_categorical_crossentropy",
    )

tb_cbk = tf.keras.callbacks.TensorBoard(f"logs/{tf.__version__}", profile_batch=300)
model.fit(dataset, verbose=2, epochs=3, callbacks=[tb_cbk])

Other info / logs
TensorBoard profiles for the runs mentioned above are available at tb-profile.zip
@mihaimaruseac @jsimsa @guptapriya do you mind taking a look at this?

I was able to reproduce the issue. Here is the gist..

Thanks for the report @lgeiger . We will look more into this. The code sample uses MirroredStrategy - so I wanted to clarify when you said this regression is noticed on a single GPU as well - is that with or without MirroredStrategy? If latter, we would start investigating that case first (i.e. 1 GPU, no distribution, no mixed precision).

@guptapriya Thanks for looking into this.

The code sample uses MirroredStrategy - so I wanted to clarify when you said this regression is noticed on a single GPU as well - is that with or without MirroredStrategy?

Sorry about that, I missed that since I copied the example from a past issue I had with multi-GPU. I ran a few more benchmarks with the above example on a single GPU machine:

version
FP32
FP32 Mirrored
FP16
FP16 Mirrored

2.2.0
55 s
55 s
36s
34 s

2.3.0
54 s
58 s
37 s
39 s

Indeed, it looks like whether mirrored strategy is used or not has a large influence. I am not sure why there is a difference in execution speed for mixed precision with and without a strategy, altough I think that might be a seperate issue.
One thing to note is that 2.3 logs the following deprecation warning when used with mirrored strategy which wasn't present before, but that might be unrelated as well:
WARNING:tensorflow:From ~/.local/lib/python3.7/site-packages/tensorflow/python/data/ops/multi_device_iterator_ops.py:601: get_next_as_optional (from tensorflow.python.data.ops.iterator_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.data.Iterator.get_next_as_optional()` instead.

Note that this slowdown is more noticable with mixed precision as the kernel execution time is smaller so the increased idle time is easier to spot.

Thanks Lukas for the update, that helps a lot. I can confirm that we have verified the regression (looks like it happened sometime back in April.
We will update here when we have info into the root cause and fixes.

@guptapriya Thank you very much the fast response, I am glad that you were able to verify the regression.

I can confirm that we have verified the regression (looks like it happened sometime back in April)

April sounds like a long time for the regression to stay unnoticed. Am I doing something abnormal in the example or am I missing a best practice here?

Actually now we are no longer sure about the timing because the benchmark I used to get the timing was actually changed in April. So we are now looking into the timing of regression again. It may have come up later.
Once we determine the root cause, we should be able to tell if there is anything in your code that makes this show up or simply on TF side that somehow went unnoticed.
In your experience, when did you start noticing the regression?

Makes sense, thanks for the help.

In your experience, when did you start noticing the regression?

I usually stay on the stable versions of TensorFlow for production workloads so I first noticed it around 2.3 RC 0 or 1 when running our internal ImageNet sanity check before upgrading TF version. But it took some time to find an reliably reproducible example that I could use to open the issue.

@lgeiger thanks for providing the tensorboard profile. We have some observations regarding the profile which use fp16. You mentioned that the regression also happens on fp32 (and multi-gpu). Do you happen to have the fp32 profiles of TF 2.2 and 2.3? Thanks.

@zongweiz Sure, I reran the above code example (float32 with mirrored strategy) to generate these profiles:
tb-profile-fp32.zip

I hope the profiles are helpful for debugging, do you have any news on the resolution of this issue?

@jaingaurav is looking into a potential fix I believe.

Yes, we found some unintended host to device copies caused by a previous change, that I am trying to eliminate.

i also found that tensorflow 2.3 mixed precision didn't speed-up training as tensorflow 2.2.0 does :)).

Yes, we found some unintended host to device copies caused by a previous change, that I am trying to eliminate.

@jaingaurav Thanks for looking into it. Do you know if this fix will make it into the 2.4 release?

@lgeiger: Yes this is currently planned for the 2.4 release. However the fix is still being worked on.

@jaingaurav I just checked with the new release candidate and CUDA 11, but unfortunately this issue still exists and the increased idle time is clearly visible in the profiles.
Below are the numbers for 2.4.0rc0 including the profiles for the runs:

version
FP32
FP32 Mirrored
FP16
FP16 Mirrored

2.4.0rc0
54s
60s
40s
41s

cc: @rohan100jain, @zongweiz looks like the fix in 673b993 didn't quite work as well as we'd hoped.

Thanks for looking into it. I also updated the table with measurements using the new Keras mixed precision API which makes the slowdown easier to spot.

@rohan100jain Has there been any progress on this? From briefly skimming the changes in RC1, it looks like it doesn't include a fix for this.
This bug has been blocking me from upgrading to 2.3 so it would be great to get this resolved in 2.4. Please let me know if there anything that I could do from my side to help you debug this further?

I double checked and the issue still exists in tf-nightly 2.5.0-dev20201110.

@rohan100jain @zongweiz @jaingaurav I did a bit more testing with 2.4.0rc1 and it looks like when using .batch(batch_size, drop_remainder=True) instead of .batch(batch_size), both mirrored strategy and normal training behave the same in float32 and the slowdown is significantly reduced for mixed precision training.
I am a bit confused why keeping the remainder results in such a significant performance degradation, but I didn't look into it in detail yet. The mixed precision training runs are still show a high idle time, but slow down for mirrored strategy isn't as significant as before. Here are the TensorBoard profiles for the measurements shown below:

version
FP32
FP32 Mirrored
Keras FP16
Keras FP16 Mirrored

2.4.0rc1 (drop_remainder=True)
54s
54s
34s
35s

@lgeiger Thanks for your information. Yes, we have tracked down the performance issue to a tf.cond inside Keras batch norm layer (to handle empty batches). Setting drop_remainder=True avoid empty/partial batches and workaround the problem.
@rohan100jain is working on a fix and will give an update very soon
I think the reason we see more regression on FP16 is because: the above problem is more significant when the workload has higher overhead in launching GPU kernels, fp16 makes some compute kernels more efficient and makes the workload more kernel launch bound.

@zongweiz Thanks for looking into it. Looking forward to a fix.

@rohan100jain Do you have any updates whether a fix will make it into the 2.4 release?

@rohan100jain @zongweiz @jaingaurav Sorry for pinging you again. Do you have any updates on whether the fix will make it into the 2.4 stable release?

Hey @lgeiger i believe the fix did not make it to 2.4 unfortunately. @rohan100jain @zongweiz @goldiegadde  please correct if that is not the case.

Hey @lgeiger i believe the fix did not make it to 2.4 unfortunately.

Thanks for the response, that's really unfortunate since the regression has been already there since 2.2. But at least we can now upgrade to 2.4 when enabling drop_remainder=True as a workaround until a fix lands.

@guptapriya has there been any progress on this issue? It would be good if a fix would make it into TF 2.5 since in our current workloads running on 4 GPUs we are seeing slowdowns of 30-80% due to this bug compared to TF 2.2 (using XLA makes this regression even more dramatic).

@lgeiger It looks like the last fix that was tried in November did not fix the issue and I don't see any other updates since then. Checking with @rohan100jain , will update when I know more.

Apologies but I tried fixing it last year and that change had to be rolled back / didn't do what we expected to. We'll continue to work on it and get a fix out by 2.5

@rohan100jain Thanks for the update. Let me know when a fix lands and I am can rerun the benchmarks to verify.

I'm sorry we looked into this issue and there isn't really any easy way of fixing this without rolling back a change (https://github.com/tensorflow/tensorflow/commit/f0d0485b0de521ff273c8d91acbb2fbabe57baa7) that enhances dtype coverage of our GPU ops and improves the consistency of Tensorflow in general. This issue has exposed some problems we need to fix with our device placement that we're planning to work on and will have an RFC for it. I'll therefore recommend that you continue to use the drop_remainder=True workaround for now.

Hi,
Thank you for opening this issue. Since this issue has been open for a long time, the code/debug information for this issue may not be relevant with the current state of the code base.
The Tensorflow team is constantly improving the framework by fixing bugs and adding new features. We suggest you try the latest TensorFlow version with the latest compatible hardware configuration which could potentially resolve the issue. If you are still facing the issue, please create a new GitHub issue with your latest findings, with all the debugging information which could help us investigate.
Please follow the release notes to stay up to date with the latest developments which are happening in the Tensorflow space.


Unable to deploy code for pre-requisites

I was working on the deployment and got stuck on step 4:
PS /home/azureuser/ADX-IoT-Analytics-Solution-Accelerator> . ./deploy.sh
ResourceUnavailable: Program 'deploy.sh' failed to run: An error occurred trying to start process '/home/azureuser/ADX-IoT-Analytics-Solution-Accelerator/deploy.sh' with working directory '/home/azureuser/ADX-IoT-Analytics-Solution-Accelerator'. No such file or directoryAt line:1 char:1
+ . ./deploy.sh
+ ~~~~~~~~~~~~~.

Hi @jroh-aa,  are you sure you logged in to the Azure Cross-platform Command Line Interface?
After step 1, you must log in using the prompted URL, even if you're already logged in to Azure portal.
This is the expected output of az login:
guy@Azure:~/ADX-IoT-Analytics-Solution-Accelerator$ az login
Cloud Shell is automatically authenticated under the initial account signed-in with. Run 'az login' only if you need to use a different account
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code  to authenticate
In addition, after step 3 (git clone), could you please run "ls" (to ensure the repository has been cloned with its content)?
This is the expected output:

Please let me know if that helps

We haven't gotten any updates. Closing this PR for now. Let us know if you still need help!


Multi column list

Hi, i'm using Powershell custom objects to hold key/value pairs. Is it possible to display both key and value in a "View", maybe a list?

TableView might work for you? It supports any number of columns and has a full row select mode:

Application.Init ();

var window = new Window ();

Dictionary<string, string> yourKvps = new Dictionary<string, string> ();
yourKvps.Add ("somekey", "somevalue");
yourKvps.Add ("somekey2", "somevalue2");
yourKvps.Add ("somekey3", "somevalue3");

var dt = new DataTable ();
dt.Columns.Add ("Key");
dt.Columns.Add ("Value");

foreach (var kvp in yourKvps) {
	dt.Rows.Add (kvp.Key, kvp.Value);
}

var tv = new TableView ();
tv.FullRowSelect = true;
tv.Table = dt;
tv.Height = Dim.Fill ();
tv.Width = Dim.Fill ();
tv.CellActivated += (s =>
	MessageBox.Query ("Select", $"You picked {dt.Rows [s.Row] ["Key"]}","Ok")
	);

window.Add (tv);
Application.Run (window);

@tznind thank you, that works perfectly!! :)


Text: Support html with whitelisted tags

Fixes: #148

@skvale Thanks for the fix, but we have a defined dev cycle. First, we define requirements and delegate to the dev team. So, we'll work on that when it's planned work.

Closed as we didn't plan work on the ticket yet.


Suggestion - For the Java examples, show that the TimeStreamWriteClient is closable

I created a lambda that writes records to a TimeStream database. I used the examples here as a basis.
My lambda would, under load, throw an EndpointDiscoveryFailedException and somewhere in the stack trace, the following text was in the cause: "unable to create new native thread"
After some poking around, I realized that:

the lambda's runtime instance was being re-used for multiple requests,
the TimeStreamWriteClient is autoclosable and needs to be closed in long running applications that create new instances of the client
I wasn't closing the TimeStreamWriteClient

so, my lambda was running out of resources.
In the examples that I reviewed, in this repository, it appears that NOT closing the client will not cause problems as the application ends. So, it doesn't appear to be a bug.
But, it's a bit sloppy to not close closable resources and people like me use these examples as a basis for their code, so, explicitly closing the client or refactoring to use try with resources, would help neophytes avoid subtle bugs.
And, apologies, if this is not the correct place to offer such suggestions.

I am facing the same issue! How did you close the TimeStreamWriteClient?

@jkbredsquiggles Can you please check if this fix addresses the issue you were observing?


can't install on miui13(android12)

Device: Redmi Note 11 5G

+1

me,too

"unzip error"
The contents of the compressed package are damaged. Please repair the damaged files and repack them.
Corrupt file found:
MagiskGApps-a.12.v.0.1.core.zip

Fixed in v8.3.23. Update now uploading for all versions.
https://magiskgapps.com/download.html?version=android-12-ALPHA


feat: Data sources changes

This PR:

switches default TEST and INT data sources to use cached versions of the endpoint,
adds three new, uncached endpoints to the application (Prod-uncached, Int-uncached, Test-uncached).

@bprusinowski well done 🎉

Thanks @Rdataflow 🎉 Now Abraxas needs to update env variables on TEST and INT to see the changes there, but could already be tested by using the Vercel deployment above :)


BIGTOP-3384. Update smoke test to work with Flink 1.11.1

I confirmed this patch worked on CentOS 8 at least.
The following log is smoke test running log.
[root@8ffef6b6b0f9 bigtop-private2]# cd bigtop-tests/smoke-tests/flink/
[root@8ffef6b6b0f9 flink]# ../../../gradlew test -Psmoke.tests --stacktrace

> Task :bigtop-tests:smoke-tests:flink:test
Now testing...

BUILD SUCCESSFUL in 29s
6 actionable tasks: 6 executed

@okumurays I confirmed that Flink was successfully built and deployed on all target distros with your PR.
I also made sure its smoke tests succeeded on CentOS 8, Debian 9/10, Fedora 31, and Ubuntu 16.04/18.04.
+1, thank you for the contribution!

Oh, I've just noticed this commit broke Zeppelin's build.
https://ci.bigtop.apache.org/job/Bigtop-trunk-packages/629/COMPONENTS=zeppelin,OS=centos-8/console
Maybe I'll revert this if its fix is not so easy, so that we can release 1.5.0 first.

@okumurays and I talked locally and agreed to revert this PR for now and postpone merging it, so that we can prioritize the 1.5.0 release.


cant create event

doing

curl -H "Content-type: application/json" -X POST -d '{"service_key":"MY_OPENDUTY_SERVICE_KEY","event_type":"trigger","description":"test","incident_key":"1234567"}' http://<IP_ADDRESS>:8000/api/create_event

get

{}

You're missing the authorization token.  Here's an example of my curl command that I use in my DEV environment:
curl --insecure -H "Content-type: application/json" -H "Authorization: token thisismysecret" -X POST -d '{"service_key":"b893c504c51c26c720056ed94ec53049b9b9d0a4","event_type":"trigger","description":"test","incident_key":"1234567","details":"Details here"}' http://<IP_ADDRESS>:9080/api/create_event
Note, the service_key is the API Key from the service that I want to send the alert to in OpenDuty.  I only mention that in case you hadn't replaced your service key with the text you included. Also, the token "thisismysecret" is the secret token defined within the settings.py.

found out yesterday, reading your case :) thanks a lot
can we create a service using api ?

Not yet, but that feature will come eventually. Check this for continously added features:  github.com/openduty/openduty

We are facing the same problem here:
curl --insecure -H "Content-type: application/json" -H "Authorization: token mySettingsSecretKey" -X POST -d '{"service_key":" 5b10505a55a41b6fd2664579d5521b6adad8689d","event_type":"trigger","description":"test","incident_key":"1244567","details":"Details here"}' http://<IP_ADDRESS>:8000/api/create_event
{}

" Log: [19/Sep/2017 15:20:48] "POST /api/create_event HTTP/1.1" 403 2

Any hint on what might be wrong. Everything is setup. Service key, Sekret key, users, service... etc

Have you created an escalation policy? I got the same problem when there was no escalation policy connected to the service

and also "Authorization: password_from_settings.py"

Everything is setup correctly. Escalation policy is assigned to the service. But no luck. I am clueless.
The Authorization is the password from settings.py. Yes.

You have used the API key created in the service as service_key ?

Sure.

http://hanine.magic.fr/public/openduty.png

Hmm. This is the curl I'm using and it works.
curl --insecure -H "Content-type: application/json" -H "Authorization: <<secret<<" -X POST -d '{"service_key":"<<apikey<<","event_type":"trigger","description":"test","incident_key":"123425","details":"Details here"}' http://<IP_ADDRESS>:8000/api/create_event

Ok I found the cause. Shame on me :(
It was a typo mistake in the service key.
Look at my earlier command:
curl --insecure -H "Content-type: application/json" -H "Authorization: token mySettingsSecretKey" -X POST -d '{"service_key":" 5b10505a55a41b6fd2664579d5521b6adad8689d","event_type":"trigger","description":"test","incident_key":"1244567","details":"Details here"}' http://<IP_ADDRESS>:8000/api/create_event

There was a blank space before the first character of the service_key: "service_key":" 5b10505a55a41b6fd2664579d5521b6adad8689d"

FIXED NOW :pager:

Thanks @kjetilmjos

That's good news!
I'm having some problems with notifications. Think it has something with the celery task queue to do. Would be interesting to hear if you encounter the same problem. https://github.com/ustream/openduty/issues/90

The Twilio Notification works fine for me. I receive SMS.
The email notification has an issue. It does not work. The task is executed but after 254 seconds, reports an error.  I am going to check shortly again what error it reports.

So you didn't have to do any code changes to the notification part? What OS are you running on?
This is what I had to do to get email working: https://github.com/ustream/openduty/issues/49


"About premium" improvements

This PR addresses the new template changes requested in issue #582. The other changes should have been addressed in PR #586
This is how it looks now for both cases when no subscriptions are found and when there are e.g. 2 subscriptions found.

In both cases there is now a tooltip

stating the number of subscriptions found. This is not exactly what the issue wanted but what I understood was the intention from the conversation we had yesterday.

With the changes @nelsonkopliku is doing, I don't know if we will still have the current IsPremium function. Most probably, we will need to change the backend handler to use the new service, but I'm not sure.
In the other hand, the fronted looks good, but didn't we agree to have an info icon for the tooltip?

Yes, the info icon is probably a good hint for the user that there is a tooltip there, adding it now. About the IsPremium, I'll have a quick chat with @nelsonkopliku Thanks!


Added Typescript declarations for v1.2.0

This adds a Typescript declaration file that provides type checking and Intellisense when consuming amazon-connect-streams via ReactJs/TSX or Angular 2+.

Thanks! I'm starting work on a project with Angular and Streams API and was planning to write something like this myself

@andyhopp Great contribution. I noticed you are from AWS so I would respectfully ask if you know why a great thing like this has not been merged yet (or any other of the 7 PR's for the matter) ?
PS. I ask because I also have potential changes I want to submit but it make no sense to if the repo is no longer maintained

Thanks for this! Would be cool if we could get this on to DefinitelyTyped as well.


High cpu usage with release 1.57 insiders

VS Code Version:
OS Version:

Version: 1.57.0-insider (user setup)
Commit: fe23c2041f848d6c2f6bd27875112a37bcc82f84
Date: 2021-05-06T05:16:25.564Z
Electron: 12.0.4
Chrome: 89.0.4389.114
Node.js: 14.16.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19043

Fan is running constantly and stops right away as soon as vscode shuts down. Didn't do that yesterday.
I'm on Windows 10, working in WSL 2.

Thanks for reporting, could you please follow the steps here: https://github.com/microsoft/vscode/wiki/Performance-Issues to help us in diagnosing this problem?

Hi - sure thing - I tried to submit from the application, but it said I had too much info and was going to open another issue in Github, so I just added the info to this one. I think I got everything, but let me know if I need to add anything.


emit peers that announce themselves

The announcements from other peers can be treated as discovery of those
peers, even if they happen outside of the DHT loop. This is especially
relevant given the timing of the loop iteration (5-10 minutes).
Another motivation could be duplicate detection logic. To prevent
duplicate peers from reconnecting either server or client could mark the
peer with info.reconnect(false) in hyperswarm. For the discovery this
means that only the side with info.reconnect(true) can re-establish
the connection. Detecting re-appearance of the remote peer eagerly
should speed up the connection and avoid long wait times.

As discussed on IRC, there is little point in this change. Closing.


orPrewhere() and Dialect.raw()

I am having a really hard time trying to get the query I am looking for. I have code like this:
  const Dialect = require('clickhouse-sql');

  const sql = Dialect;

  const q = new sql.Select();

  q
    .from('table').select('col1', 'col2', 'col3')
    .prewhere('col1', sql.EQUALS, 1)
    .prewhere('col2', sql.EQUALS, 5)
    .orPrewhere('col2', sql.EQUALS, 10);

Which yields:
select `col1`,`col2`,`col3` from `table`
prewhere ((`col1` = 1) and (`col2` = 5)) or (`col2` = 10) with totals

Note that with totals is present, I don't want that, but also what I really want is:
select `col1`,`col2`,`col3` from `table`
prewhere (`col1` = 1) and ((`col2` = 5) or (`col2` = 10)) with totals

I am not sure how to achieve this. I tried raw as well:
  const q = new sql.Select();

  q
    .from('table').select('col1', 'col2', 'col3')
    .prewhere('col1', sql.EQUALS, 1)
    .prewhere(sql.raw('col2 = 5 OR col2 = 11'));

But that results in an error:
TypeError: Cannot convert object to primitive value
    at /app/node_modules/clickhouse-sql/dist/index.js:138:20
    at Array.map (<anonymous>)
    at Conjunction.toString (/app/node_modules/clickhouse-sql/dist/index.js:137:43)
    at Select.toString (/app/node_modules/clickhouse-sql/dist/index.js:722:63)
    at doSearchTest (/app/lib/api.js:168:12)
    at /app/lib/api.js:189:16
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
    at next (/app/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/app/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)

I think I fixed some things...
https://github.com/mbIkola/node-clickhouse-sql/pull/14
Allows you to use Dialect.raw() in .where() and friends. I am not sure what .raw() was intended for, but I think it would still work for that as well (I did not change the Raw class.)
https://github.com/mbIkola/node-clickhouse-sql/pull/13
This one seems pretty simple, because request_totals defaulted to [] it would always eval to true.
https://github.com/mbIkola/node-clickhouse-sql/pull/12
This is just some syntax sugar. I tried to use the abbreviations at first (but they were undefined). I hate typing and these are pretty "popular" abbreviations.
https://github.com/mbIkola/node-clickhouse-sql/pull/11
This one adds some IP address functions I needed.
https://github.com/mbIkola/node-clickhouse-sql/pull/15
Here I added some datetime functions I need.

I would still like to understand how .orPrewhere() and friends are intended work... IMO, you should be able to pass some conditions:
query.orPrewhere(sql.Condition(...), sql.Condition(...))

And it would simply add ...and (condition1 or condition2) and....
I can make this happen if you like.

As far as I remember correctly - everything above is merged and released.

I can make this happen if you like.
I've updated LICENSE file in this repo. Just fork and do whatever you want :)


Opening the docs makes 2 requests for each endpoint

This issue isn't new I have had it since I started using DRF Swagger. I always wondered if this is a wrong configuration from my side or something else.

As you can see for each endpoint two requests were made, they are identical indeed by looking at the response size.

@mochawich This should be going away in v2 as the spec will be rendered to a single file rather than issuing requests for every single endpoint. Not sure what is causing these duplicates though...

@marcgibbons when will version 2 be released ? I noticed the same thing, i too thought perhaps something to do with the way i configured swagger.

@marcgibbons thank you!
looking forward v2. Closing this for now


Middle buttons scroll in Chorme does not trigger infinite event

Hi,
when using the middle button scroll in Chrome or just scroll really quickly, the infinite event is not triggered.
In attached gif - first normal scroll is used (works fine), then middle button scroll is used (doesn't work), then when I scroll up a bit, infinite event is triggered.

Jsfiddle to reproduce: https://jsfiddle.net/phoenixcz/81q6bmLh/35/
Thanks for any tips on how to make this work.
Version
Vue-infinite-loading: 2.3.2
Chrome: 68.0.3440.106

@phoenixcz it looks like the throttle feature does not work correctly in the v2.3.3, you can try the latest version v2.3.3, if this problem still exists, please comment here, thanks!

It seems issue is resolved with latest update. Thanks.


Fix NuML file import in biopredyn.result.Result.import_from_numl

= Description =

Fix the current implementation of biopredyn.result.Result.import_from_numl in result.py module.

= Context =

The expected structure of imported NuML files recently changed due to the integration of biopredyn.task.RepeatedTask; biopredyn.result.Result.import_from_numl was not updated, and is not functional.

= Success criteria =

NuML files which structure follows the new template ca be opened.

= Expected issues =

None.

Imported from trac issue 33.  Created by bmoreau on 2014-06-10T11:02:43, last modified: 2014-09-25T17:27:14


Investigate VTK8 patches for VTK 9 (vtkOpenglSphereMapper, vtkOpenFoamReader)

There were patches for the vtkOpenGLSphereMapper and vtkOpenFoamReader classes with VTK 8.
The code base changed significantly enough it couldn't be easily determined if a patch was still needed.
These should be investigated, and new patches created if needed.

[ ] vtkOpenGLSphereMapper
[ ] vtkOpenFOAMReader

vtkOpenGLSphereMapper : seems to not need a patch with 9.2.6.
When rendering point meshes whose coordinates are very large or very small, and using the 'Sphere' glyph type (sphere imposters), the PointSize must match the scale of the coordinates. An Auto point size would be helpful in these instances. See #18818

vtkOpenFOAMReader patches not needed. We have our own. They need updating, however. Will open a new ticket for that.


Support scanner APIs as well - (e.g. Kiuwan API)

TF does not provide us all the info we need (like scan labels, file paths, CVEs etc). Fetching Scanner APIs directly provide way better info.
We need a good unified data structure:
apps -> scans -> findings
app: name
scan: importTime, scannerName and findings, branch? repo path?
finding: id (unique!), cve (optional), addidional info...
Idea: count all the different repo paths and branches:
branches: feat/X, main, fix/1
repos scanned: path/1, path/2 ...

Now possible to fetch data from kiuwan. Need to work on the display reqs now.


Add app to F-Droid

https://f-droid.org/contribute/
Hello,
F-Droid is an app store for only F/OSS apps for android. Would you consider uploading the app to their app store so non-gapps users can get updates?

Hi, I am not currently uploading this project into other app stores. You can always fork the source code and rebuild. So, you can upload anywhere yourself.


Integration Test - Release - 2020/08/10 23:19:56

Auto create for integration test. AnotherAuthorUpdatedArticleFlow

@PRMergerTest2 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


https image urls if accessed over SSL

Tentative fix for #8372. I'm not familiar with this codebase so I don't know the rationale behind the current code nor whether this change would be enough, but hopefully will point to the right direction.

Our blog had optional https but http by default, so it was configured with an http base url. The https version of the rss feed was returning http links for images as the current code only checks the image path for https, ignoring that the actual connection may be https. This PR fixes it.


Chroma in LangChain

Chroma is a simple to use, open-source, zero-config, zero setup vectorstore.
Simply pip install chromadb, and you're good to go.
Out-of-the-box Chroma is suitable for most LangChain workloads, but is highly flexible. I tested to 1M embs on my M1 mac, with out issues and reasonably fast query times.
Look out for future releases as we integrate more Chroma features with LangChain!

how to use the langchain Chroma wrapper with remote self-hosted Chroma client (didn't find any resources) - there's only Chroma.from_texts/.from_documents


Embedding thumbnail to mp3 causes a error of file not found.

Checklist

[ ] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2021.12.17
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

Enter youtube link here
: https://youtu.be/EmuBOfurv3o
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.9.7 (CPython) - Windows-10-10.0.19045-SP0
[debug] exe versions: ffmpeg N-55702-g920046a, ffprobe N-55702-g920046a
[debug] Proxy map: {}
[youtube] EmuBOfurv3o: Downloading webpage
[youtube] EmuBOfurv3o: Downloading thumbnail ...
[youtube] EmuBOfurv3o: Writing thumbnail to: C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webp
[debug] Invoking downloader on 'https://rr3---sn-8pgbpohxqp5-auoz.googlevideo.com/videoplayback?expire=1673060111&ei=r4q4Y7XKFpL6WZHhiogJ&ip=<IP_ADDRESS>&id=o-ABJG1zZD9xhRDoI0mygZaA-sn8GKrAXQCfedDAIETFW1&itag=251&source=youtube&requiressl=yes&mh=Hl&mm=31%2C29&mn=sn-8pgbpohxqp5-auoz%2Csn-aigzrnld&ms=au%2Crdu&mv=m&mvi=3&pl=24&gcr=gb&initcwndbps=1452500&vprv=1&mime=audio%2Fwebm&ns=d2TFtsH5f29GfvewFyI1bsYK&gir=yes&clen=3652610&dur=218.881&lmt=1591477016463657&mt=1673038191&fvip=2&keepalive=yes&fexp=24007246&c=WEB&txp=5531432&n=TzRconJyS9f2typNK&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhAJVxiFfSM06d1_ZYmKMk6jhglWpU9-0YH_kltRReOQYcAiEA0VDOLjdBtxCK37s53cgcwHcP8-6U7UOmKJLWNIezNuc%3D&sig=AOq0QJ8wRAIgRJWXXrTtel1uWPH1zK0jIr5-zvgmAlgVaQVIj2VH7loCIEOVpuTSB_t2UQabcAHc3HT7uUPTs557ZZxfrgwh-MPk'
[download] Destination: C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webm

[download]   0.0% of 3.48MiB at  5.98KiB/s ETA 09:56
[download]   0.1% of 3.48MiB at 16.76KiB/s ETA 03:32
[download]   0.2% of 3.48MiB at 38.90KiB/s ETA 01:31
[download]   0.4% of 3.48MiB at 82.44KiB/s ETA 00:43
[download]   0.9% of 3.48MiB at 65.26KiB/s ETA 00:54
[download]   1.8% of 3.48MiB at 57.15KiB/s ETA 01:01
[download]   3.2% of 3.48MiB at 48.38KiB/s ETA 01:11
[download]   4.3% of 3.48MiB at 52.48KiB/s ETA 01:05
[download]   6.3% of 3.48MiB at 53.38KiB/s ETA 01:02
[download]   7.8% of 3.48MiB at 51.38KiB/s ETA 01:03
[download]   9.1% of 3.48MiB at 50.83KiB/s ETA 01:03
[download]  10.4% of 3.48MiB at 50.84KiB/s ETA 01:02
[download]  11.8% of 3.48MiB at 51.41KiB/s ETA 01:01
[download]  13.4% of 3.48MiB at 52.27KiB/s ETA 00:59
[download]  15.1% of 3.48MiB at 51.78KiB/s ETA 00:58
[download]  16.4% of 3.48MiB at 51.70KiB/s ETA 00:57
[download]  17.9% of 3.48MiB at 52.03KiB/s ETA 00:56
[download]  19.4% of 3.48MiB at 51.44KiB/s ETA 00:55
[download]  20.7% of 3.48MiB at 51.24KiB/s ETA 00:55
[download]  22.1% of 3.48MiB at 51.28KiB/s ETA 00:54
[download]  23.5% of 3.48MiB at 51.60KiB/s ETA 00:52
[download]  25.1% of 3.48MiB at 52.10KiB/s ETA 00:51
[download]  26.8% of 3.48MiB at 51.89KiB/s ETA 00:50
[download]  28.2% of 3.48MiB at 51.92KiB/s ETA 00:49
[download]  29.7% of 3.48MiB at 51.34KiB/s ETA 00:48
[download]  30.9% of 3.48MiB at 51.87KiB/s ETA 00:47
[download]  32.8% of 3.48MiB at 51.42KiB/s ETA 00:46
[download]  34.1% of 3.48MiB at 51.95KiB/s ETA 00:45
[download]  36.1% of 3.48MiB at 51.58KiB/s ETA 00:44
[download]  37.4% of 3.48MiB at 51.49KiB/s ETA 00:43
[download]  38.7% of 3.48MiB at 51.52KiB/s ETA 00:42
[download]  40.2% of 3.48MiB at 51.71KiB/s ETA 00:41
[download]  41.8% of 3.48MiB at 51.49KiB/s ETA 00:40
[download]  43.1% of 3.48MiB at 51.42KiB/s ETA 00:39
[download]  44.5% of 3.48MiB at 51.46KiB/s ETA 00:38
[download]  46.0% of 3.48MiB at 51.65KiB/s ETA 00:37
[download]  47.6% of 3.48MiB at 51.47KiB/s ETA 00:36
[download]  48.9% of 3.48MiB at 51.36KiB/s ETA 00:35
[download]  50.3% of 3.48MiB at 51.36KiB/s ETA 00:34
[download]  51.7% of 3.48MiB at 51.49KiB/s ETA 00:33
[download]  53.3% of 3.48MiB at 51.71KiB/s ETA 00:32
[download]  55.0% of 3.48MiB at 51.60KiB/s ETA 00:31
[download]  56.3% of 3.48MiB at 51.60KiB/s ETA 00:30
[download]  57.8% of 3.48MiB at 51.72KiB/s ETA 00:29
[download]  59.4% of 3.48MiB at 51.54KiB/s ETA 00:28
[download]  60.6% of 3.48MiB at 51.49KiB/s ETA 00:27
[download]  62.0% of 3.48MiB at 51.50KiB/s ETA 00:26
[download]  63.5% of 3.48MiB at 51.59KiB/s ETA 00:25
[download]  65.0% of 3.48MiB at 51.79KiB/s ETA 00:24
[download]  66.8% of 3.48MiB at 51.72KiB/s ETA 00:22
[download]  68.1% of 3.48MiB at 51.74KiB/s ETA 00:21
[download]  69.6% of 3.48MiB at 51.51KiB/s ETA 00:21
[download]  70.8% of 3.48MiB at 51.74KiB/s ETA 00:20
[download]  72.8% of 3.48MiB at 51.51KiB/s ETA 00:18
[download]  74.0% of 3.48MiB at 51.47KiB/s ETA 00:18
[download]  75.4% of 3.48MiB at 51.49KiB/s ETA 00:17
[download]  76.9% of 3.48MiB at 51.57KiB/s ETA 00:15
[download]  78.5% of 3.48MiB at 51.74KiB/s ETA 00:14
[download]  80.2% of 3.48MiB at 51.70KiB/s ETA 00:13
[download]  81.6% of 3.48MiB at 51.72KiB/s ETA 00:12
[download]  83.1% of 3.48MiB at 51.52KiB/s ETA 00:11
[download]  84.3% of 3.48MiB at 51.70KiB/s ETA 00:10
[download]  86.2% of 3.48MiB at 51.49KiB/s ETA 00:09
[download]  87.4% of 3.48MiB at 51.70KiB/s ETA 00:08
[download]  89.4% of 3.48MiB at 51.57KiB/s ETA 00:07
[download]  90.7% of 3.48MiB at 51.54KiB/s ETA 00:06
[download]  92.1% of 3.48MiB at 51.57KiB/s ETA 00:05
[download]  93.6% of 3.48MiB at 51.66KiB/s ETA 00:04
[download]  95.2% of 3.48MiB at 51.56KiB/s ETA 00:03
[download]  96.5% of 3.48MiB at 51.53KiB/s ETA 00:02
[download]  97.9% of 3.48MiB at 51.55KiB/s ETA 00:01
[download]  99.4% of 3.48MiB at 51.61KiB/s ETA 00:00
[download] 100.0% of 3.48MiB at 51.71KiB/s ETA 00:00
[download] 100% of 3.48MiB in 01:09
[debug] ffmpeg command line: ffprobe -show_streams "file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webm"
[ffmpeg] Destination: C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).mp3
[debug] ffmpeg command line: ffmpeg -y -loglevel "repeat+info" -i "file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webm" -vn -acodec libmp3lame "-b:a" 192k "file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).mp3"
Deleting original file C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webm (pass -k to keep)
[ffmpeg] Converting thumbnail "C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webp" to JPEG
[debug] ffmpeg command line: ffmpeg -y -loglevel "repeat+info" -i "file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webp" "-bsf:v" mjpeg2jpeg "file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).jpg"
[debug] ffmpeg version N-55702-g920046a Copyright (c) 2000-2013 the FFmpeg developers

  built on Aug 21 2013 18:10:00 with gcc 4.7.3 (GCC)

  configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib

  libavutil      52. 42.100 / 52. 42.100

  libavcodec     55. 29.100 / 55. 29.100

  libavformat    55. 14.101 / 55. 14.101

  libavdevice    55.  3.100 / 55.  3.100

  libavfilter     3. 82.100 /  3. 82.100

  libswscale      2.  5.100 /  2.  5.100

  libswresample   0. 17.103 /  0. 17.103

  libpostproc    52.  3.100 / 52.  3.100

[image2 @<PHONE_NUMBER>6ecc80] Could find no file with path 'file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webp' and index in the range 0-4

ERROR: file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webp: No such file or directory
Traceback (most recent call last):
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 2115, in post_process
    files_to_delete, info = pp.run(info)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\postprocessor\embedthumbnail.py", line 70, in run
    self.run_ffmpeg(escaped_thumbnail_filename, escaped_thumbnail_jpg_filename, ['-bsf:v', 'mjpeg2jpeg'])
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\postprocessor\ffmpeg.py", line 242, in run_ffmpeg
    self.run_ffmpeg_multiple_files([path], out_path, opts)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\postprocessor\ffmpeg.py", line 238, in run_ffmpeg_multiple_files
    raise FFmpegPostProcessorError(msg)
youtube_dl.postprocessor.ffmpeg.FFmpegPostProcessorError: file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webp: No such file or directory

Traceback (most recent call last):
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 2115, in post_process
    files_to_delete, info = pp.run(info)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\postprocessor\embedthumbnail.py", line 70, in run
    self.run_ffmpeg(escaped_thumbnail_filename, escaped_thumbnail_jpg_filename, ['-bsf:v', 'mjpeg2jpeg'])
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\postprocessor\ffmpeg.py", line 242, in run_ffmpeg
    self.run_ffmpeg_multiple_files([path], out_path, opts)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\postprocessor\ffmpeg.py", line 238, in run_ffmpeg_multiple_files
    raise FFmpegPostProcessorError(msg)
youtube_dl.postprocessor.ffmpeg.FFmpegPostProcessorError: file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webp: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Tayga\Desktop\videos\download videos.py", line 26, in <module>
    ydl.download([video])
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 2068, in download
    res = self.extract_info(
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 808, in extract_info
    return self.__extract_info(url, ie, download, extra_info, process)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 847, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 881, in process_ie_result
    return self.process_video_result(ie_result, download=download)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 1692, in process_video_result
    self.process_info(new_info)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 2050, in process_info
    self.post_process(filename, info_dict)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 2117, in post_process
    self.report_error(e.msg)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 628, in report_error
    self.trouble(error_message, tb)
  File "C:\Users\Tayga\AppData\Local\Programs\Python\Python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 598, in trouble
    raise DownloadError(message, exc_info)
youtube_dl.utils.DownloadError: ERROR: file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webp: No such file or directory

Description

A exception is raised when embedding the video thumbnail to the mp3 file,
The program is unable to find the file despite the fact the file exists in the correct directory,
The problem hasn't occurred when working on another computer with Windows 11 but occurs here on Windows 10
both computers have the same dependencies and running the same version of python
I am not sure what has caused this bug and I am unable to propose a solution due to this

Please show the actual yt-dl command that you ran.
However this error seems familiar. I thought it might be a yt-dl version of yt-dlp#4604, but no, though it appears related.
This ffmpeg command is being run and giving this error:
ffmpeg -y -loglevel "repeat+info" -i "file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webp" "-bsf:v" mjpeg2jpeg "file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).jpg"
[image2 @<PHONE_NUMBER>6ecc80] Could find no file with path 'file:C:\Users\Tayga\Desktop\videos\Tusk (2018 Remaster).webp' and index in the range 0-4

I think that this is what is happening...

The code from PR #25717 is trying to convert some possible image sequence format to a JPG.
It uses the mjpeg2jpeg codec with the -bsf:v option to fix the JPG encoding.
As the input file is a single frame WEBP image, the image2 demuxer is implicitly used to get the image data from the input file.
Some change in ffmpeg (>4.3) causes image2 to look for an image sequence by default when its output is connected to the mjpeg2jpeg codec.
yt-dl should be adding -pattern_type none to the image2 parameters.

I don't have a new enough version of ffmpeg to trigger the issue but the fix appears to work with my older version (ie, behaviour doesn't change when adding the new parameters):
$ ffmpeg -f image2 -pattern_type none -i 'Nærøyfjorden.webp' '-bsf:v' mjpeg2jpeg 'Nærøyfjorden.jpg'
ffmpeg version 4.3-2ubuntu0~ppa16.04+8 Copyright (c) 2000-2020 the FFmpeg developers
...
Input #0, image2, from 'Nærøyfjorden.webp':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: webp, yuv420p(tv, bt470bg/unknown/unknown), 550x368, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (webp (native) -> mjpeg (native))
...
Output #0, image2, to 'Nærøyfjorden.jpg':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0: Video: mjpeg, yuvj420p(pc), 550x368, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.91.100 mjpeg
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame=    1 fps=0.0 q=4.9 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=2.38x
video:33kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
$

The test WEBP image is the first one on the G developer site for WEBP.
In order to pass the -pattern_type I had to make image2 an explicit demuxer, which might break some other thumbnail formats that yt-dl, with older ffmpeg, currently handles OK. Maybe we can just add -update 1 to the output options instead.
The difference between your Windows systems is likely to be different ffmpeg versions. The logged version is a development build and may be newer than the version on the machine where the problem doesn't occur. Please also show the output of ffmpeg -version on that system.

Here is the output to ffmpeg -version
ffmpeg version N-55702-g920046a
built on Aug 21 2013 18:10:00 with gcc 4.7.3 (GCC)
configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil      52. 42.100 / 52. 42.100
libavcodec     55. 29.100 / 55. 29.100
libavformat    55. 14.101 / 55. 14.101
libavdevice    55.  3.100 / 55.  3.100
libavfilter     3. 82.100 /  3. 82.100
libswscale      2.  5.100 /  2.  5.100
libswresample   0. 17.103 /  0. 17.103
libpostproc    52.  3.100 / 52.  3.100

Below is the code involved in running the program:
from __future__ import unicode_literals
import youtube_dl
import os

video = input("Enter youtube link here\n: ")

ydl_opts = {
    'verbose': True,
    'writethumbnail': True,
    'outtmpl': f'{os.getcwd()}/%(title)s.%(ext)s',
    'format': 'bestaudio/best',
    'postprocessors': [
        {'key': 'FFmpegExtractAudio',
         'preferredcodec': 'mp3',
         'preferredquality': '192'},
        {'key': 'EmbedThumbnail',},]}

with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download([video])

N-55702-g920046a is the ffmpeg version in your problem log. Just to confirm, that is the same on the Win 11 machine where you don't get the problem?
This is what happens with the git master on my machine (the thumbnail code is the same), and ffmpeg 4.3:
$ python3
Python 3.5.2 (default, Dec  1 2022, 11:14:24)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import youtube_dl

>>> ydl_opts = {
...     'verbose': True,
...     'writethumbnail': True,
...     'outtmpl': '%(title)s.%(ext)s',
...     'format': 'bestaudio/best',
...     'postprocessors': [{
...         'key': 'FFmpegExtractAudio',
...         'preferredcodec': 'mp3',
...         'preferredquality': '192'
...     }, {'key': 'EmbedThumbnail',},
...     ]
... }
>>> with youtube_dl.YoutubeDL(ydl_opts) as ydl:
...     ydl.download(['gdZLi9oWNZg'])
...
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Git HEAD: 774b346f9
[debug] Python version 3.5.2 (CPython) - Linux-4.4.0-210-generic-i686-with-Ubuntu-16.04-xenial
[debug] exe versions: avconv 4.3, avprobe 4.3, ffmpeg 4.3, ffprobe 4.3
[debug] Proxy map: {}
[youtube] gdZLi9oWNZg: Downloading webpage
[debug] [youtube] Decrypted nsig MYwlgErBSIqWbuUyF => M0_RTOAWx5uSTA
[debug] [youtube] Decrypted nsig pJ07oijQzEmRciNJE => QBA0Jrw2s8qTPg
[youtube] gdZLi9oWNZg: Downloading thumbnail ...
[youtube] gdZLi9oWNZg: Writing thumbnail to: BTS (방탄소년단) 'Dynamite' Official MV.webp
[debug] Invoking downloader on 'https://rr2---sn-cu-aigss.googlevideo.com/videoplayback?fexp=24007246&mm=31%2C29&id=o-ACMt9fcvEwO7JdYiQoGgnFQxHSr0IgI1fx_B-BwHC_WN&mh=LC&mvi=2&dur=223.381&ei=e1y5Y7qqOZmxxN8PtL2NuA0&ns=yOw4JojIt8EIiwpHQGEGGwYK&mt=1673091933&sig=AOq0QJ8wRAIgG2vZFOJQHX7BfHH1Y-TVN3pICs-o9DKTyxcPzZWqB-YCIBeQHTJJUGI3WcZPQ1JP5Q-k62aOQd5lOCpLYF70PXCy&keepalive=yes&itag=251&lsig=AG3C_xAwRgIhANhgS1OgVn_tAR0WDmQYDP1139ikpK0RS-pvxwLP3O5XAiEA6bxHAD_3vrhZR9VGAGfPOxnM4-n2QmhADZJGladbfBE%3D&n=M0_RTOAWx5uSTA&clen=3730537&mv=m&vprv=1&c=WEB&mn=sn-cu-aigss%2Csn-cu-c9id&requiressl=yes&expire=1673113820&ip=<IP_ADDRESS>&gir=yes&ms=au%2Crdu&fvip=5&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&source=youtube&pl=25&mime=audio%2Fwebm&initcwndbps=1582500&txp=4532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&lmt=1653149808559966'
[download] Destination: BTS (방탄소년단) 'Dynamite' Official MV.webm
[download] 100% of 3.56MiB in 00:04
[debug] ffmpeg command line: ffprobe -show_streams 'file:BTS (방탄소년단) '"'"'Dynamite'"'"' Official MV.webm'
[ffmpeg] Destination: BTS (방탄소년단) 'Dynamite' Official MV.mp3
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:BTS (방탄소년단) '"'"'Dynamite'"'"' Official MV.webm' -vn -acodec libmp3lame -b:a 192k 'file:BTS (방탄소년단) '"'"'Dynamite'"'"' Official MV.mp3'
Deleting original file BTS (방탄소년단) 'Dynamite' Official MV.webm (pass -k to keep)
[ffmpeg] Converting thumbnail "BTS (방탄소년단) 'Dynamite' Official MV.webp" to JPEG
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:BTS (방탄소년단) '"'"'Dynamite'"'"' Official MV.webp' -bsf:v mjpeg2jpeg 'file:BTS (방탄소년단) '"'"'Dynamite'"'"' Official MV.jpg'
[ffmpeg] Adding thumbnail to "BTS (방탄소년단) 'Dynamite' Official MV.mp3"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:BTS (방탄소년단) '"'"'Dynamite'"'"' Official MV.mp3' -i 'file:BTS (방탄소년단) '"'"'Dynamite'"'"' Official MV.jpg' -c copy -map 0 -map 1 -metadata:s:v 'title="Album cover"' -metadata:s:v 'comment="Cover (Front)"' 'file:BTS (방탄소년단) '"'"'Dynamite'"'"' Official MV.temp.mp3'
0
>>>

The windows 11 machine has ffmpeg 5.1.2 on it.
how woul i go about installing a specific version of ffmpeg using chocolately as using --version still causes the computer to install the lastest version

If you have a known version of ffmpeg that you would like to use rather than whatever is in your %PATH%, use the --ffmpg-location ... option (or its API equivalent ffmpeg_location).
I expect that Chocolatey has some way of forcing a particular version but I don't use it myself.

I've now removed the version of ffmpeg an have installed 4.3,
the log is similar to the one you have shown earlier
while the FileNotFound error has stopped the resulting mp3 file does not have the thumbnail embedded when I go to preview it
I've tried this with 5.1.2 as well with the same results

The test for which I posted the log above creates a file BTS (방탄소년단) 'Dynamite' Official MV.mp3 containing a JPEG cover art item, as in this MediaInfo output:
General
Complete name                            : BTS (방탄소년단) 'Dynamite' Official MV.mp3
Format                                   : MPEG Audio
File size                                : 5.15 MiB
Duration                                 : 3mn 43s
Overall bit rate mode                    : Constant
Overall bit rate                         : 192 Kbps
Writing library                          : LAME3.100
Cover                                    : Yes
Cover description                        : "Album cover"
Cover MIME                               : image/jpeg

Audio
Format                                   : MPEG Audio
Format version                           : Version 1
Format profile                           : Layer 3
Mode                                     : Joint stereo
Mode extension                           : MS Stereo
Duration                                 : 3mn 43s
Bit rate mode                            : Constant
Bit rate                                 : 192 Kbps
Channel(s)                               : 2 channels
Sampling rate                            : 48.0 KHz
Compression mode                         : Lossy
Stream size                              : 5.11 MiB (99%)
Writing library                          : LAME3.100

A picture of some random K-Pop Backstreet Boys revivalists is shown when playing the MP3 in mpv.

If you can still run the problem version of ffmpeg, it would be very helpful to run this test.

Download the test WEBP image as aaa.webp (or some other name that doesn't match any existing WEBP or JPEG image in the directory). It should show a Nordic landscape.
Try these commands:

ffmpeg -f image2 -pattern_type -i aaa.webp -bsf:v mjpeg2jpeg aaa_1.jpg
ffmpeg -i aaa.webp -bsf:v mjpeg2jpeg -update 1 aaa_2.jpg

for the first line I receive this:
Desktop>ffmpeg -f image2 -pattern_type -i aaa.webp -bsf:v mjpeg2jpeg aaa_1.jpg
ffmpeg version N-55702-g920046a Copyright (c) 2000-2013 the FFmpeg developers
  built on Aug 21 2013 18:10:00 with gcc 4.7.3 (GCC)
  configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 42.100 / 52. 42.100
  libavcodec     55. 29.100 / 55. 29.100
  libavformat    55. 14.101 / 55. 14.101
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 82.100 /  3. 82.100
  libswscale      2.  5.100 /  2.  5.100
  libswresample   0. 17.103 /  0. 17.103
  libpostproc    52.  3.100 / 52.  3.100
File 'aaa.webp' already exists. Overwrite ? [y/N] y
Output #0, image2, to 'aaa.webp':
Output file #0 does not contain any stream

the second command did create a file called aaa_2.jpg which contains the nordic landscape
the output was this
Desktop>ffmpeg -i aaa.webp -bsf:v mjpeg2jpeg -update 1 aaa_2.jpg
ffmpeg version N-55702-g920046a Copyright (c) 2000-2013 the FFmpeg developers
  built on Aug 21 2013 18:10:00 with gcc 4.7.3 (GCC)
  configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 42.100 / 52. 42.100
  libavcodec     55. 29.100 / 55. 29.100
  libavformat    55. 14.101 / 55. 14.101
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 82.100 /  3. 82.100
  libswscale      2.  5.100 /  2.  5.100
  libswresample   0. 17.103 /  0. 17.103
  libpostproc    52.  3.100 / 52.  3.100
Input #0, image2, from 'aaa.webp':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: webp, yuv420p, 550x368, 25 tbr, 25 tbn, 25 tbc
[swscaler @<PHONE_NUMBER>656260] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to 'aaa_2.jpg':
  Metadata:
    encoder         : Lavf55.14.101
    Stream #0:0: Video: mjpeg, yuvj420p, 550x368, q=2-31, 200 kb/s, 90k tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (webp -> mjpeg)
Press [q] to stop, [?] for help
[mjpeg @<PHONE_NUMBER>667f80] input is not MJPEG/AVI1
Failed to open bitstream filter mjpeg2jpeg for stream 0 with codec mjpeg: Invalid data found when processing input
frame=    1 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
video:34kB audio:0kB subtitle:0 global headers:0kB muxing overhead -100.062528%

Excellent, thanks. I'll investigate adding -update 1 for all ffmpeg versions. The yt-dlp issue shows that it ought to be supported way back, to 2.8.
In principle we probably ought not to run the mjpeg2jpeg filter unless the image type is suitable, but that hasn't been a problem so far.

@dirkf
Can you explain why the mp3 downloaded with youtube-dl doesn't show the thumbnail in explorer, while the one downloaded with yt-dlp does.
Both show "Cover" in MediaInfo.

This is on Windows10 with the most recent Ffmpeg.
On Linux the thumbnail is shown in both cases.

On Linux the thumbnail is shown in both cases.

What, after copying to the Windows test machine? That's the acid test.
The postprocessor code has evolved somewhat in yt-dlp. It's possible that there's some subtle difference in the ffmpeg command lines used for the embedding, and/or for the MP3 extraction, such that the yt-dlp result matches Win10 Explorer's understanding of MP3 cover art better. Use --verbose to show the ffmpeg command lines.
Windows versions may differ. In the olden days there was a separate shell extension that could be inspected separately but who knows what's going on in the too-bad-for-open-source Windows code.

On Linux the thumbnail is shown in both cases.

What, after copying to the Windows test machine? That's the acid test.

I downloaded it on the Windows VM, but the same one downloaded from my Linux Mint Mate system also didn't show the thumbnail, when copied to the Windows VM.
ytd -v -f bestaudio -x --audio-format mp3 --add-metadata --embed-thumbnail --audio-quality 0 EmuBOfurv3o
[debug] System config: []
[debug] User config: ['-i', '-o', '/dev/shm/test-ytd/%(title)s.%(ext)s', '-f', 'bestvideo[height<=1080][ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best', '--no-mtime', '--add-metadata', '--embed-thumbnail', '--force-ipv4', '--external-downloader', 'aria2c', '--external-downloader-args', '-x 10 -s 10 -j 10 -k 1M --log-level=info --file-allocation=none']
[debug] Custom config: []
[debug] Command-line args: ['-v', '-f', 'bestaudio', '-x', '--audio-format', 'mp3', '--add-metadata', '--embed-thumbnail', '--audio-quality', '0', 'EmuBOfurv3o']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2022.11.13
[debug] Python version 3.8.10 (CPython) - Linux-5.4.0-136-generic-x86_64-with-glibc2.29
[debug] exe versions: ffmpeg N-109468-gd39b34123d-Nico-20221230, ffprobe N-109468-gd39b34123d-Nico-20221230, phantomjs 2.1.1, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] EmuBOfurv3o: Downloading webpage
[debug] [youtube] Decrypted nsig GsVlz4RsTGGjmpwP => m9gOz-l0Y7dUFA
[debug] [youtube] Decrypted nsig HorEBoGt335RsoH8 => nkbEboHdHEVCYQ
[youtube] EmuBOfurv3o: Downloading thumbnail ...
[youtube] EmuBOfurv3o: Writing thumbnail to: /dev/shm/test-ytd/Tusk (2018 Remaster).webp
[debug] Invoking downloader on 'https://rr2---sn-5hne6n6e.googlevideo.com/videoplayback?expire=1673457798&ei=Jpy-Y7W2C4ix1gK9-ZToDg&ip=<redacted>&id=o-AMn7ra_jQBBstAtHk-tybVyezVogrARotC2nfj4I8K6w&itag=251&source=youtube&requiressl=yes&mh=Hl&mm=31%2C26&mn=sn-5hne6n6e%2Csn-4g5ednss&ms=au%2Conr&mv=m&mvi=2&pl=20&gcr=nl&initcwndbps=2325000&vprv=1&mime=audio%2Fwebm&ns=aCy_ixdJAIk0-0aSiIB8jLsK&gir=yes&clen=3652610&dur=218.881&lmt=1591477016463657&mt=1673435835&fvip=2&keepalive=yes&fexp=24007246&c=WEB&txp=5531432&n=m9gOz-l0Y7dUFA&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIgbfqsrDe3ZGl-0OykhMql5uS9MnVywD83vFWprik1EecCIQCUL_kfiUdONtzLBq94ATHredrYWXDjtZKLHc7cFANetQ%3D%3D&sig=AOq0QJ8wRQIgBmIQpFiIzCy_THEkJSM9J7CLfe8wiMNWlXwzeZq7nRECIQCJteu9kaGScU0kZn3D-yy3RZzwqz_q5h5DcG66FwYmgQ%3D%3D'
[download] Destination: /dev/shm/test-ytd/Tusk (2018 Remaster).webm
[debug] aria2c command line: aria2c -c -x 10 -s 10 -j 10 -k 1M --log-level=info --file-allocation=none --dir /dev/shm/test-ytd --out 'Tusk (2018 Remaster).webm.part' --header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.1 Safari/537.36' --header 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Encoding: gzip, deflate' --header 'Accept-Language: en-us,en;q=0.5' --interface <IP_ADDRESS> --check-certificate=true --remote-time=false -- 'https://rr2---sn-5hne6n6e.googlevideo.com/videoplayback?expire=1673457798&ei=Jpy-Y7W2C4ix1gK9-ZToDg&ip=<redacted>&id=o-AMn7ra_jQBBstAtHk-tybVyezVogrARotC2nfj4I8K6w&itag=251&source=youtube&requiressl=yes&mh=Hl&mm=31%2C26&mn=sn-5hne6n6e%2Csn-4g5ednss&ms=au%2Conr&mv=m&mvi=2&pl=20&gcr=nl&initcwndbps=2325000&vprv=1&mime=audio%2Fwebm&ns=aCy_ixdJAIk0-0aSiIB8jLsK&gir=yes&clen=3652610&dur=218.881&lmt=1591477016463657&mt=1673435835&fvip=2&keepalive=yes&fexp=24007246&c=WEB&txp=5531432&n=m9gOz-l0Y7dUFA&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIgbfqsrDe3ZGl-0OykhMql5uS9MnVywD83vFWprik1EecCIQCUL_kfiUdONtzLBq94ATHredrYWXDjtZKLHc7cFANetQ%3D%3D&sig=AOq0QJ8wRQIgBmIQpFiIzCy_THEkJSM9J7CLfe8wiMNWlXwzeZq7nRECIQCJteu9kaGScU0kZn3D-yy3RZzwqz_q5h5DcG66FwYmgQ%3D%3D'

01/11 12:23:20 [NOTICE] Downloading 1 item(s)
[#feddab 2.7MiB/3.4MiB(80%) CN:1 DL:286KiB ETA:2s]
01/11 12:23:30 [NOTICE] Download complete: /dev/shm/test-ytd/Tusk (2018 Remaster).webm.part

Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
feddab|OK  |   351KiB/s|/dev/shm/test-ytd/Tusk (2018 Remaster).webm.part

Status Legend:
(OK):download completed.
[aria2c] Downloaded 3652610 bytes
[download] 100% of 3.48MiB in 00:10
[debug] ffmpeg command line: ffprobe -show_streams 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).webm'
[ffmpeg] Destination: /dev/shm/test-ytd/Tusk (2018 Remaster).mp3
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).webm' -vn -acodec libmp3lame -q:a 0 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).mp3'
Deleting original file /dev/shm/test-ytd/Tusk (2018 Remaster).webm (pass -k to keep)
[ffmpeg] Adding metadata to '/dev/shm/test-ytd/Tusk (2018 Remaster).mp3'
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).mp3' -c copy -metadata 'title=Tusk (2018 Remaster)' -metadata date=20181115 -metadata 'description=Provided to YouTube by Rhino/Warner Records

Tusk (2018 Remaster) · Fleetwood Mac

50 Years - Don'"'"'t Stop

℗ 1979 Warner Records Inc. 2018 Remastered Rhino Entertainment

Engineer: Barry Goldberg
Additional  Guitar: Brett Tuggle
Additional  Keyboards: Brett Tuggle
Backing  Vocals: Brett Tuggle
Unknown: Charlie Bouis
Unknown: Dr. Arthur C. Bartner
Unknown: Elliot Scheiner
Engineer: Elliot Scheiner
Producer: Elliot Scheiner
Unknown: Guy Charboneau
Bass  Guitar: John McVie
Unknown: John Nelson
Additional  Percussion: Lenny Castro
Guitar, Producer, Vocals: Lindsey Buckingham
Drums, Percussion: Mick Fleetwood
Backing  Vocals: Mindy Stein
Additional  Guitar: Neale Heywood
Backing  Vocals: Neale Heywood
Engineer: Paul DeCarli
Engineer: Scott Humphrey
Backing  Vocals: Sharon Celani
Vocals: Stevie Nicks
Unknown: Ted Jensen
Engineer: Ted Jensen
Ensemble: USC Marching Band
Writer: Lindsey Buckingham

Auto-generated by YouTube.' -metadata 'comment=Provided to YouTube by Rhino/Warner Records

Tusk (2018 Remaster) · Fleetwood Mac

50 Years - Don'"'"'t Stop

℗ 1979 Warner Records Inc. 2018 Remastered Rhino Entertainment

Engineer: Barry Goldberg
Additional  Guitar: Brett Tuggle
Additional  Keyboards: Brett Tuggle
Backing  Vocals: Brett Tuggle
Unknown: Charlie Bouis
Unknown: Dr. Arthur C. Bartner
Unknown: Elliot Scheiner
Engineer: Elliot Scheiner
Producer: Elliot Scheiner
Unknown: Guy Charboneau
Bass  Guitar: John McVie
Unknown: John Nelson
Additional  Percussion: Lenny Castro
Guitar, Producer, Vocals: Lindsey Buckingham
Drums, Percussion: Mick Fleetwood
Backing  Vocals: Mindy Stein
Additional  Guitar: Neale Heywood
Backing  Vocals: Neale Heywood
Engineer: Paul DeCarli
Engineer: Scott Humphrey
Backing  Vocals: Sharon Celani
Vocals: Stevie Nicks
Unknown: Ted Jensen
Engineer: Ted Jensen
Ensemble: USC Marching Band
Writer: Lindsey Buckingham

Auto-generated by YouTube.' -metadata 'purl=https://www.youtube.com/watch?v=EmuBOfurv3o' -metadata 'artist=Fleetwood Mac' -metadata 'album=50 Years - Don'"'"'t Stop' 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).temp.mp3'
[ffmpeg] Converting thumbnail "/dev/shm/test-ytd/Tusk (2018 Remaster).webp" to JPEG
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).webp' -qmin 1 -q:v 1 -bsf:v mjpeg2jpeg 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).jpg'
[ffmpeg] Adding thumbnail to "/dev/shm/test-ytd/Tusk (2018 Remaster).mp3"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).mp3' -i 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).jpg' -c copy -map 0 -map 1 -metadata:s:v 'title="Album cover"' -metadata:s:v 'comment="Cover (Front)"' 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).temp.mp3'

Note however, that I have edited line 72 in  embedthumbnail.py to produce better jpeg quality. Doubt that can be the cause.
            self.run_ffmpeg(escaped_thumbnail_filename, escaped_thumbnail_jpg_filename, ['-qmin', '1', '-q:v', '1', '-bsf:v', 'mjpeg2jpeg'])

Probably it's this difference:
         if info['ext'] == 'mp3':
             options = [
-                '-c', 'copy', '-map', '0', '-map', '1',
-                '-metadata:s:v', 'title="Album cover"', '-metadata:s:v', 'comment="Cover (Front)"']
-
-            self._downloader.to_screen('[ffmpeg] Adding thumbnail to "%s"' % filename)
-
+                '-c', 'copy', '-map', '0:0', '-map', '1:0', '-write_id3v1', '1', '-id3v2_version', '3',
+                '-metadata:s:v', 'title="Album cover"', '-metadata:s:v', 'comment=Cover (front)']
+
+            self._report_run('ffmpeg', filename)
             self.run_ffmpeg_multiple_files([filename, thumbnail_filename], temp_filename, options)

For the embedding, there are these two yt-dlp commits that make up the diff above:

https://github.com/yt-dlp/yt-dlp/commit/e51f368c275ea94dccc5cf4e07960d9c9633dfd5
https://github.com/yt-dlp/yt-dlp/commit/f894294636989788f02b917037f1f4a771595489

At some point this comment applied and probably still does:
# Write id3v1 metadata also since Windows Explorer can't handle id3v2 tags

For the conversion:
ffmpeg -y -loglevel repeat+info -i 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).webp' ...

--qmin 1 -q:v 1 -bsf:v mjpeg2jpeg 'file:/dev/shm/test-ytd/Tusk (2018 Remaster).jpg'
+-update 1 -bsf:v mjpeg2jpeg -movflags +faststart -qmin 1 -q:v 1 -metadata synopsis= 'file:/dev/shm/test-dlp/Tusk (2018 Remaster).jpg'

-update 1 has to be added according to this issue for new ffmpeg builds.
-movflags +faststart is only relevant for MP4/MOV destination containers, so not for MP3 (fun fact: the + means just set faststart and don't reset any other movflags, which was "so obvious that it went without saying" in the _ffmpeg_docs).
synopsis= is forcing an empty description but from the yt-dlp code I have no idea how it came to be there (would be comment= in yt-dl or, I guess, with yt-dlp compat set).

So I think -update 1 and the ID3 options have to be added.

Also, embedding in MKV ought to be supported.

synopsis= is forcing an empty description but from the yt-dlp code I have no idea how it came to be there (would be comment= in yt-dl or, I guess, with yt-dlp compat set).

It looks like @nicolaasjan is manually supplying -qmin 1 -q:v 1 -metadata synopsis=with --ppa. It's not being added by yt-dlp

-movflags +faststart is only relevant for MP4/MOV destination containers, so not for MP3 (fun fact: the + means just set faststart and don't reset any other movflags, which was "so obvious that it went without saying" in the _ffmpeg_docs).

Since ffmpeg ignores movflags for non-mp4, yt-dlp just adds it to everything

It looks like @nicolaasjan is manually supplying -qmin 1 -q:v 1 -metadata synopsis=with --ppa. It's not being added by yt-dlp

This is indeed the case.