[Logo] JCVSForum - Community Support For JCVS Users and Developers
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Jcvs won't checkout a module  XML
Forum Index » JCVS Users
Author Message

When I attempt to checkout a module, Jcvs(running on XP) hangs with "Reading
Server Response..." displayed. 'Cancel Checkout' doesn't seem to have any
effect. I am using SSH to connect and I didn't have any problems creating the
module or importing a file. The module contains a single binary file, about 1MB
in size. For some reason it just won't checkout.


Joined: 05/06/2004 18:09:23
Messages: 367
Location: Bangkok

Is there any way that you can test this checkout without the SSH connection?

It is the size of the file that I believe is the issue. Many people have
reported that they had to disable GZIP entirely for large files. I also wonder
if j2ssh is having difficulties with the file size, although I would think you
would at least see the transfer begin.

Also, is there enough available diskspace in your temp dir for the file?

Finally, a log file with tracing turned on may help.
[Email] [WWW]

I can't test this checkout without using SSH.

Gzip is disabled entirely. I have plenty of disk space.

The log file shows the following message: "ERROR admin 'Root' file
'c:\sandbox\test3\CVS\Root' is empty!"

There must be a file size issue. I created a new module with a text file and a
small binary file (16K). I was able to check those out without any problems.
After I added a 1MB .PDF file, I was longer able to checkout the module. Again,
I don't have any problems adding files, only checking them out.


Joined: 05/06/2004 18:09:23
Messages: 367
Location: Bangkok

I do not doubt that filesize is the issue. I have no experience with j2ssh, so I
do not know if there is some inherent issue there. There could possibly be some
value that limits connection bandwidth.

Are you going through any sort of firewall? I have seen firewalls cause
precisely this problem.

It would be nice to know exactly how far the processing gets. Are you setting
all of the "trace" flags on your CVSRequest? I would expect a lot of logging
related to the rootdir, arguments, etc.
[Email] [WWW]

I enabled the trace as you suggested. The result is below. There is a firewall
on both ends.

======================== CVSClient.processCVSRequest ========================
Command: co
Repository: test2
RootRepository: /usr/local/cvsroot
CVSServer: 22@xx.xx.xxx.xxx
RootDirectory: /usr/local/cvsroot
LocalDirectory: c:\sandbox
Connect Method: SSH
Rsh Command: null
Server Command: cvs server
isPServer? 'false' user 'xxxxx' pass 'xxxxxxx'
There are no user set variables.
NumEntries: 0 NumArguments: 1
GlobalOptions: 0 GzipStreamLevel: 0
redirectOutput 'false' execInCurDir 'false'
sendEntries 'false' sendEntryfiles 'false'
sendModifieds 'false' sendEmptyMods 'false'
sendArguments 'true ' ignoreResult 'false'
sendModule 'false' allowOverWrites 'true '
displayReponse 'true ' handleUpdated 'true '
handleMerged 'false' handleCopyFile 'false'
handleEntries 'true ' handleFlags 'false'
queueResponse 'false' responseHandler 'com.ice.cvsc.CVSProject'
includeNotifies 'false' notifiesSize 'null'
CVSRequest: opening server...
CVSClient.openServer: creating connection...
CVSClient.establishSSHConnection: creating connection...
CVSClient.establishSSHConnection: localHost=/
CVSClient.establishSSHConnection: sshClient=com.sshtools.j2ssh.SshClient@c789fb
CVSClient.establishSSHConnection: connected
CVSClient.authenticate: result=4
The authentication is complete
CVSClient.establishSSHConnection: command(cvs server) = true
CVSClient.establishSSHConnection: command session established
CVSClient.openServer: creating i/o streams...
CVSClient.openServer: server is open.
CVSRequest: server is open.
CVSClient.SENDLine: 'valid-requests'
CVSClient.READLine: 'Valid-requests Root Valid-responses valid-requests
Repository Directory Max-dotdot Static-directory Sticky Checkin-prog Update-prog
Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify
Questionable Case Argument Argumentx Global_option Gzip-stream
wrapper-sendme-rcsOptions Set Kerberos-encrypt Gssapi-encrypt
Gssapi-authenticate expand-modules ci co update diff log rlog add remove
update-patches gzip-file-contents status rdiff tag rtag import admin export
history release watch-on watch-off watch-add watch-remove watchers editors init
annotate rannotate noop version'
CVSClient.READLine: 'ok'
Valid Requests: useUnchanged 'true' useDirectory 'true'
CVSRequest: send root directory...
CVSClient.SENDLine: 'Root /usr/local/cvsroot'
CVSClient.SENDLine: 'Valid-responses E M ok error Valid-requests Created Merged
Updated Update-existing Removed Remove-entry New-entry Checked-in Checksum
Copy-file Notified Clear-sticky Set-sticky Clear-static-directory
Set-static-directory '
CVSClient.SENDLine: 'UseUnchanged'
CVSRequest: send entries...
CVSRequest: send root repository...
CVSClient.SENDLine: 'Directory .'
CVSClient.SENDLine: '/usr/local/cvsroot'
CVSRequest: send arguments...
CVSClient.SENDLine: 'Argument test2'
CVSRequest: send command 'co'
CVSClient.SENDLine: 'co'
CVSRequest: reading response...
CVSClient.READLine: 'Clear-sticky test2/'
PARSE: Clear-sticky 'test2/'
CVSClient.READLine: '/usr/local/cvsroot/test2/'
PARSE: FullPath '/usr/local/cvsroot/test2/'
Clear-sticky: pathName './test2/'

