CVS locks the IDEA [Solved in build #5650]

Hi,
For two versions now I have problem with CVS in idea. Most of the time CVS locks whole IDEA so I have to kill after few minutes waiting. As I am writing it I am updating (clean) one file from repository. It should take split second.

IDEA does not allow me to close or put it in background. It just sits here.

There is no exception sign blinking and top menu is locked so I can't make memory snapshot. Is there anything I could make to help you guys fix it?

The platform is quite popular I think:
Ubuntu 6.06 with all patches applyed.
The computer is quite old with 1GB RAM.

The CVS as well as exception raised in copy/paste are making IDEA difficult to work with now. I can Prowide any information you wish about the system, configuration.

Best regards

Jerzy

Chaned title after checking it in new build.

Message was edited by:
Jerzy Puchala

25 comments

Hello Jerzy,

JP> For two versions now I have problem with CVS in idea. Most of the
JP> time CVS locks whole IDEA so I have to kill after few minutes
JP> waiting. As I am writing it I am updating (clean) one file from
JP> repository. It should take split second.
JP> IDEA does not allow me to close or put it in background. It just
JP> sits here.
JP>
JP> There is no exception sign blinking and top menu is locked so I
JP> can't make memory snapshot. Is there anything I could make to help
JP> you guys fix it?

Which build of IDEA are you using?

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Hello Jerzy,

JP> Build #5646
JP> jdk1.5.0._07

The CVS deadlock is fixed in the next EAP build which will be available later
today.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Fantastic!!!
Thanks so much!
I think this is why I like to pay you guys instead of using Eclipse :D

Thanks once again

Jerzy

0

sorry, is "later today" build #5650 or there will be another one?

Jerzy

0

Hello Jerzy,

JP> sorry, is "later today" build #5650 or there will be another one?

Yes, the build 5650 contains the fix.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Looks like there might still be a problem here. I'm running 5650 and it's just locked up on me while performing a CVS commit. Stack dump attached.

Hello Jerzy,

>
JP>> sorry, is "later today" build #5650 or there will be another one?
JP>>

Yes, the build 5650 contains the fix.


Attachment not added (general error): "cvs-hang.txt"
Attachment not added (general error): "cvs-hang.txt"

0

Same here. It does not seem that build 5650 has changed a lot. During Update Project the GUI freezes totally. The only improvement is that once the update is finished, I can resume working.

We use cvs + ssh using the ext protocol.

Kind regards

Thomas Gülden
Munich, Germany

0

I was consistently getting a hang every time I performed a commit, but it
turns out this happens because I'm using the "tag on comit" feature. If I
commit first and then tag as a separate step, IDEA doesn't lock up. I've
created a Jira issue:

http://www.jetbrains.net/jira/browse/IDEA-9144

Same here. It does not seem that build 5650 has changed a lot. During
Update Project the GUI freezes totally. The only improvement is that
once the update is finished, I can resume working.

We use cvs + ssh using the ext protocol.

Kind regards

Thomas Gülden
Munich, Germany



0

Hello Chris,

CM> Looks like there might still be a problem here. I'm running 5650 and
CM> it's just locked up on me while performing a CVS commit. Stack dump
CM> attached.

This is a different problem from the one which was fixed in 5650. I'll look
into it now. Thanks for your report!

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Hi Dimitry,

Is your statement also valid for my observation that the GUI still freezes in Build 5650 during update (using cvs + ssh)?

Thomas Gülden
Munich, Germany

0

I just installed #5650 today. The freezing is still happening after I do some commits.

0

Hello Nat,

N> I just installed #5650 today. The freezing is still happening after I
N> do some commits.

Some additional deadlock scenarios are fixed in the next EAP build.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0

By "next EAP" do you mean 5661? Because that still freezes the UI during CVS Update. Here's a thread dump of the pertinent threads:

(a com.intellij.cvsSupport2.javacvsImpl.io.ReadThread) at java.lang.Object.wait(Object.java:474) at com.intellij.cvsSupport2.javacvsImpl.io.ReadThread.waitForRead(ReadThread.java:175) - locked <0x15660180> (a com.intellij.cvsSupport2.javacvsImpl.io.ReadThread) at com.intellij.cvsSupport2.javacvsImpl.io.ReadThread.run(ReadThread.java:72) "Process with progress" prio=6 tid=0x05069a78 nid=0x40f8 runnable [0x05f8f000..0x05f8fce8] at org.netbeans.lib.cvsclient.file.AbstractFileObject.isRoot(AbstractFileObject.java) at org.netbeans.lib.cvsclient.file.AbstractFileObject.getParentPath(AbstractFileObject.java:89) at org.netbeans.lib.cvsclient.progress.receiving.AbstractResponseProgressHandler.fileProcessed(AbstractResponseProgressHandler.java:58) at org.netbeans.lib.cvsclient.progress.receiving.FileInfoAndDirectoryResponseProgressHandler.fileInfoGenerated(FileInfoAndDirectoryResponseProgressHandler.java:43) at org.netbeans.lib.cvsclient.event.EventManager.notifyFileInfoListeners(EventManager.java:172) at org.netbeans.lib.cvsclient.command.update.UpdateMessageParser.outputDone(UpdateMessageParser.java:80) at org.netbeans.lib.cvsclient.command.update.UpdateMessageParser.ensureExistingFileInfoContainer(UpdateMessageParser.java:192) at org.netbeans.lib.cvsclient.command.update.UpdateMessageParser.processFile(UpdateMessageParser.java:206) at org.netbeans.lib.cvsclient.command.update.UpdateMessageParser.parseLine(UpdateMessageParser.java:173) at org.netbeans.lib.cvsclient.command.AbstractMessageParser.messageSent(AbstractMessageParser.java:57) at org.netbeans.lib.cvsclient.event.EventManager.notifyMessageListeners(EventManager.java:135) at org.netbeans.lib.cvsclient.response.DefaultResponseHandler.processMessageResponse(DefaultResponseHandler.java:43) at org.netbeans.lib.cvsclient.response.ResponseParser.processResponse(ResponseParser.java:50) at org.netbeans.lib.cvsclient.RequestProcessor.handleResponses(RequestProcessor.java:241) at org.netbeans.lib.cvsclient.RequestProcessor.processRequests(RequestProcessor.java:163) at org.netbeans.lib.cvsclient.RequestProcessor.processRequests(RequestProcessor.java:81) at org.netbeans.lib.cvsclient.command.update.UpdateCommand.execute(UpdateCommand.java:108) at com.intellij.cvsSupport2.cvsoperations.common.CvsCommandOperation.execute(CvsCommandOperation.java:256) at com.intellij.cvsSupport2.cvsoperations.common.CvsCommandOperation.execute(CvsCommandOperation.java:202) at com.intellij.cvsSupport2.cvsoperations.common.CvsCommandOperation.execute(CvsCommandOperation.java:155) - locked <0x1d401dc8> (a java.lang.Class) at com.intellij.cvsSupport2.cvsoperations.common.CvsOperationOnFiles.execute(CvsOperationOnFiles.java:36) - locked <0x1d401dc8> (a java.lang.Class) - locked <0x153b58b0> (a com.intellij.cvsSupport2.cvsoperations.cvsUpdate.UpdateOperation) at com.intellij.cvsSupport2.cvshandlers.CommandCvsHandler$3.run(CommandCvsHandler.java:328) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:133) at com.intellij.cvsSupport2.cvshandlers.CommandCvsHandler.runOperation(CommandCvsHandler.java:325) at com.intellij.cvsSupport2.cvshandlers.CommandCvsHandler.internalRun(CommandCvsHandler.java:286) at com.intellij.cvsSupport2.cvshandlers.CvsHandler.run(CvsHandler.java:119) at com.intellij.cvsSupport2.cvsExecution.CvsOperationExecutor$2.run(CvsOperationExecutor.java:133) at com.intellij.cvsSupport2.cvsExecution.CvsOperationExecutor.performActionSync(CvsOperationExecutor.java:147) at com.intellij.cvsSupport2.CvsUpdateEnvironment.updateDirectories(CvsUpdateEnvironment.java:88) at com.intellij.openapi.vcs.update.AbstractCommonUpdateAction$1.run(AbstractCommonUpdateAction.java:22) at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:57) at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:5) "AWT-EventQueue-1" prio=6 tid=0x039ee3c0 nid=0x3d30 in Object.wait() [0x0423f000..0x0423f9e8] at java.lang.Object.wait(Native Method) - waiting on <0x1105d9c8> (a com.intellij.util.concurrency.WriterPreferenceReadWriteLock$WriterLock) at java.lang.Object.wait(Object.java:474) at com.intellij.util.concurrency.WriterPreferenceReadWriteLock$WriterLock.acquire(WriterPreferenceReadWriteLock.java:239) - locked <0x1105d9c8> (a com.intellij.util.concurrency.WriterPreferenceReadWriteLock$WriterLock) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:401) at com.intellij.util.ui.EditorAdapter.flushStoredLines(EditorAdapter.java:73) - locked <0x153b5db8> (a com.intellij.util.ui.EditorAdapter) at com.intellij.util.ui.EditorAdapter.access$000(EditorAdapter.java:52) at com.intellij.util.ui.EditorAdapter$1.run(EditorAdapter.java:63) at com.intellij.util.Alarm$1.run(Alarm.java:106) at com.intellij.util.Alarm$MyThread$1.run(Alarm.java:250) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:8) - locked <0x1132dab0> (a java.lang.Object) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:461) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:90) at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:168) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:27) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) ]]>

