Thanks to visit codestin.com
Credit goes to github.com

Skip to content

multiple PRs are green on Jenkins, red on Travis-CI #570

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

Closed
SethTisue opened this issue Oct 26, 2018 · 14 comments
Closed

multiple PRs are green on Jenkins, red on Travis-CI #570

SethTisue opened this issue Oct 26, 2018 · 14 comments
Assignees

Comments

@SethTisue
Copy link
Member

SethTisue commented Oct 26, 2018

@SethTisue
Copy link
Member Author

Lukas thought at least one of the PRs might be stack size related, not sure what his evidence is

probably no harm in just adding an -Xss to .jvmopts, now that we have it? the default stack size is liable to be a bit different on different systems, and is always rather small

Lukas Rytz [4 hours ago]
i use 5m locally

@milessabin
Copy link

scala/scala#7368 was a transient failure due to a failed fetch of a binary artefact from a Lightbend repo ... went green on Travis when rerun.

@milessabin
Copy link

One step forward, one step back ...

scala/scala#7199 is now failing with a SOE on Travis, after rebasing. In this case at least, the failure is after bootstrapping.

@retronym
Copy link
Member

retronym commented Oct 29, 2018

Pattern matching is now generating additional null checks. I'm guessing this is an intended consequence of moving it after refchecks.

These extra null checks are doubling the tree depth of the translated patterns, which was already pretty big for some of the high-arity tuple matches in StandardLiftables.

I'll dig further.

image

@retronym retronym self-assigned this Oct 29, 2018
@retronym
Copy link
Member

retronym commented Oct 29, 2018

Okay, that change comes down to a slightly older, intentional change to null handling with extractors: scala/scala#6485

Maybe we should change patmat to emit:

if (p5.eq(null) case12()
<next pattern>

Rather than:

if (p5.ne(null)) { <next pattern> } else case12()

WIP: https://github.com/scala/scala/compare/2.13.x...retronym:topic/shallower-patmat-ast?expand=1

@sjrd
Copy link
Member

sjrd commented Oct 29, 2018

The Scala.js backend won't be happy at all if you do that. It's very sensitive to the shapes of trees produced by the pattern matcher. The function genTranslatedMatch in GenJSCode would have to be rewritten.

@retronym
Copy link
Member

Thanks for the heads up, @sjrd. We'll be make sure to allow time for that re-write, or otherwise, we can make the status quo available under a migration option of some sort.

retronym added a commit to retronym/scala that referenced this issue Oct 30, 2018
As identified in scala/scala-dev#570,
pattern matching with extractors on long sequence patterns can lead
to deep ASTs which require cranking up `-Xss` to get them through
scalac.

We can/should modify the pattern matcher to emit more shallow
ASTs. My WIP for that is:

https://github.com/scala/scala/compare/2.13.x...retronym:topic/shallower-patmat-ast?expand=1

But in the meantime, this PR refactors the TupleN unlifters in the
quasiquotes implementation to share the logic in a loop based
implementation.
retronym added a commit to retronym/scala that referenced this issue Oct 30, 2018
As identified in scala/scala-dev#570,
pattern matching with extractors on long sequence patterns can lead
to deep ASTs which require cranking up `-Xss` to get them through
scalac.

We can/should modify the pattern matcher to emit more shallow
ASTs. My WIP for that is:

https://github.com/scala/scala/compare/2.13.x...retronym:topic/shallower-patmat-ast?expand=1

But in the meantime, this PR refactors the TupleN unlifters in the
quasiquotes implementation to share the logic in a loop based
implementation.

These code paths are covered by the exiting test:

> scalacheck/testOnly scala.reflect.quasiquotes.UnliftableProps
retronym added a commit to retronym/scala that referenced this issue Oct 30, 2018
As identified in scala/scala-dev#570,
pattern matching with extractors on long sequence patterns can lead
to deep ASTs which require cranking up `-Xss` to get them through
scalac.

We can/should modify the pattern matcher to emit more shallow
ASTs. My WIP for that is:

https://github.com/scala/scala/compare/2.13.x...retronym:topic/shallower-patmat-ast?expand=1

But in the meantime, this PR refactors the TupleN unlifters in the
quasiquotes implementation to share the logic in a loop based
implementation.

These code paths are covered by the exiting test:

> scalacheck/testOnly scala.reflect.quasiquotes.UnliftableProps
retronym added a commit to retronym/scala that referenced this issue Oct 30, 2018
As identified in scala/scala-dev#570,
pattern matching with extractors on long sequence patterns can lead
to deep ASTs which require cranking up `-Xss` to get them through
scalac.

We can/should modify the pattern matcher to emit more shallow
ASTs. My WIP for that is:

https://github.com/scala/scala/compare/2.13.x...retronym:topic/shallower-patmat-ast?expand=1

But in the meantime, this PR refactors the TupleN unlifters in the
quasiquotes implementation to share the logic in a loop based
implementation.

These code paths are covered by the exiting test:

> scalacheck/testOnly scala.reflect.quasiquotes.UnliftableProps
lrytz added a commit to scala/scala that referenced this issue Nov 5, 2018
We've seen stack overflows on travis lately. Since we're using 1m on
Jenkins and didn't see failures, let's see if Xss1m fixes it on travis

scala/scala-dev#570
lrytz added a commit to lrytz/scala that referenced this issue Nov 5, 2018
We've seen stack overflows on travis lately. Since we're using 1m on
Jenkins and didn't see failures, let's see if Xss1m fixes it on travis

scala/scala-dev#570
lrytz added a commit to lrytz/scala that referenced this issue Nov 5, 2018
We've seen stack overflows on travis lately. Since we're using 1M on
Jenkins and didn't see failures, let's see if Xss1M fixes it on travis.

scala/scala-dev#570
lrytz added a commit to lrytz/scala that referenced this issue Nov 5, 2018
We've seen stack overflows on travis lately. Since we're using 1M on
Jenkins and didn't see failures, let's see if Xss1M fixes it on travis.

scala/scala-dev#570
@lrytz
Copy link
Member

lrytz commented Nov 7, 2018

Just saw the SOE on the most recent merge commit in 2.13.x, which includes the -Xss1m

@SethTisue SethTisue assigned SethTisue and unassigned retronym and SethTisue Nov 7, 2018
@SethTisue
Copy link
Member Author

gah, not sure what to do here, earliest I could look at it or think about it is next week

@milessabin
Copy link

Is there any reason for not being a bit more generous with heap and stack? I use 3g and 2m respectively for shapeless.

@lrytz
Copy link
Member

lrytz commented Nov 9, 2018

I guess we'd like to understand why this started happening recently and keep some pressure to do something about it. But the cost of having spurious failures over and over again is probably a bit too high. So I'm happy to bump to 2m.

@SethTisue
Copy link
Member Author

SethTisue commented Nov 9, 2018

SGTM. we could leave this ticket open unless or until we decide do something else

@retronym
Copy link
Member

retronym commented Nov 9, 2018

Want to try scala/scala#7375 first?

@retronym retronym self-assigned this Nov 13, 2018
@SethTisue
Copy link
Member Author

I don't recall seeing this happen recently

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants