Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Analysis server hangs with Linux 5.5 and IntelliJ based IDEs #40589

Closed
simolus3 opened this issue Feb 11, 2020 · 31 comments
Closed

Analysis server hangs with Linux 5.5 and IntelliJ based IDEs #40589

simolus3 opened this issue Feb 11, 2020 · 31 comments
Assignees
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. customer-flutter library-io

Comments

@simolus3
Copy link
Contributor

After upgrading to Linux 5.5 (I'm on Linux 5.5.2-1-MANJARO), analysis in IntelliJ stops working after a while (analysis errors view doesn't update anymore, formatting times out, no autocomplete, ...).
The analyzer diagnostics page is still reachable after that happens, but it appears that the analysis server just stops serving regular requests. Interestingly, I can't reproduce this with VS Code. I tried deleting ~/.dartServer/, but that didn't fix the problem.

I first thought this was an IntelliJ problem, but flutter/flutter#49185 (comment) makes me think that this is analyzer related. I wanted to open another issue here because for me that also happens on the non-Flutter Dart SDK (both stable & latest dev).

I can reproduce this consistently and on different projects, so I'd be glad to provide more information if that's necessary.

@vsmenon vsmenon added the area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. label Feb 11, 2020
@marcusaram
Copy link

Dart also hangs while compiling Flutter project. Dart process was stuck while generating kernel snapshot. Running on 5.4 LTS kernel everything works again....

@simolus3
Copy link
Contributor Author

Yeah this is probably more general than just the analyzer. pub lish on 5.5 never shows the "Looks great! Are you ready to upload your package" message - on 5.4 it happens right away.

@mraleph mraleph added area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. and removed area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. labels Feb 12, 2020
@mraleph
Copy link
Member

mraleph commented Feb 12, 2020

Based on the symptoms this is Dart VM related - potentially a dead lock in the VM or a bug in dart:io implementation.

If you could attach GDB and provide stack traces for all threads that would help before we get access to a machine with new Kernel which might take some time.

/cc @rmacnak-google @mkustermann @a-siva

@simolus3
Copy link
Contributor Author

I'm on Dart VM version: 2.7.1 (Thu Jan 23 13:02:26 2020 +0100) on "linux_x64".

Backtrace when the analysis server hangs

Thread 4 (Thread 0x7f2994e7e700 (LWP 4240)):
#0  0x00007f29980c2c45 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x000055f0e9b4f428 in dart::Monitor::WaitMicros(long) ()
#2  0x000055f0e9d2c4ca in dart::BackgroundCompiler::Run() ()
#3  0x000055f0e9bce157 in dart::ThreadPool::Worker::Loop() ()
#4  0x000055f0e9bcdfde in dart::ThreadPool::Worker::Main(unsigned long) ()
#5  0x000055f0e9b4ed19 in ?? ()
#6  0x00007f29980bc4cf in start_thread () from /usr/lib/libpthread.so.0
#7  0x00007f299831a2d3 in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7f29968ff700 (LWP 4235)):
#0  0x00007f29980c2c45 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x000055f0e9b4f428 in dart::Monitor::WaitMicros(long) ()
#2  0x000055f0e9d2c4ca in dart::BackgroundCompiler::Run() ()
#3  0x000055f0e9bce157 in dart::ThreadPool::Worker::Loop() ()
#4  0x000055f0e9bcdfde in dart::ThreadPool::Worker::Main(unsigned long) ()
#5  0x000055f0e9b4ed19 in ?? ()
#6  0x00007f29980bc4cf in start_thread () from /usr/lib/libpthread.so.0
#7  0x00007f299831a2d3 in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7f2996e68700 (LWP 4232)):
#0  0x00007f299831a60e in epoll_wait () from /usr/lib/libc.so.6
#1  0x000055f0e986ecd5 in dart::bin::EventHandlerImplementation::Poll(unsigned long) ()
#2  0x000055f0e98b8245 in ?? ()
#3  0x00007f29980bc4cf in start_thread () from /usr/lib/libpthread.so.0
#4  0x00007f299831a2d3 in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7f29980acc00 (LWP 4229)):
#0  0x00007f29980c2c45 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x000055f0e9b4f428 in dart::Monitor::WaitMicros(long) ()
#2  0x000055f0e9fb6d8a in Dart_RunLoop ()
#3  0x000055f0e986b48d in dart::bin::RunMainIsolate(char const*, dart::bin::CommandLineOptions*) ()
#4  0x000055f0e986c1d2 in dart::bin::main(int, char**) ()
#5  0x000055f0e986ccf9 in main ()