ERROR admin 'Root' file 'c:\sandbox\test2\CVS\Root' is empty!
CVSClient.READLine: 'Clear-static-directory test2/'
PARSE: Clear-static-directory 'test2/'
CVSClient.READLine: '/usr/local/cvsroot/test2/'
PARSE: FullPath '/usr/local/cvsroot/test2/'
Clear-static-directory: pathName './test2/'

CVSClient.READLine: 'E cvs server: Updating test2'
CVSClient.READLine: 'M U test2/acacis61_installation_guide.pdf'
CVSClient.READLine: 'Created test2/'
PARSE: Created 'test2/'
CVSClient.READLine: '/usr/local/cvsroot/test2/acacis61_installation_guide.pdf'
PARSE: FullPath '/usr/local/cvsroot/test2/acacis61_installation_guide.pdf'
CVSClient.READLine: '/acacis61_installation_guide.pdf/'
PARSE: Entry '/acacis61_installation_guide.pdf/'
CVSClient.READLine: 'u=rw,g=rw,o=rw'
PARSE: Mode 'u=rw,g=rw,o=rw'
CVSClient.READLine: '1117932'


Joined: 05/06/2004 18:09:23
Messages: 367
Location: Bangkok

Ok. We see that the last line is the CVS Server telling us the size of the file
about to be transmitted. Ergo, the process gets stuck either because the file is
never transmitted, or because it hangs during transmission. You could very the
latter by adding code to the method that handles the download

Amazingly, the following code is found there:

And the file size limit is 1000000. Wow! But the flag is set to false, so this
code does not execute, and besides, it would throw the error to let us know what
was happening.

I am very suspicious of the firewalls! Is there anyway to test without them?

This message was edited 1 time. Last update was at 30/07/2004 19:46:56

[Email] [WWW]

I've tested it again with the firewalls down and it still doesn't work. I'm not
a programmer so I can't debug it using your suggestion. I'm going to try using
a different CVS client. Thanks for the help though.


Joined: 05/06/2004 18:09:23
Messages: 367
Location: Bangkok

Please let me know what you discover with the other clients. I am very curious
to know.
[Email] [WWW]
Forum Index » JCVS Users
Go to:   
Powered by JForum 2.1.9 © JForum Team