license problem lmgrd cdslmd

M

Michael Karagounis

Guest
I am running CADENCE IC5.0.32 on a linux server SUSE 9.1
and I have a strange problem wiht the cdslmd daemon.

Althoug there is no other cdslmd running and no other
lock file in /usr/tmp and /var/tmp, cdslmd crashes during
start up, asserting that it cannot create the lock file,
and that there has to be another cdslmd instance running.

I am using lmgrd and cdslmd v8.2.a!

So everyone having a clever suggestion about this problem,
is welcome

.... and I know Cadence only supports RedHat

Regards

Michael

--
Dipl. Ing. Michael Karagounis
Bonn University +49 - 228 - 73 - 9430
Physikalisches Institut fax +49 - 228 - 73 - 3220
Nussallee 12 email: mkaragou@physik.uni-bonn.de
53115 Bonn http://www.physik.uni-bonn.de
Germany
 
Michael Karagounis wrote:
I am running CADENCE IC5.0.32 on a linux server SUSE 9.1
and I have a strange problem wiht the cdslmd daemon.
But we only supp--

... and I know Cadence only supports RedHat
Oh, all right. :) (Ok, I'll admit it -- at home, I run IC5.x on
Gentoo, but our support folks have to draw the line somewhere with the
n-zillion Linux distros out there.)

Althoug there is no other cdslmd running and no other
lock file in /usr/tmp and /var/tmp, cdslmd crashes during
start up, asserting that it cannot create the lock file,
and that there has to be another cdslmd instance running.

I am using lmgrd and cdslmd v8.2.a!

So everyone having a clever suggestion about this problem,
is welcome
I'd recommend running lmgrd through strace, akin to:

strace -o /tmp/lmgrd.log -f -F \
$CDS_INST_DIR/tools/bin/lmgrd -c /path/to/license.dat

strace options used:
-o spits the output to a file rather than your terminal
-f tells it to follow fork() calls
-F tells it to follow vfork() calls

Then grep the /tmp/lmgrd.log file for open and/or lock calls -- maybe
try a few variations on "grep tmp /tmp/lmgrd.log". I don't recall off
the top of my head, but lock on Linux might show up as ioctl() or
fcntl() calls.

If you need help interpreting the log, gzip or compress it up and send
it to me.
--
David Cuthbert (dacut@cadence.com) Tel: (412) 599-1820
Cadence Design Systems R&D
 
Michael Karagounis wrote:
Dear David,

I used strace to start lmgrd and I have attached the log file to his
message.


strace -o /var/tmp/lmgrd.log -f -F /etc/flexlm/lmgrd -c
/etc/flexlm/license.faust02


I am not sure how to interpret the content of the log file. The last
open command that is listed in the log file is the following:


