TMate update problem

the server fails to update on me and shows the following exception

org.tmatesoft.tmate.server.vcs.VCSException: unrecognized request `rlog'

running cvs rlog from the commandline works fine.

intelliJ seems to have the same problem when trying to fetch tags from the server (it stalls, without any network activity).

Have any of you had any similar problems?
Did you find a solution?

I am running windows XP, java 1.4.2_03, intellij 1159
My cvs server is running cvs version 1.11
The cvs client i used to verify is also version 1.11

any help is greatly appreciated.


Aiko

10 comments

Hello,

I've tested TMate with cvs 1.11.2 (on Linux) and cvsnt 2.0.11 (on Windows XP) on the server side and it works fine.

Could you please enable debug log in the TMate Server, reproduce the problem, and send me the log file?

To enable debug log, modify "debug" parameter value in TMATE_SERVER/webapps/tmate/WEB-INF/web.xml file, then restart the server. Debug log will be written to TMATE_SERVER/webapps/tmate/debug.log.txt file.

Thanks a lot for invetigating and reporting the problem!
Alexander Kitaev.

0

Hi Alexander,

attached the debug.log.txt

my dir structure is as follows:

base of cvs checkout: C:\AikoM\Dev\cvsco\cyko\
I used idea-1159 to checkout the following module.
module: plugins\log4jmonitor
first level with CVS dirs: plugins\log4jmonitor\CVS
- thus none in: plugins or cyko
idea project file: plugins\log4jmonitor\log4jmonitor.iml

I hope you this info helps,

Aiko


Alexander Kitaev wrote:

Hello,

I've tested TMate with cvs 1.11.2 (on Linux) and cvsnt 2.0.11 (on Windows XP) on the server side and it works fine.

Could you please enable debug log in the TMate Server, reproduce the problem, and send me the log file?

To enable debug log, modify "debug" parameter value in TMATE_SERVER/webapps/tmate/WEB-INF/web.xml file, then restart the server. Debug log will be written to TMATE_SERVER/webapps/tmate/debug.log.txt file.

Thanks a lot for invetigating and reporting the problem!
Alexander Kitaev.


[18:40:05][TMateServlet.init:-1] init: servlet initialized
[18:40:05][TMateServlet.init:-1] init: configuration loaded
[18:40:05][H.C:-1] tags update scheduled for: 17-feb-2004 4:00:00
[18:40:05][E.]]>:-1] parallel RLog execution: false
[18:40:05][E.]]>:-1] reuse CVS connections: false
[18:40:05][E.]]>:-1] connection time out (seconds): 60
[18:40:05][E.]]>:-1] gzip level: 6
[18:40:05][CVSSupportRO.hasChanged:-1] can't check history, last change time is unknown
[18:40:05][B.A:-1] module 0 of 1
[18:40:06][E.createRequestProcessor:-1] connection created: cyko.aiko.sh:2401:/usr/local/cvsroot
[18:40:06][E.createRequestProcessor:-1] connection could NOT be reused: cyko.aiko.sh:2401:/usr/local/cvsroot
[18:40:06][CVSSupportRO.initRepository:-1] cvs command: rlog -R -N CVSROOT
[18:40:06][CVSSupportRO.initRepository:-1] cvs command: rlog -R -N CVSROOT
[18:40:06][CVSSupportRO.initRepository:-1] cvs RCS repository location: /usr/local/cvsroot (was: /usr/local/cvsroot)
[18:40:06][CVSSupportRO.initRepository:-1] rcs repository location saved for: :pserver:cyko.aiko.sh:2401:/usr/local/cvsroot
[18:40:06][E.createRequestProcessor:-1] connection created: cyko.aiko.sh:2401:/usr/local/cvsroot
[18:40:06][E.createRequestProcessor:-1] connection could NOT be reused: cyko.aiko.sh:2401:/usr/local/cvsroot
[18:40:06][CVSSupportRO.rfilelog:-1] cvs command: rlog -N -r:HEAD -h plugins/log4jmonitor
[18:40:06][CVSSupportRO.rfilelog:-1] cvs listener reported an error: unrecognized request `rlog'
[18:40:06][FileBasedChangeMap.doDeleteTags:-1] can't find file to delete: ..\temp\.changes1076953205944\tag.properties
[18:40:06][FileBasedChangeMap.doDelete:-1] deleting changes map
[18:40:06][FileBasedChangeMap.doDelete:-1] fast deletion failed
[18:40:06][FileBasedChangeMap.doDelete:-1][00000010 ms] temporary changes map deleted
[18:41:55][TMateServlet.destroy:-1] dispose: waiting for shutdown command to execute
[18:41:55][C$1.disposeInstance:-1] shutdown: pending requests: 0
[18:41:55][TMateServlet.destroy:-1] dispose: shutdown command added to queue