Backtrace when pub lish hangs:

Thread 4 (Thread 0x7ff74117f700 (LWP 2981)):
#0  0x00007ff74449c6f7 in wait () from /usr/lib/libc.so.6
#1  0x00005633955a8358 in ?? ()
#2  0x00005633955eb245 in ?? ()
#3  0x00007ff7442714cf in start_thread () from /usr/lib/libpthread.so.0
#4  0x00007ff7444cf2d3 in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7ff741aff700 (LWP 2976)):
#0  0x00007ff744277c45 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x0000563395882428 in dart::Monitor::WaitMicros(long) ()
#2  0x0000563395a5f4ca in dart::BackgroundCompiler::Run() ()
#3  0x0000563395901157 in dart::ThreadPool::Worker::Loop() ()
#4  0x0000563395900fde in dart::ThreadPool::Worker::Main(unsigned long) ()
#5  0x0000563395881d19 in ?? ()
#6  0x00007ff7442714cf in start_thread () from /usr/lib/libpthread.so.0
#7  0x00007ff7444cf2d3 in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7ff743557700 (LWP 2974)):
#0  0x00007ff7444cf60e in epoll_wait () from /usr/lib/libc.so.6
#1  0x00005633955a1cd5 in dart::bin::EventHandlerImplementation::Poll(unsigned long) ()
#2  0x00005633955eb245 in ?? ()
#3  0x00007ff7442714cf in start_thread () from /usr/lib/libpthread.so.0
#4  0x00007ff7444cf2d3 in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7ff744261c00 (LWP 2971)):
#0  0x00007ff744277c45 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x0000563395882428 in dart::Monitor::WaitMicros(long) ()
#2  0x0000563395ce9d8a in Dart_RunLoop ()
#3  0x000056339559e48d in dart::bin::RunMainIsolate(char const*, dart::bin::CommandLineOptions*) ()
#4  0x000056339559f1d2 in dart::bin::main(int, char**) ()
#5  0x000056339559fcf9 in main ()

@aam
Copy link
Contributor

aam commented Feb 12, 2020

@simolus3 The fact that it only affects IJ, not VSCode perhaps points to the issue with the plugin itself?

@DanTup @devoncarew might suggest how to troubleshoot the plugin, enable logging of the interaction between IJ plugin and analysis server

@marcusaram
Copy link

@simolus3 The fact that it only affects IJ, not VSCode perhaps points to the issue with the plugin itself?

@DanTup @devoncarew might suggest how to troubleshoot the plugin, enable logging of the interaction between IJ plugin and analysis server

Mine was stuck at gradle build, nothing to do with IntelliJ. This was on a relative big Flutter project. Small empty flutter project compiles just fine. But when switching kernel to 5.4 there are no issues...

Will see if I can add GDB thread dump soon

@a-siva
Copy link
Contributor

a-siva commented Feb 12, 2020

The stack trace posted above does not seem to indicate any kind of locking deadlock in the VM, it is possible some IO event was missed and the event handler is not waking up indicating a potential issue with dart:io.
It is going to be hard to debug using the stack traces above, I guess we would have to look for access to a machine with Linux 5.5 to investigate this issue.

@mraleph
Copy link
Member

mraleph commented Feb 13, 2020

I spinned up a cloud instance with 5.5.3 kernel. Going to run tests to see if it reproduces the issue.

@rmacnak-google
Copy link
Contributor

@zanderso

@zanderso
Copy link
Member

This appears to be affecting Flutter CLI users: flutter/flutter#49185

@mraleph
Copy link
Member

mraleph commented Feb 13, 2020

The following simple program would reproduce the hang on a compute instance with 5.5.x linux kernel.

import 'dart:io' as io;
import 'dart:convert';

