question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

ComponentTreeDepsProcessor generates code in a non-deterministic order, breaking caching

See original GitHub issue

We’re still on v2.38.1 so it’s possible this has been fixed, but I didn’t notice anything in the release notes.

We don’t have solid repro steps, but we’ve noticed that every so often, our HiltApplication_ComponentTreeDeps.java file generates a file that has the same content, but different ordering, causing an unnecessary rebuild.

It seems to happen within the aggregatedDeps property of the @ComponentTreeDeps annotation, although I don’t know that it’s limited to that.

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:23

github_iconTop GitHub Comments

2reactions
bcorsocommented, Nov 15, 2021

Playing around with it a bit, I think the order is correlated to what is being built. In particular, a clean build will always reproduce the same output, but an incremental build will produce different output depending on which sources needed to be rebuilt. IIUC, when we’re grabbing elements from a package, the most recently processed sources will appear last in the list.

Thus, we can’t hope for a well defined ordering of elements from these packages, and I think our only option here is just to manually sort them ourselves.

Thanks for reporting! I’ll look into getting a fix for this soon.

1reaction
bcorsocommented, Nov 15, 2021

Ah, thanks I did miss the part about making the change. I am now able to reproduce it, thanks!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Code generation for Mercury - CiteSeerX
Abstract. We describe a compiler for Mercury, a new purely declarative logic programming language designed to provide the support that groups of application ......
Read more >
SPIRAL: Code Generation for DSP Transforms
SPIRAL generates high-per- formance code for a broad set of DSP transforms, including the discrete Fourier transform, other trigonometric transforms, filter.
Read more >
Graph Frames Intro · sds-2-2 - LaMaStEx
GraphX is a new component in Spark for graphs and graph-parallel computation. At a high level, ... For example in the following code...
Read more >
https://raw.githubusercontent.com/Microsoft/perfvi...
   This column shows how CPU was used for that method (or any method it calls) over the collection time interval.   Time is...
Read more >
The Tao of Parallelism in Algorithms
process will ultimately terminate and produce a guaranteed-quality mesh. Different orders of processing bad triangles lead to different.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found