0

Hello,

Accordingly to the log file, rlog command fails for unknown reason. May I ask you to execute the following command using the command line cvs client:

and see whether the results are correct (command should print information about all files in the module). I suppose that the same command is used by IDEA to fetch tag names (without -N option). Please run the above command NOT in the folder where the checked out files are located (i.e, you may run it from the root of the C: drive). Probably command line cvs output will give some clue on what is going wrong.

Thanks,
Alexander Kitaev.

0

Hi Alexander,

these are the results of the test.
My comments do not reflect the opinions of my employer.
it seems the command only runs from a dir which actualy has the plugins/log4jmonitor in it.

Aiko


Alexander Kitaev wrote:

Hello,

Accordingly to the log file, rlog command fails for unknown reason. May I ask you to execute the following command using the command line cvs client:


and see whether the results are correct (command should print information about all files in the module). I suppose that the same command is used by IDEA to fetch tag names (without -N option). Please run the above command NOT in the folder where the checked out files are located (i.e, you may run it from the root of the C: drive). Probably command line cvs output will give some clue on what is going wrong.

Thanks,
Alexander Kitaev.




C:\>cvs -d:pserver:X@cyko.aiko.sh:/usr/local/cvsroot rlog -N -r:HEAD -h plugins\log4jmonitor
cvs log: warning: the rlog command is deprecated
cvs log: use the synonymous log command instead
cvs : cannot find plugins\log4jmonitor: No such file or directory

C:\>cvs -d:pserver:X@cyko.aiko.sh:/usr/local/cvsroot log -N -r:HEAD -h plugins\log4jmonitor
cvs : cannot find plugins\log4jmonitor: No such file or directory

C:\>cd AikoM\Dev\cvsco\cyko\

C:\AikoM\Dev\cvsco\cyko>cvs -d:pserver:X@cyko.aiko.sh:/usr/local/cvsroot rlog -N -r:HEAD -h plugins\log4jmonitor
cvs server: Logging plugins/log4jmonitor

RCS file: /usr/local/cvsroot/plugins/log4jmonitor/log4jmonitor.iml,v
Working file: plugins/log4jmonitor/log4jmonitor.iml
head: 1.2
branch:
locks: strict
access list:
keyword substitution: kv
total revisions: 2
=============================================================================
...etc...


0

Hello,

Seems that you have version of the cvs server that doesn't support rlog command. I've investigated cvs sources (available at http://www.cvshome.org/) and discovered that cvs version 1.11 doesn't contain code that process "rlog" requests, while cvs 1.11.2 (one that is installed on my linux server) and cvs 1.11.13 (the latest stable version available at http://www.cvshome.org/) supports rlog request. In particular, file "src/server.c" differs in part where supported request names are enumerated.

To make TMate work correctly I recommend you to update your cvs server to the version 1.11.2 or 1.11.13. TMate doesn't use cvs client to access cvs, but it makes sense to update your cvs client to match the server version as well.

Excuse me for the delay with the answer and thank you for evaluating the plugin!
Alexander Kitaev.

0

Hi Alexander,

I've upgraded both server to version 1.11.13 and client to version 1.11.12 (as I couldn't find a binary 13 version) and the next problem appeared.

on the server running:
$cvs -d:local:/usr/local/cvsroot rlog -N -r:HEAD -h plugins/log4jmonitor
works perfectly

on my windows client however:
my downloaded client doesn't seem to agree with the format of the CVSROOT
no matter if I add a port number or password or not

c:\>set CVSROOT=:pserver:cyko@cyko.aiko.sh:/usr/local/cvsroot
c:\>cvs login
CVS Password:
/usr/local/cvsroot : no such repository