open("/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)


So does cdsmld try to open "/" as the lock file ?
I have read in a linux user group that a root filesystem check is
performed every time the daemon starts. So maybe this open command is
a result of this root filesystem check.

You have to know that my root partition is formated in reiserfs and
not in ext2fs or ext3fs. Someone told me that maybe this is causing
cdslmd to crash. So I formatted an empty and unused partition in ext2
and mounted this partition at /var/tmp and made a soft link to
/usr/tmp. But the problem with the lock file remains. So if cdslmd is
performing a root file system check at startup, maybe cdslmd does not
like that my root partition is formatted in reiserfs and I have to
reformat my whole root partition in ext2?

Regards

Michael

25880 open("/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
25880 fstat64(4, {st_mode=S_IFDIR|0755, st_size=688, ...}) = 0
25880 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
25880 getdents64(4, /* 27 entries */, 4096) = 688
25880 getdents64(4, /* 0 entries */, 4096) = 0
25880 time(NULL) = 1098693550
25880 write(1, " 9:39:10 (cdslmd) Cannot open da"..., 47) = 47
25880 close(1) = 0
25880 munmap(0x40018000, 4096) = 0
25880 exit_group(41) = ?
25879 <... select resumed> ) = ? ERESTARTNOHAND (To be
restarted)
25879 --- SIGCHLD (Child exited) @ 0 (0) ---
25879 wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 41], WNOHANG, NULL)
= 25880
25879 rt_sigaction(SIGCHLD, {0x40034de0, [CHLD], SA_RESTART},
{0x40034de0, [CHLD], SA_RESTART}, 8) = 0
25879 time(NULL) = 1098693550
25879 write(1, " 9:39:10 (lmgrd) MULTIPLE \"cdslm"..., 52) = 52
25879 time(NULL) = 1098693550
25879 write(1, " 9:39:10 (lmgrd) Please kill, an"..., 47) = 47
25879 time(NULL) = 1098693550
25879 write(1, " 9:39:10 (lmgrd) \n", 18) = 18
25879 time(NULL) = 1098693550
25879 write(1, " 9:39:10 (lmgrd) This error prob"..., 58) = 58
25879 time(NULL) = 1098693550
25879 write(1, " 9:39:10 (lmgrd) 1. Another co"..., 52) = 52
25879 time(NULL) = 1098693550
25879 write(1, " 9:39:10 (lmgrd) 2. A prior lm"..., 62) = 62
25879 time(NULL) = 1098693550
25879 write(1, " 9:39:10 (lmgrd) (which wo"..., 69) = 69
25879 time(NULL) = 1098693550
25879 write(1, " 9:39:10 (lmgrd) To correct this"..., 62) = 62
25879 time(NULL) = 1098693550
25879 write(1, " 9:39:10 (lmgrd) (or equivalen"..., 48) = 48
25879 time(NULL) = 1098693550
25879 write(1, " 9:39:10 (lmgrd) and kill the \"c"..., 47) = 47
25879 time(NULL) = 1098693550
25879 write(1, " 9:39:10 (lmgrd) \n", 18) = 18
25879 sigreturn() = ? (mask now [RTMIN])
25879 stat64("/root/.flexlmrc", 0xbfffe500) = -1 ENOENT (No such file
or directory)
25879 time(NULL) = 1098693550
25879 time(NULL) = 1098693550
25879 time(NULL) = 1098693550
25879 time(NULL) = 1098693550
25879 select(256, [0], NULL, NULL, NULL) = ? ERESTARTNOHAND (To be
restarted)
25879 --- SIGINT (Interrupt) @ 0 (0) ---
25879 select(256, [0], NULL, NULL, NULL) = ? ERESTARTNOHAND (To be
restarted)
25879 --- SIGINT (Interrupt) @ 0 (0) ---
25879 select(256, [0], NULL, NULL, NULL) = ? ERESTARTNOHAND (To be
restarted)
25879 --- SIGINT (Interrupt) @ 0 (0) ---
25879 select(256, [0], NULL, NULL, NULL) = ? ERESTARTNOHAND (To be
restarted)
25879 --- SIGINT (Interrupt) @ 0 (0) ---
25879 select(256, [0], NULL, NULL, NULL) = ? ERESTARTNOHAND (To be
restarted)
25879 --- SIGINT (Interrupt) @ 0 (0) ---
25879 select(256, [0], NULL, NULL, NULL) = 1 (in [0])
25879 accept(0, {sa_family=AF_INET, sin_port=htons(34053),
sin_addr=inet_addr("131.220.160.32")}, [16]) = 3
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 select(256, [0 3], NULL, NULL, NULL) = 1 (in [3])
25879 gettimeofday({1098693578, 931133}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 931188}, {4294967236, 0}) = 0
25879 select(256, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {60, 0})
25879 gettimeofday({1098693578, 931482}, {4294967236, 0}) = 0
25879 recv(3, "h\03713root\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0faust02"...,
88, 0) = 88
25879 gettimeofday({1098693578, 931638}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 931690}, {4294967236, 0}) = 0
25879 select(256, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {60, 0})
25879 gettimeofday({1098693578, 931990}, {4294967236, 0}) = 0
25879 recv(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0T\0\0\0\0\0\0\0\0\0\0\0\000"...,
59, 0) = 59
25879 select(256, NULL, [3], NULL, {5, 0}) = 1 (out [3], left {5, 0})
25879 send(3, "O\0318\0\0\0\0\0\0\0\0\0\0002\0\0\0\0\0\0\0\0\0\0a1\0\0"...,
147, 0) = 147
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 select(256, [0 3], NULL, NULL, NULL) = 2 (in [0 3])
25879 accept(0, {sa_family=AF_INET, sin_port=htons(34054),
sin_addr=inet_addr("131.220.160.32")}, [16]) = 4
25879 time(NULL) = 1098693578
25879 gettimeofday({1098693578, 933126}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 933179}, {4294967236, 0}) = 0
25879 select(256, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {60, 0})
25879 gettimeofday({1098693578, 933473}, {4294967236, 0}) = 0
25879 recv(3, "", 147, 0) = 0
25879 shutdown(3, 2 /* send and receive */) = 0
25879 close(3) = 0
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 select(256, [0 4], NULL, NULL, NULL) = 1 (in [4])
25879 gettimeofday({1098693578, 934137}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 934190}, {4294967236, 0}) = 0
25879 select(256, [4], NULL, NULL, {60, 0}) = 1 (in [4], left {60, 0})
25879 gettimeofday({1098693578, 934483}, {4294967236, 0}) = 0
25879 recv(4, "h\03713root\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0faust02"...,
88, 0) = 88
25879 gettimeofday({1098693578, 934627}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 934680}, {4294967236, 0}) = 0
25879 select(256, [4], NULL, NULL, {60, 0}) = 1 (in [4], left {60, 0})
25879 gettimeofday({1098693578, 934978}, {4294967236, 0}) = 0
25879 recv(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0T\0\0\0\0\0\0\0\0\0\0\0\000"...,
59, 0) = 59
25879 select(256, NULL, [4], NULL, {5, 0}) = 1 (out [4], left {5, 0})
25879 send(4, "O\0318\0\0\0\0\0\0\0\0\0\0002\0\0\0\0\0\0\0\0\0\0a1\0\0"...,
147, 0) = 147
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 select(256, [0 4], NULL, NULL, NULL) = 1 (in [4])
25879 gettimeofday({1098693578, 935880}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 935933}, {4294967236, 0}) = 0
25879 select(256, [4], NULL, NULL, {60, 0}) = 1 (in [4], left {60, 0})
25879 gettimeofday({1098693578, 936237}, {4294967236, 0}) = 0
25879 recv(4, "$\36313root\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0faust02"...,
147, 0) = 147
25879 getcwd("/etc/flexlm", 511) = 12
25879 select(256, NULL, [4], NULL, {5, 0}) = 1 (out [4], left {5, 0})
25879 send(4, "L\23427\0\0\0\0\0\0\0\0\0/etc/flexlm/license"..., 147,
0) = 147
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 select(256, [0 4], NULL, NULL, NULL) = 2 (in [0 4])
25879 accept(0, {sa_family=AF_INET, sin_port=htons(34055),
sin_addr=inet_addr("131.220.160.32")}, [16]) = 3
25879 time(NULL) = 1098693578
25879 gettimeofday({1098693578, 937416}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 937470}, {4294967236, 0}) = 0
25879 select(256, [4], NULL, NULL, {60, 0}) = 1 (in [4], left {60, 0})
25879 gettimeofday({1098693578, 937769}, {4294967236, 0}) = 0
25879 recv(4, "", 147, 0) = 0
25879 shutdown(4, 2 /* send and receive */) = 0
25879 close(4) = 0
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 select(256, [0 3], NULL, NULL, NULL) = 1 (in [3])
25879 gettimeofday({1098693578, 938397}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 938451}, {4294967236, 0}) = 0
25879 select(256, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {60, 0})
25879 gettimeofday({1098693578, 938743}, {4294967236, 0}) = 0
25879 recv(3, "h\03713root\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0faust02"...,
88, 0) = 88
25879 gettimeofday({1098693578, 938889}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 938942}, {4294967236, 0}) = 0
25879 select(256, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {60, 0})
25879 gettimeofday({1098693578, 939245}, {4294967236, 0}) = 0
25879 recv(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0T\0\0\0\0\0\0\0\0\0\0\0\000"...,
59, 0) = 59
25879 select(256, NULL, [3], NULL, {5, 0}) = 1 (out [3], left {5, 0})
25879 send(3, "O\0318\0\0\0\0\0\0\0\0\0\0002\0\0\0\0\0\0\0\0\0\0a1\0\0"...,
147, 0) = 147
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 select(256, [0 3], NULL, NULL, NULL) = 1 (in [3])
25879 gettimeofday({1098693578, 940137}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 940191}, {4294967236, 0}) = 0
25879 select(256, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {60, 0})
25879 gettimeofday({1098693578, 940484}, {4294967236, 0}) = 0
25879 recv(3, "$\26313root\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0faust02"...,
147, 0) = 147
25879 select(256, NULL, [3], NULL, {5, 0}) = 1 (out [3], left {5, 0})
25879 send(3, "L\0327\0\0\0\0\0\0\0\0\0\0cdslmd
\0\0\0\0\0\0\0\0\0\0\0"..., 147, 0) = 147
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 select(256, [0 3], NULL, NULL, NULL) = 2 (in [0 3])
25879 accept(0, {sa_family=AF_INET, sin_port=htons(34056),
sin_addr=inet_addr("131.220.160.32")}, [16]) = 4
25879 time(NULL) = 1098693578
25879 gettimeofday({1098693578, 941664}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 941717}, {4294967236, 0}) = 0
25879 select(256, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {60, 0})
25879 gettimeofday({1098693578, 942020}, {4294967236, 0}) = 0
25879 recv(3, "", 147, 0) = 0
25879 shutdown(3, 2 /* send and receive */) = 0
25879 close(3) = 0
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 select(256, [0 4], NULL, NULL, NULL) = 1 (in [4])
25879 gettimeofday({1098693578, 942641}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 942694}, {4294967236, 0}) = 0
25879 select(256, [4], NULL, NULL, {60, 0}) = 1 (in [4], left {60, 0})
25879 gettimeofday({1098693578, 942993}, {4294967236, 0}) = 0
25879 recv(4, "h\03713root\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0faust02"...,
88, 0) = 88
25879 gettimeofday({1098693578, 943154}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 943207}, {4294967236, 0}) = 0
25879 select(256, [4], NULL, NULL, {60, 0}) = 1 (in [4], left {60, 0})
25879 gettimeofday({1098693578, 943500}, {4294967236, 0}) = 0
25879 recv(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0T\0\0\0\0\0\0\0\0\0\0\0\000"...,
59, 0) = 59
25879 select(256, NULL, [4], NULL, {5, 0}) = 1 (out [4], left {5, 0})
25879 send(4, "O\0318\0\0\0\0\0\0\0\0\0\0002\0\0\0\0\0\0\0\0\0\0a1\0\0"...,
147, 0) = 147
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 time(NULL) = 1098693578
25879 select(256, [0 4], NULL, NULL, NULL) = 1 (in [4])
25879 gettimeofday({1098693578, 944424}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 944477}, {4294967236, 0}) = 0
25879 select(256, [4], NULL, NULL, {60, 0}) = 1 (in [4], left {60, 0})
25879 gettimeofday({1098693578, 944775}, {4294967236, 0}) = 0
25879 recv(4, "q\331\0\0root\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0faust02"...,
147, 0) = 147
25879 gettimeofday({1098693578, 944919}, {4294967236, 0}) = 0
25879 gettimeofday({1098693578, 944973}, {4294967236, 0}) = 0
25879 rt_sigaction(SIGALRM, {SIG_IGN}, {0x40034de0, [], 0}, 8) = 0
25879 rt_sigaction(SIGALRM, {0x40034de0, [], 0}, {SIG_IGN}, 8) = 0
25879 rt_sigprocmask(SIG_BLOCK, [ALRM], NULL, 8) = 0
25879 gettimeofday({1098693578, 945249}, {4294967236, 0}) = 0
25879 rt_sigprocmask(SIG_UNBLOCK, [ALRM], NULL, 8) = 0
25879 setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0,
999000}}, NULL) = 0
25879 pause() = ? ERESTARTNOHAND (To be
restarted)
25879 --- SIGALRM (Alarm clock) @ 0 (0) ---
25879 rt_sigaction(SIGALRM, {0x40034de0, [], 0}, {0x40034de0, [], 0},
8) = 0
25879 rt_sigprocmask(SIG_BLOCK, [ALRM], NULL, 8) = 0
25879 gettimeofday({1098693579, 945755}, {4294967236, 0}) = 0
25879 rt_sigprocmask(SIG_UNBLOCK, [ALRM], NULL, 8) = 0
25879 setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={30,
190000}}, NULL) = 0
25879 gettimeofday({1098693579, 945928}, {4294967236, 0}) = 0
25879 sigreturn() = ? (mask now [RTMIN])
25879 gettimeofday({1098693579, 946086}, {4294967236, 0}) = 0
25879 time(NULL) = 1098693579
25879 write(1, " 9:39:39 (lmgrd) SHUTDOWN reques"..., 59) = 59
25879 write(1, "\n", 1) = 1
25879 time(NULL) = 1098693579
25879 write(1, "\n", 1) = 1
25879 time(NULL) = 1098693579
25879 write(1, " 9:39:39 (lmgrd) lmgrd will now "..., 66) = 66
25879 select(256, NULL, [4], NULL, {5, 0}) = 1 (out [4], left {5, 0})
25879 send(4, "OO\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
147, 0) = 147
25879 unlink("/usr/tmp/.flexlm/lmgrd.25879") = 0
25879 shutdown(0, 2 /* send and receive */) = 0
25879 close(0) = 0
25879 close(1) = 0
25879 munmap(0x40018000, 4096) = 0
25879 exit_group(15) = ?