0

Hello Gordon,

Are you sure it's a deadlock? The "Process with progress" thread seems to
be alive and well in this thread dump.

GT> By "next EAP" do you mean 5661? Because that still freezes the UI
GT> during CVS Update. Here's a thread dump of the pertinent threads:
GT>
GT> Full thread dump Java HotSpot(TM) Client VM (1.5.0_07-b03 mixed GT> mode): GT> "CvsReadThread" prio=10 tid=0x0bb19ce8 nid=0x4140 in Object.wait() GT> [0x0d4ef000..0x0d4efa68] GT> at java.lang.Object.wait(Native Method) GT> - waiting on <0x15660180> (a GT> com.intellij.cvsSupport2.javacvsImpl.io.ReadThread) GT> at java.lang.Object.wait(Object.java:474) GT> at GT> com.intellij.cvsSupport2.javacvsImpl.io.ReadThread.waitForRead(ReadT GT> hread.java:175) GT> - locked <0x15660180> (a GT> com.intellij.cvsSupport2.javacvsImpl.io.ReadThread) GT> at GT> com.intellij.cvsSupport2.javacvsImpl.io.ReadThread.run(ReadThread.ja GT> va:72) GT> "Process with progress" prio=6 tid=0x05069a78 nid=0x40f8 runnable GT> [0x05f8f000..0x05f8fce8] GT> at GT> org.netbeans.lib.cvsclient.file.AbstractFileObject.isRoot(AbstractFi GT> leObject.java) GT> at GT> org.netbeans.lib.cvsclient.file.AbstractFileObject.getParentPath(Abs GT> tractFileObject.java:89) GT> at GT> org.netbeans.lib.cvsclient.progress.receiving.AbstractResponseProgre GT> ssHandler.fileProcessed(AbstractResponseProgressHandler.java:58) GT> at GT> org.netbeans.lib.cvsclient.progress.receiving.FileInfoAndDirectoryRe GT> sponseProgressHandler.fileInfoGenerated(FileInfoAndDirectoryResponse GT> ProgressHandler.java:43) GT> at GT> org.netbeans.lib.cvsclient.event.EventManager.notifyFileInfoListener GT> s(EventManager.java:172) GT> at GT> org.netbeans.lib.cvsclient.command.update.UpdateMessageParser.output GT> Done(UpdateMessageParser.java:80) GT> at GT> org.netbeans.lib.cvsclient.command.update.UpdateMessageParser.ensure GT> ExistingFileInfoContainer(UpdateMessageParser.java:192) GT> at GT> org.netbeans.lib.cvsclient.command.update.UpdateMessageParser.proces GT> sFile(UpdateMessageParser.java:206) GT> at GT> org.netbeans.lib.cvsclient.command.update.UpdateMessageParser.parseL GT> ine(UpdateMessageParser.java:173) GT> at GT> org.netbeans.lib.cvsclient.command.AbstractMessageParser.messageSent GT> (AbstractMessageParser.java:57) GT> at GT> org.netbeans.lib.cvsclient.event.EventManager.notifyMessageListeners GT> (EventManager.java:135) GT> at GT> org.netbeans.lib.cvsclient.response.DefaultResponseHandler.processMe GT> ssageResponse(DefaultResponseHandler.java:43) GT> at GT> org.netbeans.lib.cvsclient.response.ResponseParser.processResponse(R GT> esponseParser.java:50) GT> at GT> org.netbeans.lib.cvsclient.RequestProcessor.handleResponses(RequestP GT> rocessor.java:241) GT> at GT> org.netbeans.lib.cvsclient.RequestProcessor.processRequests(RequestP GT> rocessor.java:163) GT> at GT> org.netbeans.lib.cvsclient.RequestProcessor.processRequests(RequestP GT> rocessor.java:81) GT> at GT> org.netbeans.lib.cvsclient.command.update.UpdateCommand.execute(Upda GT> teCommand.java:108) GT> at GT> com.intellij.cvsSupport2.cvsoperations.common.CvsCommandOperation.ex GT> ecute(CvsCommandOperation.java:256) GT> at GT> com.intellij.cvsSupport2.cvsoperations.common.CvsCommandOperation.ex GT> ecute(CvsCommandOperation.java:202) GT> at GT> com.intellij.cvsSupport2.cvsoperations.common.CvsCommandOperation.ex GT> ecute(CvsCommandOperation.java:155) GT> - locked <0x1d401dc8> (a java.lang.Class) GT> at GT> com.intellij.cvsSupport2.cvsoperations.common.CvsOperationOnFiles.ex GT> ecute(CvsOperationOnFiles.java:36) GT> - locked <0x1d401dc8> (a java.lang.Class) GT> - locked <0x153b58b0> (a GT> com.intellij.cvsSupport2.cvsoperations.cvsUpdate.UpdateOperation) GT> at GT> com.intellij.cvsSupport2.cvshandlers.CommandCvsHandler$3.run(Command GT> CvsHandler.java:328) GT> at GT> com.intellij.openapi.application.impl.ApplicationImpl.runReadAction( GT> ApplicationImpl.java:133) GT> at GT> com.intellij.cvsSupport2.cvshandlers.CommandCvsHandler.runOperation( GT> CommandCvsHandler.java:325) GT> at GT> com.intellij.cvsSupport2.cvshandlers.CommandCvsHandler.internalRun(C GT> ommandCvsHandler.java:286) GT> at GT> com.intellij.cvsSupport2.cvshandlers.CvsHandler.run(CvsHandler.java: GT> 119) GT> at GT> com.intellij.cvsSupport2.cvsExecution.CvsOperationExecutor$2.run(Cvs GT> OperationExecutor.java:133) GT> at GT> com.intellij.cvsSupport2.cvsExecution.CvsOperationExecutor.performAc GT> tionSync(CvsOperationExecutor.java:147) GT> at GT> com.intellij.cvsSupport2.CvsUpdateEnvironment.updateDirectories(CvsU GT> pdateEnvironment.java:88) GT> at GT> com.intellij.openapi.vcs.update.AbstractCommonUpdateAction$1.run(Abs GT> tractCommonUpdateAction.java:22) GT> at GT> com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(Pr GT> ogressManagerImpl.java:57) GT> at GT> com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(Progres GT> sManagerImpl.java:5) GT> "AWT-EventQueue-1" prio=6 tid=0x039ee3c0 nid=0x3d30 in Object.wait() GT> [0x0423f000..0x0423f9e8] GT> at java.lang.Object.wait(Native Method) GT> - waiting on <0x1105d9c8> (a GT> com.intellij.util.concurrency.WriterPreferenceReadWriteLock$WriterLo GT> ck) GT> at java.lang.Object.wait(Object.java:474) GT> at GT> com.intellij.util.concurrency.WriterPreferenceReadWriteLock$WriterLo GT> ck.acquire(WriterPreferenceReadWriteLock.java:239) GT> - locked <0x1105d9c8> (a GT> com.intellij.util.concurrency.WriterPreferenceReadWriteLock$WriterLo GT> ck) GT> at GT> com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction GT> (ApplicationImpl.java:401) GT> at GT> com.intellij.util.ui.EditorAdapter.flushStoredLines(EditorAdapter.ja GT> va:73) GT> - locked <0x153b5db8> (a com.intellij.util.ui.EditorAdapter) GT> at GT> com.intellij.util.ui.EditorAdapter.access$000(EditorAdapter.java:52) GT> at GT> com.intellij.util.ui.EditorAdapter$1.run(EditorAdapter.java:63) GT> at com.intellij.util.Alarm$1.run(Alarm.java:106) GT> at com.intellij.util.Alarm$MyThread$1.run(Alarm.java:250) GT> at GT> com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run( GT> LaterInvocator.java:8) GT> - locked <0x1132dab0> (a java.lang.Object) GT> at GT> java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) GT> at java.awt.EventQueue.dispatchEvent(EventQueue.java:461) GT> at GT> com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.ja GT> va:90) GT> at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:168) GT> at GT> com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:27) GT> at GT> java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchT GT> hread.java:242) GT> at GT> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThr GT> ead.java:163) GT> at GT> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157 GT> ) GT> at GT> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149 GT> ) GT> at GT> java.awt.EventDispatchThread.run(EventDispatchThread.java:110) GT> ]]>
--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Sorry, dupe because the forum is acting up.

