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

VM crash with getter that both accesses and shadows imported variable #3667

Closed
alan-knight opened this issue Jun 14, 2012 · 6 comments
Closed
Assignees
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends.

Comments

@alan-knight
Copy link
Contributor

What steps will reproduce the problem?

  1. Run date_time_format_tests.dart. The files expect to be in the same place as in the normal source tree, that is dart/lib/i18n and dart/tests/lib/i18n for the tests.

What is the expected output? What do you see instead?
Expected output is probably a test failure or other error, since this is code in the middle of an experiment. Instead the VM exits with status 138.

What version of the product are you using? On what operating system?
Editor build 8641. Mac OS X 10.7.4

Please provide any additional information below.
 
  date_time_symbols.dart is a bit of hacked up Javascript that defines lots and lots of locales as constant maps. It has one method, setup() that looks at the current locale and sets a variable DateTimeSymbols to be the correct one of these.
  date_format.dart is a class for date formatting. It defines a library and imports date_time_symbols.
  _date_format_field.dart is a helper class. date_format sources it. It needs to access the DateTimeSymbols variable.

In _date_format_field I created a getter for the DateTimeSymbols variable that just did lazy initialization. However, I didn't think carefully and I just named it the same as the variable. So, in effect, I had a variable in my package that was shadowing an imported variable. Neither the editor nor the VM complained about that, but the VM crashed when it got to that point. I spend a bit of time setting up the same situation in a simpler case, but it just went infinite recursive, which is more what I'd expect. Naming the getter something different caused the problem to go away.


Attachments:
date_format.dart (13.97 KB)
_date_format_field.dart (3.66 KB)
date_time_symbols.dart (154.08 KB)
date_time_format_test.dart (2.14 KB)

@ghost
Copy link

ghost commented Jun 14, 2012

Added Area-VM, Triaged labels.

@ghost
Copy link

ghost commented Jun 15, 2012

The crash is an uncaught stack overflow in the VM


Set owner to @sgmitrovic.

@ghost
Copy link

ghost commented Jun 15, 2012

Fixed in r8701: set maximum stack size to correct value so that generated code can catch it.

@ghost
Copy link

ghost commented Jun 15, 2012

Added Fixed label.

@ghost
Copy link

ghost commented Jun 15, 2012

Reopening since the original fix (limit the stack size for main thread as well) caused failures.


Set owner to @a-siva.
Added Accepted label.

@a-siva
Copy link
Contributor

a-siva commented Jun 16, 2012

@alan-knight alan-knight added Type-Defect area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. labels Jun 16, 2012
copybara-service bot pushed a commit that referenced this issue Nov 25, 2022
Bump pub to 6fdcdd4357645817e7d7027ee2157ed68ef69c53

Changes:
```
> git log --format="%C(auto) %h %s" 6ac42d7..6fdcdd4
 https://dart.googlesource.com/pub.git/+/6fdcdd43 Support `--native-assets` in kernel compilation commands (#3667)
 https://dart.googlesource.com/pub.git/+/7202dd5e Fix error message for missing transitive dependency (#3196)
 https://dart.googlesource.com/pub.git/+/ab3304e1 Ignore analysis_options.yaml everywhere (#3666)
 https://dart.googlesource.com/pub.git/+/54e0b1eb Only check for sdk updates during resolveExecutable (#3665)
 https://dart.googlesource.com/pub.git/+/327d9ee8 Fix global activate --git-ref (#3656)
 https://dart.googlesource.com/pub.git/+/1485d60c Add env var flag to
override stdout.hasTerminal for output animations (#3658)
 https://dart.googlesource.com/pub.git/+/13ca9de1 Fix escapeShellArgument (#3663)
 https://dart.googlesource.com/pub.git/+/75c671c7 Allow adding from multiple sources (#3571)
 https://dart.googlesource.com/pub.git/+/1acfd4f7 dart pub get --enforce-lockfile (#3637)
 https://dart.googlesource.com/pub.git/+/9810fc6f Suggest using 2.12 as lower-bound SDK constraint (#3660)
 https://dart.googlesource.com/pub.git/+/f481f27a Add a README.md to the pub cache after command ends (#3650)
 https://dart.googlesource.com/pub.git/+/d54d52d3 Have executableForCommand rerun pub get if sdk changed minor version (#3652)
 https://dart.googlesource.com/pub.git/+/ea986525 Delete move.yml (#3648)

```