void main(List<String> args) async {
  if (args.length != 1) {
    print('Usage: run.dart child|parent');
    return;
  }
  if (args[0] == 'child') {
    for (int i = 0; i < 30000; i++) {
      print('line $i');
    }
    print('done');
    return;
  } else if (args[0] == 'parent') {
    final p = await io.Process.start(io.Platform.executable,[io.Platform.script.toFilePath(), 'child']);
    p.stdout.transform(utf8.decoder).listen((x) => print('stdout: $x'));
    p.stderr.transform(utf8.decoder).listen((x) => print('stderr: $x'));
    final exitCode = await p.exitCode;
    print('process exited with ${exitCode}');
  }
}
$ dart run.dart parent

The parent process would then hang.

Based on my cursory analysis (I have never looked at this part of the code before) I think this is a bug in our code - we don't seem to be using epoll correctly. We use edge-triggered mode for file descriptors (except server sockets). This mode comes with some warnings in the man pages. Namely it warns that if you use EPOLLET you should only epoll_wait after you have received EAGAIN from read/write - I don't see us following this rule. We drain some available amount of bytes from the file descriptor but we don't really drain it until we hit EAGAIN (and we don't even update our estimate of the available bytes as we are draining it - so we more bytes come while we are reading we are going to ignore that, which does not work with edge-triggered mode).

I am not sure why this problem only surfaces now - but I see that there were some changes to the Kernel around epoll, so this might have caused it to surface.

We should either stop using ET mode or we should fix our code to follow man page guidelines.

Assigning to @zichangg for actual implementation work.

@zanderso
Copy link
Member

The Fuchsia eventhandler is based on a mechanism that only has level-triggering, so that could serve as a guide for that route. However, I'd recommend trying to follow the guidance for edge-triggering first to see if that is a simpler change.

@zichangg
Copy link
Contributor

Thanks for reproduction! @mraleph

Namely it warns that if you use EPOLLET you should only epoll_wait after you have received EAGAIN from read/write - I don't see us following this rule.

I think the reason we used edge-triggered is to be able to controll the amount of bytes for each read. Like this read API, https://api.dart.dev/stable/2.7.1/dart-io/RawSocket/read.html.

Yes, we didn't follow the rules. But I tried a c++ program locally, even if read() didn't drain all bytes, epoll_wait will still wake up when new data writes into pipe. This is why our sockets system working.

I am not sure why this problem only surfaces now - but I see that there were some changes to the Kernel around epoll, so this might have caused it to surface.

I suspect this is relative to the amount of bytes to be read in the pipe. For your sample program, if the iteration down to 3000, it won't hang.
The other evidence is my hot fix. available bytes are out-of-date when calling read. Update available can mitigate the problem.

Here is a similar one I found. https://bugzilla.kernel.org/show_bug.cgi?id=205933

@Quijx
Copy link

Quijx commented Feb 19, 2020

@zichangg I just copied the changes in your hotfix in to flutter/bin/cache/dart-sdk/lib/_internal/vm/bin/socket_patch.dart to see if that would fix my issue of flutter run freezing since the Linux 5.5 Kernel update. It did not. Not sure how much that says though. My issue seems to be different from the ones described here: flutter/flutter#49185.
Also, would I first need to recompile something in order to apply the changes in the dart-sdk?

@mraleph
Copy link
Member

mraleph commented Feb 19, 2020

@zichangg I just copied the changes in your hotfix in to flutter/bin/cache/dart-sdk/lib/_internal/vm/bin/socket_patch.dart

That would not change anything. That file is not read by the VM. You would need to rebuild flutter engine artifacts (flutter host dart-sdk specifically) from source.

@mraleph
Copy link
Member

mraleph commented Feb 19, 2020

But I tried a c++ program locally, even if read() didn't drain all bytes, epoll_wait will still wake up when new data writes into pipe.

Interesting - can you paste your reproduction here? I would be curious to look at it.

The other evidence is my hot fix. available bytes are out-of-date when calling read.

Yeah, I have tried this as well while reproducing the issue. It does fix my particular reproduction indeed though it still does not entirely follow the man page recommendations

@sortie
Copy link
Contributor

sortie commented Feb 19, 2020

We should do a proper fix and backport it to stable.

@zichangg
Copy link
Contributor

This is program I used locally.

