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.
After I open a big Maven project (some 60 000 classes with millions line of code) background scanning stops at 96%. A peak into IDE logs reveals that a thread went into an infinite loop: SEVERE [org.openide.util.RequestProcessor]: Error in RequestProcessor org.netbeans.modules.subversion.Subversion$2 java.lang.StackOverflowError at java.util.ArrayList.get(ArrayList.java:322) at org.antlr.runtime.ANTLRStringStream.mark(ANTLRStringStream.java:162) at org.antlr.runtime.DFA.predict(DFA.java:68) at org.tmatesoft.sqljet.core.internal.lang.SqlLexer.mTokens(SqlLexer.java:7424) at org.antlr.runtime.Lexer.nextToken(Lexer.java:89) at org.antlr.runtime.BufferedTokenStream.fetch(BufferedTokenStream.java:133) at org.antlr.runtime.BufferedTokenStream.sync(BufferedTokenStream.java:127) at org.antlr.runtime.CommonTokenStream.consume(CommonTokenStream.java:67) at org.antlr.runtime.DFA.predict(DFA.java:120) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.atom_expr(SqlParser.java:3916) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.unary_subexpr(SqlParser.java:3768) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.con_subexpr(SqlParser.java:3593) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.mul_subexpr(SqlParser.java:3475) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.add_subexpr(SqlParser.java:3366) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.bit_subexpr(SqlParser.java:3257) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.neq_subexpr(SqlParser.java:3148) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.eq_subexpr(SqlParser.java:3039) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.and_subexpr(SqlParser.java:1806) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.or_subexpr(SqlParser.java:1715) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.expr(SqlParser.java:1622) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.atom_expr(SqlParser.java:4127) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.unary_subexpr(SqlParser.java:3768) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.con_subexpr(SqlParser.java:3593) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.mul_subexpr(SqlParser.java:3475) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.add_subexpr(SqlParser.java:3366) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.bit_subexpr(SqlParser.java:3257) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.neq_subexpr(SqlParser.java:3148) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.eq_subexpr(SqlParser.java:3039) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.and_subexpr(SqlParser.java:1806) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.or_subexpr(SqlParser.java:1715) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.expr(SqlParser.java:1622) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.result_column(SqlParser.java:8243) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.select_core(SqlParser.java:7778) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.select_list(SqlParser.java:7466) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.select_stmt(SqlParser.java:7169) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.cond_expr(SqlParser.java:2486) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.and_subexpr(SqlParser.java:1820) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.or_subexpr(SqlParser.java:1715) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.expr(SqlParser.java:1622) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.select_core(SqlParser.java:7863) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.select_list(SqlParser.java:7466) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.select_stmt(SqlParser.java:7169) at org.tmatesoft.sqljet.core.internal.lang.SqlParser.create_view_stmt(SqlParser.java:15261) at org.tmatesoft.sqljet.core.internal.schema.SqlJetSchema.parseView(SqlJetSchema.java:422) at org.tmatesoft.sqljet.core.internal.schema.SqlJetSchema.readShema(SqlJetSchema.java:354) at org.tmatesoft.sqljet.core.internal.schema.SqlJetSchema.init(SqlJetSchema.java:168) at org.tmatesoft.sqljet.core.internal.schema.SqlJetSchema.<init>(SqlJetSchema.java:154) at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine$2.runSynchronized(SqlJetEngine.java:282) at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.runSynchronized(SqlJetEngine.java:217) at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.readSchema(SqlJetEngine.java:276) at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.getOptions(SqlJetEngine.java:299) at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDbRoot.<init>(SVNWCDbRoot.java:73) at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.parseDir(SVNWCDb.java:1519) at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.obtainWcRoot(SVNWCDb.java:4760) at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.obtainWcRoot(SVNWCDb.java:4754) at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.readInfo(SVNWCDb.java:2507) at org.tmatesoft.svn.core.internal.wc17.SVNWCContext.readKind(SVNWCContext.java:276) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetStatus.run(SvnNgGetStatus.java:31) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetStatus.run(SvnNgGetStatus.java:22) at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20) at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20) at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235) at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:291) at org.tmatesoft.svn.core.javahl17.SVNClientImpl.status(SVNClientImpl.java:268) at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.getStatus(AbstractJhlClientAdapter.java:578) at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.getStatus(AbstractJhlClientAdapter.java:558) at org.tigris.subversion.svnclientadapter.svnkit.SvnKitClientAdapter.getStatus(SvnKitClientAdapter.java:107) at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.getStatus(AbstractJhlClientAdapter.java:529) at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.getSingleStatus(AbstractJhlClientAdapter.java:520) at sun.reflect.GeneratedMethodAccessor79.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.netbeans.modules.subversion.client.SvnClientInvocationHandler.handle(SvnClientInvocationHandler.java:366) at org.netbeans.modules.subversion.client.SvnClientInvocationHandler.invokeMethod(SvnClientInvocationHandler.java:327) at org.netbeans.modules.subversion.client.SvnClientInvocationHandler$2.call(SvnClientInvocationHandler.java:169) at org.netbeans.modules.subversion.client.SvnClientInvocationHandler.invoke(SvnClientInvocationHandler.java:181) at $Proxy33.getSingleStatus(Unknown Source) at org.netbeans.modules.subversion.util.SvnUtils.getSingleStatus(SvnUtils.java:782) at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:567) at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:500) at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:633) at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:500) at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:633) at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:500) at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:633) at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:500) at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:633) at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:500) ... and so on until ... at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:633) [catch] at org.netbeans.modules.subversion.FileStatusCache.refresh(FileStatusCache.java:500) Product Version: NetBeans IDE 7.2 (Build 201207171143) Java: 1.6.0_26; Java HotSpot(TM) Client VM 20.1-b02 System: Windows XP version 5.1 running on x86; Cp1252; en_US (nb) Konrad Ciborowski Krakow, Poland
The problem is in org.tmatesoft.sqljet.core.internal.lang.SqlParser called from org.netbeans.modules.subversion.client.SvnClientInvocationHandler.handle
Can you attach the full IDE log? How many levels in the source tree do you have? Are there cyclic symlinks in the source tree?
After you reply to my questions, also please try to run the IDE with -J-Dversioning.subversion.doNotFollowSymlinks=true and let me know if it helps.
Created attachment 132320 [details] IDE logs I'm attaching the IDE logs. I'm not aware of any symlinks in the source tree (find . -type l returns nothing on the UNIX copy of the repository though I'm working on Windows). Running netbeans with -J-Dversioning.subversion.doNotFollowSymlinks=true did't make any difference. Best regards, Konrad Ciborowski
adding some additional logging: http://hg.netbeans.org/core-main/rev/a32ad648d271 Please when the changeset makes it to a daily build, download the daily build and start it with -J-Dorg.netbeans.modules.subversion.FileStatusCache.level=FINE When it trows the error, attach the messages.log again. Thanks a lot.
Integrated into 'main-golden', will be available in build *201303072300* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main-golden/rev/a32ad648d271 User: Ondrej Vrabec <ovrabec@netbeans.org> Log: #226881 - Infinite loop resulting in StackOverflowError adding additional logging
Created attachment 133119 [details] IDE logs, FINE level Sadly not much has changed in the logs.
(In reply to comment #7) > Sadly not much has changed in the logs. The exception is gone, no trace of it in the log. Attach the log when the exception occurs.
Sorry for not making myself clear. The exception may be gone but the background scanning still never ends. It halts at some 95%, the message "Scanning in progress, trying again in 10,000ms" keeps appearing in the logs every 10 seconds and nothing changes. Perhaps if I left the IDE alone for some time (10 min? 30 min? 2 hrs?) it would resume at some point, I don't know. It may very well be that the problem is the convoluted structure of the project itself (which defies logic to say the least) but nonetheless not being able to finish scanning feels like a bug - especially that it compiles by Maven outside outside the IDE. Unfortunately I am not allowed to publish the sources of the project here so cannot help you with any more details. Best regards, Konrad Ciborowski Kraków, Poland
> INFO [org.netbeans.modules.git.status]: GitInterceptor.refreshTask: Scanning in progress, trying again in 10,000ms .. means versioning is waiting for the parsing/scanning to finish in order not to compete for hard drive. Can you please: - run the IDE (daily development build) with -J-Dversioning.delayscan.nolimit=true - and make a profiler snapshot (guess a minute or two of the profiling will suffice) when the scanning stops at 95%? See http://wiki.netbeans.org/FitnessViaPartnership - then please reopen the issue