The following reply was made to PR gnats/181; it has been noted by GNATS.
From: Yngve Svendsen <yngve.svendsen@clustra.com>
To: Milan Zamazal <pdm@zamazal.org>
Cc: gnats-gnats@sourceware.cygnus.com
Subject: Re: gnats/181: CHDB command must be issued twice in order to
work
Date: Sun, 26 Aug 2001 23:18:53 +0200
At 15:42 27.05.2001 +0200, Milan Zamazal wrote:
> >>>>> "ys" == yngve svendsen <yngve.svendsen@clustra.com> writes:
>
> ys> The current Gnats 4 does not support multiple databases
> ys> correctly. As the transcript from the Gnats session below shows,
> ys> the CHDB command must be issued twice before gnatsd changes
> ys> database. The default database in the Gnats installation was
> ys> "helpdesk".
>
>Hm, I can't reproduce the problem. Was it fixed or does it still
>persist? If the latter, could you send me your `databases' file?
Strange. I am not seeing this problem on Linux, only on Solaris. Below is a
truss from the following command sequence:
200 hurre.clustra.com GNATS server 4.0-alpha ready.
chdb helpdesk
210-Now accessing GNATS database 'default'
210 User access level set to 'edit'
chdb tt
210-Now accessing GNATS database 'tt'
210 User access level set to 'edit'
I have defined three databases in my databases file. These are "default",
"tt" and "helpdesk".
As you can see from the above, the first command tries unsuccessfully to
change database from "default" to "helpdesk". The second command tries to
chdb to "tt", and that succeeds. If I try "chdb helpdesk" twice, the second
command succeeds. My databases file looks as follows:
default:Test Database 1:/usr/local/share/gnats/support
tt:Test Database 2:/usr/local/share/gnats/tt
helpdesk:Helpdesk test database:/usr/local/share/gnats/helpdesk
- Yngve
Truss output:
poll(0xFFBEFB70, 1, 7200000) = 1
read(0, " c h d b h e l p d e s".., 1024) = 15
ioctl(2, TCGETA, 0xFFBEFAB4) Err#22 EINVAL
fstat(-1, 0xFFBEFA40) Err#9 EBADF
fstat(-1, 0xFFBEFA40) Err#9 EBADF
open("/usr/local/etc/gnats/databases", O_RDONLY) = 4
fstat64(4, 0xFFBEF8F0) = 0
brk(0x00064A78) = 0
brk(0x00066A78) = 0
ioctl(4, TCGETA, 0xFFBEF87C) Err#25 ENOTTY
read(4, " # T h i s f i l e ".., 8192) = 809
read(4, 0x000648F4, 8192) = 0
llseek(4, 0, SEEK_CUR) = 809
close(4) = 0
open("/usr/local/share/gnats/helpdesk/gnats-adm/gnatsd.access", O_RDONLY) = 4
fstat64(4, 0xFFBEF8E0) = 0
brk(0x00066A78) = 0
brk(0x00067278) = 0
ioctl(4, TCGETA, 0xFFBEF86C) Err#25 ENOTTY
read(4, " #\n # ".., 8192) = 1293
read(4, 0x00064B7C, 8192) = 0
llseek(4, 0, SEEK_CUR) = 1293
close(4) = 0
open("/usr/local/etc/gnats/gnatsd.access", O_RDONLY) Err#2 ENOENT
write(1, " 2 1 0 - N o w a c c e".., 81) = 81
poll(0xFFBEFB70, 1, 7200000) (sleeping...)
poll(0xFFBEFB70, 1, 7200000) = 1
read(0, " c h d b t t\r\n", 1024) = 9
ioctl(2, TCGETA, 0xFFBEFAB4) Err#22 EINVAL
fstat(-1, 0xFFBEFA40) Err#9 EBADF
fstat(-1, 0xFFBEFA40) Err#9 EBADF
open("/usr/local/etc/gnats/databases", O_RDONLY) = 4
fstat64(4, 0xFFBEF8F0) = 0
brk(0x00067278) = 0
brk(0x00069278) = 0
ioctl(4, TCGETA, 0xFFBEF87C) Err#25 ENOTTY
read(4, " # T h i s f i l e ".., 8192) = 809
read(4, 0x0006709C, 8192) = 0
llseek(4, 0, SEEK_CUR) = 809
close(4) = 0
stat("/usr/local/share/gnats/tt", 0xFFBEF9C0) = 0
stat("/usr/local/share/gnats/tt/gnats-adm/gnatsd.host_access", 0xFFBEF950)
Err#2 ENOENT
open("/usr/local/share/gnats/tt/gnats-adm/dbconfig", O_RDONLY) = 4
fstat64(4, 0xFFBEF1F0) = 0
ioctl(4, TCGETA, 0xFFBEF17C) Err#25 ENOTTY
read(4, " # T h i s c o n f i".., 8192) = 8192
open("/usr/local/share/gnats/tt/gnats-adm/categories", O_RDONLY) = 5
fstat64(5, 0xFFBEF258) = 0
brk(0x00069278) = 0
brk(0x0006B278) = 0
ioctl(5, TCGETA, 0xFFBEF1E4) Err#25 ENOTTY
read(5, " #\t\t P o s s i".., 8192) = 1040
read(5, 0x0006923C, 8192) = 0
llseek(5, 0, SEEK_CUR) = 1040
close(5) = 0
open("/usr/local/share/gnats/tt/gnats-adm/responsible", O_RDONLY) = 5
fstat64(5, 0xFFBEF258) = 0
brk(0x0006B278) = 0
brk(0x0006CA78) = 0
ioctl(5, TCGETA, 0xFFBEF1E4) Err#25 ENOTTY
read(5, " #\n #\t\t P e o p l".., 8192) = 1040
read(5, 0x0006A67C, 8192) = 0
llseek(5, 0, SEEK_CUR) = 1040
close(5) = 0
open("/usr/local/share/gnats/tt/gnats-adm/states", O_RDONLY) = 5
fstat64(5, 0xFFBEF258) = 0
ioctl(5, TCGETA, 0xFFBEF1E4) Err#25 ENOTTY
read(5, " #\t\t P o s s i".., 8192) = 3016
read(5, 0x0006A8F4, 8192) = 0
llseek(5, 0, SEEK_CUR) = 3016
close(5) = 0
open("/usr/local/share/gnats/tt/gnats-adm/classes", O_RDONLY) = 5
fstat64(5, 0xFFBEF258) = 0
brk(0x0006CA78) = 0
brk(0x0006DA78) = 0
ioctl(5, TCGETA, 0xFFBEF1E4) Err#25 ENOTTY
read(5, " #\t\t P o s s i".., 8192) = 1421
read(5, 0x0006B3CC, 8192) = 0
llseek(5, 0, SEEK_CUR) = 1421
close(5) = 0
open("/usr/local/share/gnats/tt/gnats-adm/submitters", O_RDONLY) = 5
fstat64(5, 0xFFBEF258) = 0
ioctl(5, TCGETA, 0xFFBEF1E4) Err#25 ENOTTY
read(5, " #\n #\t\t s u b".., 8192) = 2141
read(5, 0x0006B644, 8192) = 0
llseek(5, 0, SEEK_CUR) = 2141
close(5) = 0
read(4, " u e r y - d e f a u l t".., 8192) = 8192
read(4, "\n #\t }\n\t f o r m a t".., 8192) = 4511
read(4, 0x000671BC, 8192) = 0
ioctl(0, TCGETA, 0xFFBEF264) Err#22 EINVAL
llseek(4, 0, SEEK_CUR) = 20895
close(4) = 0
open("/usr/local/share/gnats/tt/gnats-adm/gnatsd.access", O_RDONLY) = 4
fstat64(4, 0xFFBEF8E0) = 0
brk(0x0006DA78) = 0
brk(0x0006F278) = 0
ioctl(4, TCGETA, 0xFFBEF86C) Err#25 ENOTTY
read(4, " #\n # ".., 8192) = 1281
read(4, 0x0006CF14, 8192) = 0
llseek(4, 0, SEEK_CUR) = 1281
close(4) = 0
open("/usr/local/etc/gnats/gnatsd.access", O_RDONLY) Err#2 ENOENT
write(1, " 2 1 0 - N o w a c c e".., 76) = 76
poll(0xFFBEFB70, 1, 7200000) (sleeping...)