c:\>cvs rlog -N -r:HEAD -h plugins\log4jmonitor
cvs rlog: CVSROOT may only specify a positive, non-zero, integer port (not `d:').
cvs rlog: Perhaps you entered a relative pathname?
/usr/local/cvsroot : no such repository



tmate comes up with the following error this time round:
[21:45:40][E.]]>:-1] parallel RLog execution: false
[21:45:40][E.]]>:-1] reuse CVS connections: false
[21:45:40][E.]]>:-1] connection time out (seconds): 60
[21:45:40][E.]]>:-1] gzip level: 6
[21:45:40][CVSSupportRO.hasChanged:-1] can't check history, last change time is unknown
[21:45:40][B.A:-1] module 0 of 1
[21:45:40][E.createRequestProcessor:-1] connection created: cyko.aiko.sh:2401:/usr/local/cvsroot
[21:45:40][E.createRequestProcessor:-1] connection could NOT be reused: cyko.aiko.sh:2401:/usr/local/cvsroot
[21:45:40][CVSSupportRO.rfilelog:-1] cvs command: rlog -N -r:HEAD -h plugins/log4jmonitor
[21:45:40][CVSSupportRO.rfilelog:-1] cvs listener reported an error: unrecognized request `Case '
[21:45:40][FileBasedChangeMap.doDeleteTags:-1] can't find file to delete: ..\temp\.changes1077137140114\tag.properties
[21:45:40][FileBasedChangeMap.doDelete:-1] deleting changes map
[21:45:40][FileBasedChangeMap.doDelete:-1] fast deletion failed
[21:45:40][FileBasedChangeMap.doDelete:-1][00000000 ms] temporary changes map deleted

thanks for your efforts to help me out,

Aiko



Alexander Kitaev wrote:

Hello,

Seems that you have version of the cvs server that doesn't support rlog command. I've investigated cvs sources (available at http://www.cvshome.org/) and discovered that cvs version 1.11 doesn't contain code that process "rlog" requests, while cvs 1.11.2 (one that is installed on my linux server) and cvs 1.11.13 (the latest stable version available at http://www.cvshome.org/) supports rlog request. In particular, file "src/server.c" differs in part where supported request names are enumerated.

To make TMate work correctly I recommend you to update your cvs server to the version 1.11.2 or 1.11.13. TMate doesn't use cvs client to access cvs, but it makes sense to update your cvs client to match the server version as well.

Excuse me for the delay with the answer and thank you for evaluating the plugin!
Alexander Kitaev.

0

Hello,

About the first problem: As far as I understand with the latest cvs client one do not have to specify default port number in the CVSROOT, so just use the root without the port number with the command line client. This root may also be written in the CVS administrative files on your windows computer, so probably you may need to re-checkout your sources.

The second problem is also related to the cvs server version you're using. As I wrote before I've tested TMate with the CVS server version 1.11.2 only, not with the one of the latest ones. I've heard about the problems with the "Case" requests, they were reproducable with IDEA CVS integration as well. As a workaround, to make TMate work correctly I may suggest you to use cvs server version 1.11.2 now (or install TMate server on the same computer as the cvs, then, running on linux, it will not generate "Case" request) or wait till the next TMate build where I probably will make it work correctly with the latest CVS version (1.11.13).

Thanks,
Alexander Kitaev.

0

Hello Alexander,

version 1.11.2 did the trick for me..

but TMate pulls another trick on me now..

all starts out fine..

[22:33:11][TMateServlet.init:-1] init: servlet initialized
[22:33:12][TMateServlet.init:-1] init: configuration loaded
[22:33:12][H.C:-1] tags update scheduled for: 19-feb-2004 4:00:00
[22:33:12][E.]]>:-1] parallel RLog execution: false
[22:33:12][E.]]>:-1] reuse CVS connections: false
[22:33:12][E.]]>:-1] connection time out (seconds): 60
[22:33:12][E.]]>:-1] gzip level: 6
[22:33:12][CVSSupportRO.hasChanged:-1] can't check history, last change time is unknown
[22:33:12][B.A:-1] module 0 of 1
[22:33:12][E.createRequestProcessor:-1] connection created: cyko.aiko.sh:2401:/usr/local/cvsroot
[22:33:12][E.createRequestProcessor:-1] connection could NOT be reused: cyko.aiko.sh:2401:/usr/local/cvsroot
[22:33:12][CVSSupportRO.initRepository:-1] cvs command: rlog -R -N CVSROOT
[22:33:12][CVSSupportRO.initRepository:-1] cvs command: rlog -R -N CVSROOT
[22:33:12][CVSSupportRO.initRepository:-1] cvs RCS repository location: /usr/local/cvsroot (was: /usr/local/cvsroot)
[22:33:12][CVSSupportRO.initRepository:-1] rcs repository location saved for: :pserver:cyko.aiko.sh:2401:/usr/local/cvsroot
[22:33:12][E.createRequestProcessor:-1] connection created: cyko.aiko.sh:2401:/usr/local/cvsroot
[22:33:12][E.createRequestProcessor:-1] connection could NOT be reused: cyko.aiko.sh:2401:/usr/local/cvsroot
[22:33:13][CVSSupportRO.rfilelog:-1] cvs command: rlog -N -r:HEAD -h plugins/log4jmonitor
[22:33:13][CVSSupportRO.rfilelog:-1] cvs command: rlog -N -r:HEAD -h plugins/log4jmonitor
[22:33:13][B.A:-1] plugins.log4jmonitor: collecting changes
[22:33:13][G.A:-1] subsequent execution of 90 command(s)
[22:33:13][E.createRequestProcessor:-1] connection created: cyko.aiko.sh:2401:/usr/local/cvsroot
[22:33:13][E.createRequestProcessor:-1] connection could NOT be reused: cyko.aiko.sh:2401:/usr/local/cvsroot
[22:33:13][E.rlog:-1] cvs command: rlog -r:1.1 plugins/log4jmonitor/images/filter.png
[22:33:13][E.rlog:-1] cvs command: rlog -r:1.1 plugins/log4jmonitor/images/filter.png
[22:33:13][G.A:-1] command executed: 221 ms.


