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 36819 - PVCS: Unable to lock any file with VM 7.5.1
Summary: PVCS: Unable to lock any file with VM 7.5.1
Status: VERIFIED FIXED
Alias: None
Product: obsolete
Classification: Unclassified
Component: vcsgeneric (show other bugs)
Version: -S1S-
Hardware: PC Windows ME/2000
: P1 blocker (vote)
Assignee: Martin Entlicher
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-10-24 13:28 UTC by Jiri Kovalsky
Modified: 2004-07-22 21:20 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Thread dump taken while IDE was dead-locked during VCS group correction. (11.52 KB, text/plain)
2003-10-24 13:29 UTC, Jiri Kovalsky
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jiri Kovalsky 2003-10-24 13:28:48 UTC
Sun ONE Studio 5.0, build #030528
Windows 2000, JDK 1.4.1_02 build #06
Merant PVCS Version Manager 7.5.1

Description:
============
It is not possible to lock a file somehow if
Version Manager 7.5.1 is used. Due to this fact
auto-locking feature or correction of VCS groups
do not work. It always produces a deadlock -
attaching full thread dump.

Steps to reproduce:
===================
1. Mount PVCS filesystem.
2. Invoke "PVCS|Get" on some [Current] file.
3. Check both checkboxes and push "OK".
4. The node stays as [Current] only.
5. Modify and add it to default VCS group.
6. Invoke "Versioning|VCS Groups".
7. Right click "<Default Group>" node and choose
"Verify".
8. Check "Lock For Changes In Repository" and push
 "Correct Group" button.
9. IDE is dead-locked.
Comment 1 Jiri Kovalsky 2003-10-24 13:29:36 UTC
Created attachment 11957 [details]
Thread dump taken while IDE was dead-locked during VCS group correction.
Comment 2 Martin Entlicher 2003-10-24 14:08:54 UTC
The problem is in the incompatibility of PVCS.
Version 7.5 have a different format of output from list then 6.7:

Version 6.7.10:

Archive:LockInfo=[1.1 : 1.2 : martin :
/home/martin/TEST_PVCS/PVCS_WORK/test/TestXML.xml : Thu Oct 23
17:11:32 GMT+02:00 2003]

Version 7.5:

Archive:LockInfo=[Locked Revision:  1.1
New Revision:     1.2
Locked By:        martin
Promo Group Name: 
Work Path:        /home/martin/TEST_PVCS/PVCS_WORK/test/TestXML.xml
Description:      null
Lock Created:     Thu Oct 23 17:11:32 GMT+02:00 2003
]

This is annoying. We can not be sure that the integration based on
PCLI commands will not break completely in the future versions of
PVCS!!!
Comment 3 Martin Entlicher 2003-10-27 15:13:24 UTC
We should be able to parse both formats.
Starting to work on it...
Comment 4 Martin Entlicher 2003-10-27 17:46:09 UTC
Well, there're more problems submitted in this issue.
The deadlock is caused by a bug at
org.netbeans.modules.vcs.profiles.pvcs.commands.PvcsVerifyAction.performTLCorrection(PvcsVerifyAction.java:330).
The command must not be executed in AWT thread. This is a generic
problem for all versions of PVCS.

The problem with locker information is fixed in the main trunk and
prj40_prototype branch:

Checking in PvcsListCommand.java;
/cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/list/PvcsListCommand.java,v 
<--  PvcsListCommand.java
new revision: 1.6; previous revision: 1.5
done

Checking in PvcsListCommand.java;
/cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/list/PvcsListCommand.java,v 
<--  PvcsListCommand.java
new revision: 1.3.20.3; previous revision: 1.3.20.2
done
Comment 5 Martin Entlicher 2003-10-27 19:26:38 UTC
The fix of the locker status is still not optimal.
It will not work correctly when there are more users having lock on a
single file.
Comment 6 Martin Entlicher 2003-10-30 11:49:37 UTC
The deadlock is fixed in the main trunk and prj40_prototype branch:

Checking in api/vcs/VcsManager.java;
/cvs/vcscore/src/org/netbeans/api/vcs/VcsManager.java,v  <-- 
VcsManager.java
new revision: 1.4; previous revision: 1.3
done
Processing log script arguments...
More commits to come...
Checking in modules/vcscore/commands/CommandProcessor.java;
/cvs/vcscore/src/org/netbeans/modules/vcscore/commands/CommandProcessor.java,v 
<--  CommandProcessor.java
new revision: 1.14; previous revision: 1.13
done

