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.
Development build of Sun ONE Studio 5.0 #030325 Windows 2000 with JDK 1.4.1 build #21 Description: ============ VCS group containing some file from PVCS filesystem can't be verified. VERIFY_ACTION must be killed to see group verification dialog. Furthermore it blocks execution of other commands ! Please investigate it. This is a regression and must be resolved soon. Steps to reproduce: =================== 1. Mount PVCS filesystem and Select some [Current] file. 2. "Include in VCS Group|<Default Group>" the file. 3. Invoke "Versioning|VCS Groups" menu from main window. 4. Invoke "Verify" action on "Default Group". It will never finish.
It's easily reproducible. It's a "deadlock" in commands customization process. This may cause problems of all commands, that use some preprocessing. The two affected threads attached.
Created attachment 9534 [details] The two locked threads.
The problem is in the PVCS profile. The VERIFY_ACTION tries to run LOCK_ command from itself, but LOCK_ command can not be executed together with other commands in the same folder. Thus LOCK_ can not be started before VERIFY_ACTION is finished, but VERIFY_ACTION waits for the LOCK_ command. The solution is to make VERIFY_ACTION inert (it will not be considered when deciding which commands can be run concurrently). The fix is simple and reliable: Checking in pvcsUnix.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsUnix.xml,v <-- pvcsUnix.xml new revision: 1.36; previous revision: 1.35 done Checking in pvcsUnixLoc_XX.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsUnixLoc_XX.xml,v <-- pvcsUnixLoc_XX.xml new revision: 1.37; previous revision: 1.36 done Checking in pvcsWin.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsWin.xml,v <-- pvcsWin.xml new revision: 1.43; previous revision: 1.42 done Checking in pvcsWin98.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsWin98.xml,v <-- pvcsWin98.xml new revision: 1.40; previous revision: 1.39 done Checking in pvcsWin98Loc_XX.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsWin98Loc_XX.xml,v <-- pvcsWin98Loc_XX.xml new revision: 1.40; previous revision: 1.39 done Checking in pvcsWinLoc_XX.xml; /cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsWinLoc_XX.xml,v <-- pvcsWinLoc_XX.xml new revision: 1.43; previous revision: 1.42 done
Created attachment 9556 [details] The text diff with respect to release35 branch.
Created attachment 9557 [details] The binary patch, that fix this problem.
The binary patch attached. To apply: create folder patches/org-netbeans-modules-vcs-profiles-pvcs in "modules" folder in the NetBeans 3.5 installation directory and copy the attached Patch32348.jar into that folder: cp Patch32348.jar \ netbeans/modules/patches/org-netbeans-modules-vcs-profiles-pvcs Then restart NetBeans.
Cool, I have just verified the fix using supplied patch in development build #030326 of Sun ONE Studio 5.0. Go ahead with integration !
Martin, I am still waiting for the code reviewer to add his comments here
Setting concurrentExec property of VERIFY_ACTION to -1 causes that LOCK_ command invoked from VERIFY_ACTION command could be executed and it definitely fixes problem with deadlock. Code reviewed without objections.
approved for 3.5 by release coordinator
Thanks for the review and approval, it's merged into release35 branch: Checking in pvcsUnix.xml; /shared/data/helm/cvs/repository/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsUnix.xml,v <-- pvcsUnix.xml new revision: 1.35.4.1; previous revision: 1.35 done Checking in pvcsUnixLoc_XX.xml; /shared/data/helm/cvs/repository/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsUnixLoc_XX.xml,v <-- pvcsUnixLoc_XX.xml new revision: 1.35.4.2; previous revision: 1.35.4.1 done Checking in pvcsWin.xml; /shared/data/helm/cvs/repository/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsWin.xml,v <-- pvcsWin.xml new revision: 1.42.4.1; previous revision: 1.42 done Checking in pvcsWin98.xml; /shared/data/helm/cvs/repository/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsWin98.xml,v <-- pvcsWin98.xml new revision: 1.39.4.1; previous revision: 1.39 done Checking in pvcsWin98Loc_XX.xml; /shared/data/helm/cvs/repository/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsWin98Loc_XX.xml,v <-- pvcsWin98Loc_XX.xml new revision: 1.39.4.1; previous revision: 1.39 done Checking in pvcsWinLoc_XX.xml; /shared/data/helm/cvs/repository/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsWinLoc_XX.xml,v <-- pvcsWinLoc_XX.xml new revision: 1.42.4.1; previous revision: 1.42 done
Verified in development build #200304132350 of NetBeans 3.5.