but then.. my server doesn't like TMate anymore and keeps throwing exceptions at me.
my guess is.. TMate is making to many requests to my server per second and inetd boggs up.
I also noticed that "reuse CVS connections" is set to false. can I change this to true?


[22:33:22][E.rlog:-1] cvs command: rlog -r:1.2 plugins/log4jmonitor/src/com/webspherious/log4jmonitor/actions/MyPriorityColorAction.java
[22:33:22][E.processRequests:-1] exception while processing request: class org.A.A.A.F.M:org.A.A.A.C.G: I/O error while connecting to host cyko.aiko.sh.
[22:33:22][E.processRequests:-1] exception caught: null
org.A.A.A.C.G: I/O error while connecting to host cyko.aiko.sh.
at org.A.A.A.C.D.A(Unknown Source)
at org.A.A.A.C.D.A(Unknown Source)
at org.A.A.A.F.D(Unknown Source)
at org.A.A.A.F.A(Unknown Source)
at org.tmatesoft.tmate.server.vcs.ccvs.E.processRequests(Unknown Source)
at org.tmatesoft.tmate.server.vcs.ccvs.E.rlog(Unknown Source)
at org.tmatesoft.tmate.server.vcs.ccvs.CVSSupportRO$2.A(Unknown Source)
at org.tmatesoft.tmate.server.vcs.ccvs.G.A(Unknown Source)
at org.tmatesoft.tmate.server.vcs.ccvs.CVSSupportRO.diff(Unknown Source)
at org.tmatesoft.tmate.server.C.B.A(Unknown Source)
at org.tmatesoft.tmate.server.C.F.A(Unknown Source)
at org.tmatesoft.tmate.server.C.C.run(Unknown Source)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
at org.A.A.A.I.A.A(Unknown Source)
at org.A.A.A.I.J.read(Unknown Source)
at org.A.A.A.I.H.A(Unknown Source)
... 12 more
[22:33:22][E.rlog:-1] exception caught: null
org.A.A.A.C.G: I/O error while connecting to host cyko.aiko.sh.
at org.A.A.A.C.D.A(Unknown Source)
at org.A.A.A.C.D.A(Unknown Source)
at org.A.A.A.F.D(Unknown Source)
at org.A.A.A.F.A(Unknown Source)
at org.tmatesoft.tmate.server.vcs.ccvs.E.processRequests(Unknown Source)
at org.tmatesoft.tmate.server.vcs.ccvs.E.rlog(Unknown Source)
at org.tmatesoft.tmate.server.vcs.ccvs.CVSSupportRO$2.A(Unknown Source)
at org.tmatesoft.tmate.server.vcs.ccvs.G.A(Unknown Source)
at org.tmatesoft.tmate.server.vcs.ccvs.CVSSupportRO.diff(Unknown Source)
at org.tmatesoft.tmate.server.C.B.A(Unknown Source)
at org.tmatesoft.tmate.server.C.F.A(Unknown Source)
at org.tmatesoft.tmate.server.C.C.run(Unknown Source)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
at org.A.A.A.I.A.A(Unknown Source)
at org.A.A.A.I.J.read(Unknown Source)
at org.A.A.A.I.H.A(Unknown Source)
... 12 more

