-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Warnings during precompilation on v1.10-beta1: waiting for IO to finish
#50873
Comments
It is not a warning, just an informational statement that the package is using |
thanks for the explanation! So perhaps more of a user-experience question... why are we showing this to every user if it's not problematic or (realistically) actionable? Right now it's a kinda gnarly/scary looking thing Could we just not log this info? or at least make it opt-in? or dependent on how long we've been waiting? or...? |
The same warning can be issued for precompilation job that will block forever unless fixed: comonicon/Comonicon.jl#249 |
I have seen that warning on a few occasions, and I was wondering that unless the system wants me to do something about it, why show it? |
In some cases things are only being held open transiently. Could we delay showing the warning a bit longer? |
That they are held open at all is usually at least a small mistake, since the program should be closing them explicitly when done with them. |
I'm getting these warnings on a regular basis as well, including with Julia v1.10.0-beta2. E.g., from
Is there a problem with Trixi.jl or OrdinaryDiffEq.j? Can the user do something about it?
|
Yes, it means one of their dependencies is using a Timer to handle some sort of event, and that is quite possibly some sort of bug in those packages (e.g. a datarace somewhere) that may need to be fixed. |
OK, thanks. Could you please clarify: Which package needs fixing? The one reported, the one that was originally installed, or one of the dependencies of the reported packages? |
This is far more difficult to debug now than it should be, but see #50914 (which contains both documentation on how to fix now as well as a speculative change that might give us tools to make it somewhat easier). |
Thanks for the hint! I'd still argue that before v1.10 is released, it would be great if the warning message were downgraded to an info or made less scary looking, and would be more helpful on what to do/expect as a user. |
Clearly we have to do something to make it better before releasing 1.10. But other than pointing to long documentation, no one seems to have any ideas about how to make this substantially easier to deal with. If you have any ideas, please let us know. |
I agree it's not at all clear what to do here... Please can we add this issue to the v1.10 milestone so we're sure to do something ? |
In the absence of a good positive suggestion... How bad do we think it would be to just not show this info at all (til we have a plan to make it useful)? Are we ruling that out because it could be critical info in cases where precompile hangs? |
Sorry, I should have re-posted a link to #50914 (I knew @sloede was following both discussions, and I had linked that PR earlier in the discussion).
Yeah, while it shows "spuriously" for some packages (due to transient blockage), for others it would block forever, and doing that silently would be bad. I do think, though, we should put a little more effort into figuring out whether the warning on transient blockage can be addressed somehow. @vtjnash, from #50873 (comment) are you saying that even a bit of "cleanup spillover" is a bug? I do have the sense that this warning is being issued for a number of packages that don't "hang" but for which perhaps task cleanup hasn't quite completed by the time the module closes. |
If task cleanup didn't happen, then it means the project didn't remember to |
For a concrete case, my (sometimes faulty) memory suggests I've seen that warning, issued once, despite https://github.com/JuliaGizmos/GtkObservables.jl/blob/af20a698aceb4ae0bdc9729bddc56c2dcc6339fe/src/precompile.jl#L168-L170. But I couldn't reproduce that behavior in two tries I just gave this (that said, GtkObservables did just migrate to Gtk4, and it's possible that change improved behavior). In any event, I interpret the text in the OP here as suggesting that all these packages precompiled successfully, but that the warning was issued (once) regardless. Without knowing how careful those packages are being about closing resources, should we interpret any case in which the warning is issued once but then resolves itself as possibly an over-eager warning system? Specifically, should we increase the delay at Line 81 in a4309ca
|
This increases the delay slightly before checking whether all I/O tasks have finished. This may reduce the number of "spurious" warnings during precompilation. Fixes #50873
10ms is the start of the interval for running GC after the program exited and began sleeping, so it should be short |
xref #51003 |
This has come up on discourse: https://discourse.julialang.org/t/waiting-for-io-to-finish-1-10-beta2/103240 Since a user of any of these packages can't realistically do anything about them, how about only showing that in CI? Or at least drastically increasing the amount of time until the warning is shown, with an additional note that this is something the package in question needs to fix, not the end user who installs the package? |
Can you see if this happens on master? |
@IanButterworth
|
Thanks. The issue is most likely real then. Typically it will be because a dependency has an |
Fixed by #51847 |
When precompiling a large private package, on v1.10-beta1, i see these warnings:
Precompilation continues and completes successfully, but i do not know how to fix these warning...
The text was updated successfully, but these errors were encountered: