This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 175143 - Maven indexer blocks shutdown
Summary: Maven indexer blocks shutdown
Status: RESOLVED FIXED
Alias: None
Product: projects
Classification: Unclassified
Component: Maven (show other bugs)
Version: 6.x
Hardware: All All
: P3 blocker (vote)
Assignee: David Simonek
URL:
Keywords: PERFORMANCE
Depends on:
Blocks: 164593
  Show dependency tree
 
Reported: 2009-10-21 18:27 UTC by Jesse Glick
Modified: 2009-11-05 10:16 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jesse Glick 2009-10-21 18:27:49 UTC
091021. With a Maven project open, I closed the IDE's main window. Disk, network, and CPU activity remained heavy for
minutes afterwards. Thread dumps reveal the cause as the Maven indexer, which ought to be cancellable and automatically
cancelled by IDE shutdown:

 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
 - org.openide.util.Mutex$QueueCell.sleep() @bci=10, line=1602 (Interpreted frame)
 - org.openide.util.Mutex.enterImpl(int, java.lang.Thread, boolean) @bci=430, line=723 (Interpreted frame)
 - org.openide.util.Mutex.enter(int, java.lang.Thread, boolean) @bci=44, line=630 (Interpreted frame)
 - org.openide.util.Mutex.writeEnter(java.lang.Thread) @bci=4, line=608 (Interpreted frame)
 - org.openide.util.Mutex.writeAccess(org.openide.util.Mutex$ExceptionAction) @bci=33, line=430 (Interpreted frame)
 - org.netbeans.modules.maven.indexer.NexusRepositoryIndexerImpl.shutdownAll() @bci=19, line=442 (Interpreted frame)
 - org.netbeans.modules.maven.indexer.Installer.close() @bci=101, line=68 (Interpreted frame)
 - org.netbeans.core.startup.NbInstaller.close(java.util.List) @bci=133, line=709 (Interpreted frame)
 - org.netbeans.ModuleManager.shutDown(java.lang.Runnable) @bci=144, line=1585 (Interpreted frame)
 - org.netbeans.core.startup.ModuleSystem.shutDown(java.lang.Runnable) @bci=15, line=291 (Interpreted frame)
 - org.netbeans.core.NbTopManager.doExit() @bci=36, line=526 (Interpreted frame)

 - java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Compiled frame;
information may be imprecise)
 - java.net.SocketInputStream.read(byte[], int, int) @bci=84, line=129 (Compiled frame)
 - java.io.BufferedInputStream.fill() @bci=175, line=218 (Compiled frame)
 - java.io.BufferedInputStream.read1(byte[], int, int) @bci=44, line=256 (Compiled frame)
 - java.io.BufferedInputStream.read(byte[], int, int) @bci=49, line=313 (Compiled frame)
 - sun.net.www.MeteredStream.read(byte[], int, int) @bci=16, line=116 (Compiled frame)
 - java.io.FilterInputStream.read(byte[], int, int) @bci=7, line=111 (Compiled frame)
 - org.apache.maven.wagon.AbstractWagon.transfer(org.apache.maven.wagon.resource.Resource, java.io.InputStream,
java.io.OutputStream, int, int) @bci=50, line=480 (Compiled frame)
 - org.apache.maven.wagon.AbstractWagon.getTransfer(org.apache.maven.wagon.resource.Resource, java.io.OutputStream,
java.io.InputStream, boolean, int) @bci=7, line=327 (Interpreted frame)
 - org.apache.maven.wagon.AbstractWagon.getTransfer(org.apache.maven.wagon.resource.Resource, java.io.File,
java.io.InputStream, boolean, int) @bci=56, line=299 (Interpreted frame)
 - org.apache.maven.wagon.AbstractWagon.getTransfer(org.apache.maven.wagon.resource.Resource, java.io.File,
java.io.InputStream) @bci=7, line=276 (Interpreted frame)
 - org.apache.maven.wagon.StreamWagon.getIfNewer(java.lang.String, java.io.File, long) @bci=67, line=97 (Interpreted frame)
 - org.apache.maven.wagon.StreamWagon.get(java.lang.String, java.io.File) @bci=4, line=61 (Interpreted frame)
 - org.sonatype.nexus.index.updater.DefaultIndexUpdater$WagonFetcher.retrieve(java.lang.String, java.io.File) @bci=6,
line=605 (Interpreted frame)
 -
org.sonatype.nexus.index.updater.DefaultIndexUpdater.loadIndexDirectory(org.sonatype.nexus.index.updater.IndexUpdateRequest,
boolean, java.lang.String) @bci=71, line=209 (Interpreted frame)
 -
org.sonatype.nexus.index.updater.DefaultIndexUpdater.fetchAndUpdateIndex(org.sonatype.nexus.index.updater.IndexUpdateRequest)
@bci=250, line=139 (Interpreted frame)
 -
org.netbeans.modules.maven.indexer.NexusRepositoryIndexerImpl.indexLoadedRepo(org.netbeans.modules.maven.indexer.api.RepositoryInfo,
boolean) @bci=185, line=399 (Interpreted frame)
 -
org.netbeans.modules.maven.indexer.NexusRepositoryIndexerImpl.access$400(org.netbeans.modules.maven.indexer.NexusRepositoryIndexerImpl,
org.netbeans.modules.maven.indexer.api.RepositoryInfo, boolean) @bci=3, line=137 (Interpreted frame)
 - org.netbeans.modules.maven.indexer.NexusRepositoryIndexerImpl$1.run() @bci=80, line=429 (Interpreted frame)
 - org.openide.util.Mutex.writeAccess(org.openide.util.Mutex$ExceptionAction) @bci=37, line=433 (Interpreted frame)
 -
org.netbeans.modules.maven.indexer.NexusRepositoryIndexerImpl.indexRepo(org.netbeans.modules.maven.indexer.api.RepositoryInfo)
@bci=37, line=419 (Interpreted frame)
 -
org.netbeans.modules.maven.indexer.api.RepositoryIndexer.indexRepo(org.netbeans.modules.maven.indexer.api.RepositoryInfo) @bci=30,
line=59 (Interpreted frame)
 - org.netbeans.modules.maven.ModInstall$1.run() @bci=230, line=150 (Interpreted frame)
Comment 1 Milos Kleint 2009-10-22 19:46:21 UTC
dafe?
Comment 2 David Simonek 2009-10-26 18:32:49 UTC
Reproduction steps please? A few days earlier I integrated a fix for 164593 which calls thread.stop() on running Maven
indexing/downloading index. (look into Installer.close() just a few lines above). In IDE log there should be logged
warning that indexing was stopped.

Or maybe that stopping didn't work for some reason and I would need reproduction steps to find out why.
Comment 3 David Simonek 2009-10-27 12:44:52 UTC
I guess I found it. "Cancelling" of maven repo indexer was active only when global progress was shown. But there are
small periods of time before and after progress is shown when thread is still active and there probably race condition
arose.

hopefully fixed: 0acb30ca8554
Comment 4 Quality Engineering 2009-11-05 10:16:51 UTC
Integrated into 'main-golden', will be available in build *200911050201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/0acb30ca8554
User: Dafe Simonek <dsimonek@netbeans.org>
Log: #175143: more robust cancelling of maven indexer/index downloader