Thanks for the help,

Aiko




Alexander Kitaev wrote:

Hello,

About the first problem: As far as I understand with the latest cvs client one do not have to specify default port number in the CVSROOT, so just use the root without the port number with the command line client. This root may also be written in the CVS administrative files on your windows computer, so probably you may need to re-checkout your sources.

The second problem is also related to the cvs server version you're using. As I wrote before I've tested TMate with the CVS server version 1.11.2 only, not with the one of the latest ones. I've heard about the problems with the "Case" requests, they were reproducable with IDEA CVS integration as well. As a workaround, to make TMate work correctly I may suggest you to use cvs server version 1.11.2 now (or install TMate server on the same computer as the cvs, then, running on linux, it will not generate "Case" request) or wait till the next TMate build where I probably will make it work correctly with the latest CVS version (1.11.13).

Thanks,
Alexander Kitaev.

0

Hello,

Your assumption may be correct, however, accordingly to the debug log TMate tryies to get difference for 90 files, that seems to be a bit incorrect. I suppose that TMate failed to index all the transactions after defining configuration (probably it tried to do it with the old (or unsupported) version of the cvs server installed).

Could I ask you to delete TMate Server working directories (TMATE_SERVER/webapps/tmate/.config, TMATE_SERVER/webapps/tmate/.changes and TMATE_SERVER/webapps/tmate/vcs/ccvs/.taginfo) then restart the server and define it configuration using TMate IDEA plugin. After this, TMate should reindex all the existing transactions in the repository (they should be displayed in the IDEA "TMate Changes" tool window) and then start to monitor repository for the new changes.

Unforunately, I didn't manage to make "reuse cvs connection" feature work correctly with the gzip compression enabled, so now reuse feature is not supported.

If the problem with (x)inetd will persist, you may define inetd "cps" properties for the connections made to the specific port (i.e. 2401). For xinetd this property is "cps connections_per_second idle_seconds" and could be defined in the section (or file) devoted to the certain connection type, (see also man page at http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=linux&db=man&fname=/usr/share/catman/man5/xinetd.conf.5.html&srch=xinetd ). I'am using defaults that is 50 connections per second and 10 seconds idle time.

Thanks,
Alexander Kitaev.

0

Hi,

Thanks for all the help..
I havn't seen the exception anymore (yet).
I've upgraded tmate.. and it looks realy slick now :)

keep up the good work,

Aiko


Alexander Kitaev wrote:

Hello,

Your assumption may be correct, however, accordingly to the debug log TMate tryies to get difference for 90 files, that seems to be a bit incorrect. I suppose that TMate failed to index all the transactions after defining configuration (probably it tried to do it with the old (or unsupported) version of the cvs server installed).

Could I ask you to delete TMate Server working directories (TMATE_SERVER/webapps/tmate/.config, TMATE_SERVER/webapps/tmate/.changes and TMATE_SERVER/webapps/tmate/vcs/ccvs/.taginfo) then restart the server and define it configuration using TMate IDEA plugin. After this, TMate should reindex all the existing transactions in the repository (they should be displayed in the IDEA "TMate Changes" tool window) and then start to monitor repository for the new changes.

Unforunately, I didn't manage to make "reuse cvs connection" feature work correctly with the gzip compression enabled, so now reuse feature is not supported.

If the problem with (x)inetd will persist, you may define inetd "cps" properties for the connections made to the specific port (i.e. 2401). For xinetd this property is "cps connections_per_second idle_seconds" and could be defined in the section (or file) devoted to the certain connection type, (see also man page at http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=linux&db=man&fname=/usr/share/catman/man5/xinetd.conf.5.html&srch=xinetd ). I'am using defaults that is 50 connections per second and 10 seconds idle time.

Thanks,
Alexander Kitaev.

0

Please sign in to leave a comment.