Comment #10 on issue 785 by smokejum...@gmail.com: Deadlock
on "waitForValue"
http://code.google.com/p/google-guice/issues/detail?id=785
I guess this wasn't as done as we hoped: our staging environment is still
getting lock-ups within Guava intermittently, even though I'm using a HEAD
version of this code. (I attached the SNAPSHOT jar that we are using.) I
suspect it's the same issue, although it's now occurring at a different
location.
(If it's not the same issue, I'll fork this and open a new one.)
In the attached stack dump, we're getting a thread (exec-18) which is
parking to wait on
com.google.inject.internal.guava.util.concurrent.$AbstractFuture$Sync
(memory location 0x00000000ea36bcd0) -- condition 0x00007f6254ef0000 -- but
I don't see anywhere that's locked. It is just sitting there forever,
however, so it looks like some kind of permit bookkeeping has been messed
up. That thread is also holding onto a lock of
com.google.inject.internal.InheritingState (memory location
0x00000000ea036818), which is resulting in other threads also locking up.
The use case is a web server, where a single static injector is being used
to construct the resources (read: "MVC controllers"), one per request, and
so we're getting a lot of thread contention. Would a temporary work-around
be to synchronize on the injector, so that it is only used once at a time?
Attachments:
jstack_dump.log 789 KB
guice-4.0-SNAPSHOT.jar 1.6 MB
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
You received this message because you are subscribed to the Google Groups
"google-guice-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to google-guice-dev+unsubscr...@googlegroups.com.
To post to this group, send email to google-guice-dev@googlegroups.com.
Visit this group at http://groups.google.com/group/google-guice-dev.
For more options, visit https://groups.google.com/groups/opt_out.