0

Are you sure it's a deadlock? The "Process with
progress" thread seems to
be alive and well in this thread dump.


Yes, that thread is fine. The CVS update eventually completes. So technically it's not a real deadlock.

However, the problem is with the "AWT-EventQueue-1" thread. It's blocked waiting for notification on a com.intellij.util.concurrency.WriterPreferenceReadWriteLock$WriterLock which means that the whole UI is frozen and not refreshing during the CVS Update operation.

Message was edited by:
Gordon Tyler

0

Hello Gordon,

>> Are you sure it's a deadlock? The "Process with
>> progress" thread seems to
>> be alive and well in this thread dump.
GT> Yes, that thread is fine. The CVS update eventually completes.
GT>
GT> The problem is with the "AWT-EventQueue-1" thread. It's blocked
GT> waiting for notification on a
GT> com.intellij.util.concurrency.WriterPreferenceReadWriteLock$WriterLo
GT> ck and so the whole UI is frozen and not refreshing during the CVS
GT> Update operation.

We'll improve this behavior in the next EAP so that async CVS updates no
longer interfere so much with the UI thread. Thanks.

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Okay, this seems to be finally solved in #5692. I see progress updating and IDEA is not locked up. However, for most of the progress all I see is "76%" -- just some percentage number and no other text. Sometimes I'll see something lile "97%: Update Project: Prune empty directories..." But that's only visible for a small part of the update. It would be really nice if there was some explanatory status text always displayed alongside the progress percentage.

Thanks,
Gordon

0

Hello Gordon,

GT> Okay, this seems to be finally solved in #5692. I see progress
GT> updating and IDEA is not locked up. However, for most of the
GT> progress all I see is "76%" -- just some percentage number and no
GT> other text. Sometimes I'll see something lile "97%: Update Project:
GT> Prune empty directories..." But that's only visible for a small part
GT> of the update. It would be really nice if there was some explanatory
GT> status text always displayed alongside the progress
GT> percentage.

JIRA request please?

--
Dmitry Jemerov
Software Developer
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Oh

Attachment not added (content type not allowed): "amateur-porn.html"
Attachment not added (content type not allowed): "ass-parade.html"
Attachment not added (content type not allowed): "black-booty.html"
Attachment not added (content type not allowed): "black-porn.html"
Attachment not added (content type not allowed): "cum-fiesta.html"

0

I'm getting hanging when trying to commit files to CVS on Windows XP on 7.0 M2.

0

Hello Anthony,

I'm getting hanging when trying to commit files to CVS on Windows XP
on 7.0 M2.


Could you please take a thread dump (run idea.bat instead of idea.exe and
press Ctrl-Break in the console) when you experience such a hang?

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Please sign in to leave a comment.