--
David Cuthbert (dacut@cadence.com) Tel: (412) 599-1820
Cadence Design Systems R&D
 
Michael Karagounis wrote:
I am not sure how to interpret the content of the log file. The last
open command that is listed in the log file is the following:

open("/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)

So does cdsmld try to open "/" as the lock file ?
I have read in a linux user group that a root filesystem check is
performed every time the daemon starts. So maybe this open command is
a result of this root filesystem check.
Hm, no, it's just reading the directory here. I'm not entirely sure why
-- perhaps to make sure that /var (or whichever directory holds the lock
file) exists?

The output from your run and mine differ in a way that I can't quite
reconcile -- and it's probably the critical piece.

Yours:
25880 open("/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
25880 fstat64(4, {st_mode=S_IFDIR|0755, st_size=688, ...}) = 0
25880 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
25880 getdents64(4, /* 27 entries */, 4096) = 688
25880 getdents64(4, /* 0 entries */, 4096) = 0
25880 time(NULL) = 1098693550
25880 write(1, " 9:39:10 (cdslmd) Cannot open da"..., 47) = 47
25880 close(1) = 0

Mine:
15268 open("/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
15268 fstat64(4, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
15268 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
15268 getdents64(4, /* 23 entries */, 4096) = 584
15268 getdents64(4, /* 0 entries */, 4096) = 0
15268 close(4) = 0
15268 open("/var/tmp/lockcdslmd", O_RDWR|O_CREAT, 0666) = 4
15268 fcntl64(4, F_SETLK, {type=F_WRLCK, whence=SEEK_CUR, start=0,
len=0}) = 0


For whatever reason, cdslmd is not even attempting to open the lock file
on your system (the open("/var/tmp/lockcdslmd") entry on my machine).

You have to know that my root partition is formated in reiserfs and
not in ext2fs or ext3fs. Someone told me that maybe this is causing
cdslmd to crash. So I formatted an empty and unused partition in ext2
and mounted this partition at /var/tmp and made a soft link to
/usr/tmp. But the problem with the lock file remains. So if cdslmd is
performing a root file system check at startup, maybe cdslmd does not
like that my root partition is formatted in reiserfs and I have to
reformat my whole root partition in ext2?
It's possible that reiserfs behaves differently than other filesystems
(the output from my system is actually on an XFS filesystem).
Unfortunately, just putting an ext2 (or other non-Reiser FS) on /var/tmp
isn't going to help -- you will probably need to make another filesystem
and chroot there.

I'll set up a VMware session with ReiserFS and see if I can't replicate
this.

--
David Cuthbert (dacut@cadence.com) Tel: (412) 599-1820
Cadence Design Systems R&D
 
Good thing I found this thread...I was having the same problem Michael
is having . I was in a position to easily reinstall Suse 9.1 so I made
root an ext3 filesystem instead of reiser and now cdslmd starts.
Thanks a mil!

David Cuthbert <dacut@cadence.com> wrote in message news:<417D07AE.8090701@cadence.com>...
Michael Karagounis wrote:
I am not sure how to interpret the content of the log file. The last
open command that is listed in the log file is the following:

open("/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY)

So does cdsmld try to open "/" as the lock file ?
I have read in a linux user group that a root filesystem check is
performed every time the daemon starts. So maybe this open command is
a result of this root filesystem check.

Hm, no, it's just reading the directory here. I'm not entirely sure why
-- perhaps to make sure that /var (or whichever directory holds the lock
file) exists?

The output from your run and mine differ in a way that I can't quite
reconcile -- and it's probably the critical piece.

Yours:
25880 open("/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
25880 fstat64(4, {st_mode=S_IFDIR|0755, st_size=688, ...}) = 0
25880 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
25880 getdents64(4, /* 27 entries */, 4096) = 688
25880 getdents64(4, /* 0 entries */, 4096) = 0
25880 time(NULL) = 1098693550
25880 write(1, " 9:39:10 (cdslmd) Cannot open da"..., 47) = 47
25880 close(1) = 0

Mine:
15268 open("/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
15268 fstat64(4, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
15268 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
15268 getdents64(4, /* 23 entries */, 4096) = 584
15268 getdents64(4, /* 0 entries */, 4096) = 0
15268 close(4) = 0
15268 open("/var/tmp/lockcdslmd", O_RDWR|O_CREAT, 0666) = 4
15268 fcntl64(4, F_SETLK, {type=F_WRLCK, whence=SEEK_CUR, start=0,
len=0}) = 0


For whatever reason, cdslmd is not even attempting to open the lock file
on your system (the open("/var/tmp/lockcdslmd") entry on my machine).

You have to know that my root partition is formated in reiserfs and
not in ext2fs or ext3fs. Someone told me that maybe this is causing
cdslmd to crash. So I formatted an empty and unused partition in ext2
and mounted this partition at /var/tmp and made a soft link to
/usr/tmp. But the problem with the lock file remains. So if cdslmd is
performing a root file system check at startup, maybe cdslmd does not
like that my root partition is formatted in reiserfs and I have to
reformat my whole root partition in ext2?

It's possible that reiserfs behaves differently than other filesystems
(the output from my system is actually on an XFS filesystem).
Unfortunately, just putting an ext2 (or other non-Reiser FS) on /var/tmp
isn't going to help -- you will probably need to make another filesystem
and chroot there.

I'll set up a VMware session with ReiserFS and see if I can't replicate
this.
 
Hello David,

I performed a migration of my root file system from reiserfs to ext3
and the deamon is running very well know.

Anyone wanting to know how a root file system migration is performed
may have a look at the following link:

http://www.tldp.org/HOWTO/Linux+XFS-HOWTO/x154.html

Michael K.
 

Welcome to EDABoard.com

Sponsor

Back
Top