Diff: https://dart.googlesource.com/pub.git/+/6ac42d7644dedfcc500147ab47886eecab4b1b38~..6fdcdd4357645817e7d7027ee2157ed68ef69c53/

Bump webdev to 637b406f325669507b5c1048c19a7c0083c1bd6e

Changes:
```
> git log --format="%C(auto) %h %s" 3ec168f..637b406
 https://dart.googlesource.com/webdev.git/+/637b406 Support `--native-assets` in `FrontendServerClient` (#1797)
 https://dart.googlesource.com/webdev.git/+/a19d563 Save debug information in `chrome.storage` after a Dart app loads  (#1791)
 https://dart.googlesource.com/webdev.git/+/9cc10d4 Connect to a `chrome.runtime` port to keep the service worker alive  (#1789)

```
Diff: https://dart.googlesource.com/webdev.git/+/3ec168f6815af9d5f11278111d147bc82c0755c3~..637b406f325669507b5c1048c19a7c0083c1bd6e/


Update CHANGELOG


Bump pub to 6fdcdd4357645817e7d7027ee2157ed68ef69c53

Changes:
```
> git log --format="%C(auto) %h %s" 6ac42d7..6fdcdd4
 https://dart.googlesource.com/pub.git/+/6fdcdd43 Support `--native-assets` in kernel compilation commands (#3667)
 https://dart.googlesource.com/pub.git/+/7202dd5e Fix error message for missing transitive dependency (#3196)
 https://dart.googlesource.com/pub.git/+/ab3304e1 Ignore analysis_options.yaml everywhere (#3666)
 https://dart.googlesource.com/pub.git/+/54e0b1eb Only check for sdk updates during resolveExecutable (#3665)
 https://dart.googlesource.com/pub.git/+/327d9ee8 Fix global activate --git-ref (#3656)
 https://dart.googlesource.com/pub.git/+/1485d60c Add env var flag to override stdout.hasTerminal for output animations (#3658)
 https://dart.googlesource.com/pub.git/+/13ca9de1 Fix escapeShellArgument (#3663)
 https://dart.googlesource.com/pub.git/+/75c671c7 Allow adding from multiple sources (#3571)
 https://dart.googlesource.com/pub.git/+/1acfd4f7 dart pub get --enforce-lockfile (#3637)
 https://dart.googlesource.com/pub.git/+/9810fc6f Suggest using 2.12 as lower-bound SDK constraint (#3660)
 https://dart.googlesource.com/pub.git/+/f481f27a Add a README.md to the pub cache after command ends (#3650)
 https://dart.googlesource.com/pub.git/+/d54d52d3 Have executableForCommand rerun pub get if sdk changed minor version (#3652)
 https://dart.googlesource.com/pub.git/+/ea986525 Delete move.yml (#3648)

```

Diff: https://dart.googlesource.com/pub.git/+/6ac42d7644dedfcc500147ab47886eecab4b1b38~..6fdcdd4357645817e7d7027ee2157ed68ef69c53/
Change-Id: I65b928479b44f08305853078b0f34a6b66602709
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/271709
Auto-Submit: Sigurd Meldgaard <sigurdm@google.com>
Reviewed-by: Jonas Jensen <jonasfj@google.com>
Commit-Queue: Jonas Jensen <jonasfj@google.com>
This issue was closed.
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.
Projects
None yet
Development

No branches or pull requests

2 participants