#define MAX_EVENTS 5
#define READ_SIZE 5
#include <stdio.h>     // for fprintf()
#include <unistd.h>    // for close(), read()
#include <sys/epoll.h> // for epoll_create1(), epoll_ctl(), struct epoll_event
#include <string.h>    // for strncmp
 
int main()
{
  int running = 10, event_count, i;
  printf("Stdin will be added into ET epoll, each read only take 5 bytes at most\n");
  size_t bytes_read;
  char read_buffer[1000];
  struct epoll_event event, events[MAX_EVENTS];
  int epoll_fd = epoll_create1(0);
 
  if(epoll_fd == -1)
  {
    fprintf(stderr, "Failed to create epoll file descriptor\n");
    return 1;
  }
 
  event.events = EPOLLIN | EPOLLET;
  event.data.fd = 0;
 
  if(epoll_ctl(epoll_fd, EPOLL_CTL_ADD, 0, &event))
  {
    fprintf(stderr, "Failed to add file descriptor to epoll\n");
    close(epoll_fd);
    return 1;
  }

  while(running)
  {
    printf("\nPolling for input...\n");
    event_count = epoll_wait(epoll_fd, events, MAX_EVENTS, -1);
    printf("%d ready events\n", event_count);
    for(i = 0; i < event_count; i++)
    {
      printf("Reading file descriptor '%d' -- ", events[i].data.fd);
      bytes_read = read(events[i].data.fd, read_buffer, READ_SIZE);
      printf("%zd bytes read.\n", bytes_read);
      read_buffer[bytes_read] = '\0';
      printf("Read %s \n", read_buffer);
    }
    running--;
  }
 
  if(close(epoll_fd))
  {
    fprintf(stderr, "Failed to close epoll file descriptor\n");
    return 1;
  }
  return 0;
}

It does fix my particular reproduction indeed though it still does not entirely follow the man page recommendations

I think we should definitely follow man page. I was curious on why this problem only surfaces now.

We should do a proper fix and backport it to stable.

The most straight-forward solution is to drain read/write buffer until EAGAIN and store data. But this a problem if data is too big. This will be very bad if user only need to read a small portion, the rest will sit in the memory and do nothing.
Wdyt? @sortie

@mraleph
Copy link
Member

mraleph commented Feb 19, 2020

@zichangg If I test your program like so

$ for i in (seq 0 10); echo "line $i" >> input.txt; end
$ cat input.txt | ./test
Stdin will be added into ET epoll, each read only take 5 bytes at most

Polling for input...
1 ready events
Reading file descriptor '0' -- 5 bytes read.
Read line

Polling for input...

It hangs even on my workstation with an older Kernel without reading the input properly.

@alexmik95
Copy link

Same here. I'm on archlinux with latest linux kernel (5.5+) and flutter run stuck forever at gradlew assembleDebug. Temporaly solved installing linux-lts kernel and in my case nvidia-lts drivers.

@jonataslaw
Copy link

jonataslaw commented Feb 21, 2020

On Kernel update on LTS (5.4.20-1 today) linux is down.
Before, only the mainline kernel was affected, however, now all Kernels, including LTS, are inoperative with DART.
Edit: My problem was related to something else, after flutter clean and restarting the machine came back to work on LTS, but MainLine still has problems.

@winksaville
Copy link
Contributor

winksaville commented Feb 21, 2020

I downgraded my Arch Linux from 5.5.4 earlier in the week to 5.4.15, which was the latest 5.4.x kernel in my cache, and it works. I got help from the Arch Linux forums and here is the post where I documented what I did incase it would help anyone else.

As it turns out what I didn't wasn't the best method, jlg pointed out that using LTS maybe the best method, see here and the following post.

@zichangg
Copy link
Contributor