Checking in api/vcs/VcsManager.java;
/cvs/vcscore/src/org/netbeans/api/vcs/VcsManager.java,v  <-- 
VcsManager.java
new revision: 1.3.2.1; previous revision: 1.3
done
Processing log script arguments...
More commits to come...
Checking in modules/vcscore/commands/CommandProcessor.java;
/cvs/vcscore/src/org/netbeans/modules/vcscore/commands/CommandProcessor.java,v 
<--  CommandProcessor.java
new revision: 1.3.4.5; previous revision: 1.3.4.4
done


So, the only pending thing seems to be the case when more users having
lock on a single file.
Comment 7 Martin Entlicher 2003-10-30 13:18:28 UTC
So if there are two lockers, the output from "pcli list" looks like:

Version 6.7.10:
Archive:LockInfo=[1.1 : 1.2 : martin :
/home/martin/TEST_PVCS/PVCS_WORK/test/TestXML.xml : Thu Oct 23
17:11:32 GMT+02:00 2003][1.1 : 1.1.1.0 : pvcstest : Thu Oct 30
13:18:10 GMT+01:00 2003]

Version 7.5.1.0:
Archive:LockInfo=[Locked Revision:  1.1
New Revision:     1.2
Locked By:        martin
Promo Group Name: 
Work Path:        /home/martin/TEST_PVCS/PVCS_WORK/test/TestXML.xml
Description:      null
Lock Created:     Thu Oct 23 17:11:32 GMT+02:00 2003
][Locked Revision:  1.1
New Revision:     1.1.1.0
Locked By:        pvcstest
Promo Group Name: 
Work Path:        null
Description:      null
Lock Created:     Thu Oct 30 13:18:10 GMT+01:00 2003
]


There's a problem, that currently "locker" property is supposed to
contain only one user name. However both Windows and UNIX systems do
not permit a comma in user name. Therefore we can add more user names
separated by commas there. The auto-locking must take this into
account.
Comment 8 Martin Entlicher 2003-10-30 14:18:00 UTC
The problem with multiple locks is fixed in the main trunk:

Checking in VcsFileSystem.java;
/cvs/vcscore/src/org/netbeans/modules/vcscore/VcsFileSystem.java,v 
<--  VcsFileSystem.java
new revision: 1.235; previous revision: 1.234
done

Checking in PvcsListCommand.java;
/cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/list/PvcsListCommand.java,v 
<--  PvcsListCommand.java
new revision: 1.7; previous revision: 1.6
done

Checking in pvcsUnix.xml;
/cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsUnix.xml,v 
<--  pvcsUnix.xml
new revision: 1.51; previous revision: 1.50
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.51; previous revision: 1.50
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.58; previous revision: 1.57
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.58; previous revision: 1.57
done
Comment 9 Martin Entlicher 2003-10-30 17:20:47 UTC
Also merged into prj40_prototype branch:

Checking in VcsFileSystem.java;
/cvs/vcscore/src/org/netbeans/modules/vcscore/VcsFileSystem.java,v 
<--  VcsFileSystem.java
new revision: 1.193.2.17; previous revision: 1.193.2.16
done

Checking in
src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcs.xml;
/cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/Attic/pvcs.xml,v 
<--  pvcs.xml
new revision: 1.1.2.21; previous revision: 1.1.2.20
done
Checking in
src/org/netbeans/modules/vcs/profiles/pvcs/config/pvcsLoc_XX.xml;
/cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/config/Attic/pvcsLoc_XX.xml,v 
<--  pvcsLoc_XX.xml
new revision: 1.1.2.21; previous revision: 1.1.2.20
done
Processing log script arguments...
More commits to come...
Checking in
src/org/netbeans/modules/vcs/profiles/pvcs/list/PvcsListCommand.java;
/cvs/vcsgeneric/profiles/pvcs/src/org/netbeans/modules/vcs/profiles/pvcs/list/PvcsListCommand.java,v 
<--  PvcsListCommand.java
new revision: 1.3.20.4; previous revision: 1.3.20.3
done
Comment 10 Jiri Kovalsky 2004-07-22 21:20:54 UTC
Verified in development build #200407220815 of NetBeans 4.0.