A quick update:
I have a fix ready(https://dart-review.googlesource.com/c/sdk/+/136322).
But I still need to a review from @sortie before it lands.

dart-bot pushed a commit that referenced this issue Feb 25, 2020
if NativeSocket.read() has not specified `len`, I will expect caller wants all bytes(this is not documented, correct me if I'm wrong).

Check the available bytes after read(), if there are leftover, issue another read(). This will eventually drain the pipe.

Bug: #40589
Change-Id: I3b0be9ef8258defd1f71f85b3154702401e0f31c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136322
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Zichang Guo <zichangguo@google.com>
@dnfield
Copy link
Contributor

dnfield commented Feb 26, 2020

The linked fix seems to be a Dart only change - did we not need to change the way we're polling in the C++ code?

@zanderso
Copy link
Member

As I understand it, the Dart-side draining the socket is sufficient to satisfy the (newly enforced) epoll edge-triggering preconditions.

@ryanheise
Copy link

Will there be a problem running flutter upgrade to bring in this fix if the current version of dart being used to run flutter upgrade exhibits the bug? I get a hang after flutter channel master; flutter upgrade. I don't know if this will actually pick up the new fix yet, but this suggests it might still hang either way:

Logs
$ flutter channel master                                                                                        
Switching to flutter channel 'master'...
git: From https://github.com/flutter/flutter
git:    ec9813a50..492fb6381  master               -> origin/master
git:  * [new branch]          pub-version-mismatch -> origin/pub-version-mismatch
git:  * [new branch]          revert-50775-dialog_padding -> origin/revert-50775-dialog_padding
git:  * [new branch]          sjindel.type         -> origin/sjindel.type
git: Switched to branch 'master'
git: Your branch is behind 'origin/master' by 682 commits, and can be fast-forwarded.
git:   (use "git pull" to update your local branch)

$ flutter upgrade                                                                                               
Downloading Dart SDK from Flutter engine 5a730c60d3cee8deb6901d9e14ae9971ec54b720...
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                               Dload  Upload   Total   Spent    Left  Speed
100  192M  100  192M    0     0  8409k      0  0:00:23  0:00:23 --:--:-- 8934k
Building flutter tool...
Upgrading Flutter from /home/ryan/opt/flutter...
Updating 41a911099..492fb6381
.../xcshareddata/IDEWorkspaceChecks.plist          |     0
.../Runner.xcworkspace}/contents.xcworkspacedata   |     0
.../benchmarks/test_apps}/stocks/README.md         |     0
.../android/app/src/main/AndroidManifest.xml       |     0
.../app/src/main/res/mipmap-hdpi/ic_launcher.png   |   Bin
.../app/src/main/res/mipmap-mdpi/ic_launcher.png   |   Bin
.../app/src/main/res/mipmap-xhdpi/ic_launcher.png  |   Bin
.../app/src/main/res/mipmap-xxhdpi/ic_launcher.png |   Bin
.../src/main/res/mipmap-xxxhdpi/ic_launcher.png    |   Bin
.../test_apps}/stocks/android/build.gradle         |     0
.../test_apps}/stocks/android/gradle.properties    |     0
.../gradle/wrapper/gradle-wrapper.properties       |     0
.../test_apps/stocks}/android/settings.gradle      |     0
.../test_apps}/stocks/fuchsia/meta/stocks.cmx      |     0
.../stocks/ios/Flutter/AppFrameworkInfo.plist      |     0
.../test_apps}/stocks/ios/Flutter/Debug.xcconfig   |     0
.../test_apps}/stocks/ios/Flutter/Release.xcconfig |     0
.../stocks/ios/Runner.xcodeproj/project.pbxproj    |     0
.../project.xcworkspace}/contents.xcworkspacedata  |     0
.../xcshareddata/xcschemes/Runner.xcscheme         |     0
.../test_apps}/stocks/ios/Runner/AppDelegate.h     |     0
.../test_apps}/stocks/ios/Runner/AppDelegate.m     |     0
.../AppIcon.appiconset/Contents.json               |     0
.../AppIcon.appiconset/Icon-60@2x.png              |   Bin
.../AppIcon.appiconset/Icon-60@3x.png              |   Bin
.../Assets.xcassets/AppIcon.appiconset/Icon-76.png |   Bin
.../AppIcon.appiconset/Icon-76@2x.png              |   Bin
.../AppIcon.appiconset/Icon-83.5@2x.png            |   Bin
.../AppIcon.appiconset/Icon-Notification.png       |   Bin
.../AppIcon.appiconset/Icon-Notification@2x.png    |   Bin
.../AppIcon.appiconset/Icon-Notification@3x.png    |   Bin
.../AppIcon.appiconset/Icon-Small-40.png           |   Bin
.../AppIcon.appiconset/Icon-Small-40@2x.png        |   Bin
.../AppIcon.appiconset/Icon-Small-40@3x.png        |   Bin
.../AppIcon.appiconset/Icon-Small.png              |   Bin
.../AppIcon.appiconset/Icon-Small@2x.png           |   Bin
.../AppIcon.appiconset/Icon-Small@3x.png           |   Bin
.../ios/Runner/Base.lproj/LaunchScreen.storyboard  |     0
.../stocks/ios/Runner/Base.lproj/Main.storyboard   |     0
.../test_apps}/stocks/ios/Runner/Info.plist        |     0
.../benchmarks/test_apps}/stocks/ios/Runner/main.m |     0
.../test_apps}/stocks/lib/i18n/.dartignore         |     0
.../test_apps}/stocks/lib/i18n/messages_all.dart   |     0
.../test_apps}/stocks/lib/i18n/messages_en_US.dart |     0
.../test_apps}/stocks/lib/i18n/messages_es_ES.dart |     0
.../test_apps}/stocks/lib/i18n/regenerate.md       |     0
.../test_apps}/stocks/lib/i18n/stock_strings.dart  |     0
.../test_apps}/stocks/lib/i18n/stocks_en_US.arb    |     0
.../test_apps}/stocks/lib/i18n/stocks_es_ES.arb    |     0
.../benchmarks/test_apps}/stocks/lib/main.dart     |     0
.../test_apps}/stocks/lib/stock_arrow.dart         |     0
.../test_apps}/stocks/lib/stock_home.dart          |     0
.../test_apps}/stocks/lib/stock_list.dart          |     0
.../test_apps}/stocks/lib/stock_row.dart           |     0
.../test_apps}/stocks/lib/stock_settings.dart      |     0
.../test_apps}/stocks/lib/stock_types.dart         |     0
.../test_apps}/stocks/test/icon_color_test.dart    |     0
.../test_apps}/stocks/test/locale_test.dart        |     0
.../test_apps}/stocks/test/search_test.dart        |     0
.../test_apps}/stocks/test_driver/scroll_perf.dart |     0
.../stocks/test_driver/scroll_perf_test.dart       |     0
.../test_apps}/stocks/test_driver/stock_view.dart  |     0


^C

@darrellpf
Copy link

The fixes in master haven't solved the problem yet. In Intellij much functionality seems to work once, then never again.

No autocomplete. Corrected syntax errors remain as errors, which requires restarting intellij to make them go away. Oddly enough. dartfmt was consistently failing but seems to be working now.

[✓] Flutter (Channel master, v1.15.4-pre.170, on Linux, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Android Studio (version 3.6)

There were several updates to various kernel epoll code recently in kernel 5.6 but they haven't changed the dart problems.

5.6.0-0.rc3.git0.1.fc33.x86_64

Flutter plugin 43.0.2 on AS 3.6 from Feb 12.

@ghost
Copy link

ghost commented Feb 26, 2020

@everyone You have to wait until next dart sdk release that contains the merged fix. flutter upgrade from master branch won't fix the issue for you now.

@Quijx
Copy link

Quijx commented Feb 26, 2020

So can we somehow compile the SDK ourselfs? Or is a hotfix sdk version being released in the next couple of days? Because Dart SDK releases are usually only every couple of months right?

@dnfield
Copy link
Contributor

dnfield commented Feb 26, 2020

We will update flutter/flutter#49185 when this rolls into flutter.

No estimates yet about when it will appear on Flutter stable.

@zichangg
Copy link
Contributor

Since the change is landed, I'll close the issue.

dart-bot pushed a commit that referenced this issue Mar 24, 2020
…in pipe

Cherry-pick https://dart-review.googlesource.com/c/sdk/+/136322 and https://dart-review.googlesource.com/c/sdk/+/138909.
Since several other cls has not been landed, this change only applies some necessary parts to fix the problem.

Bug: #40589
Change-Id: I3b0be9ef8258defd1f71f85b3154702401e0f31c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136322
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Zichang Guo <zichangguo@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. customer-flutter library-io
Projects
None yet
Development

No branches or pull requests