so, i have a clean database, 3.2.0 server running, blah blah blah now i have the old problem of creating a first mntner: i run bin/dbupdate -c conf/rip.config -t -d mntner: MAINT-RGNET descr: RGnet admin-c: RB366 upd-to: rw@rg.net auth: NONE override: <cleartext override password> mnt-by: MAINT-RGNET referral-by: MAINT-RGNET changed: randy@psg.com 20031217 source: RGNET ^D and it pukes saying Create FAILED: [mntner] MAINT-RGNET ***Info: Syntax check passed mntner: MAINT-RGNET descr: RGnet admin-c: RB366 upd-to: rw@rg.net auth: NONE mnt-by: MAINT-RGNET referral-by: MAINT-RGNET changed: randy@psg.com 20031217 source: RGNET ***Error: Unknown object referenced and the interesting part of the debug output up_source_commit: entered with operation [UP_CREATE] up_send_object_db: entered, operation [UP_CREATE] up_send_object_db: object to be sent [ mntner: MAINT-RGNET descr: RGnet admin-c: RB366 upd-to: rw@rg.net auth: NONE mnt-by: MAINT-RGNET referral-by: MAINT-RGNET changed: randy@psg.com 20031217 source: RGNET ] up_get_transaction_id: entered spent 0.00 sec; got 1 rows from [dbrgnet: INSERT INTO tid VALUES(NULL)] up_get_transaction_id: exiting with new id [18] up_send_object_db: transaction ID [18] SK_write = { sockfd=[7], buf=[ADD], count=[3] SK_write = { sockfd=[7], buf=[ ], count=[1] SK_write = { sockfd=[7], buf=[18], count=[2] SK_write = { sockfd=[7], buf=[ ], count=[2] SK_write = { sockfd=[7], buf=[mntner: MAINT-RGNET descr: RGnet admin-c: RB366 upd-to: rw@rg.net auth: NONE mnt-by: MAINT-RGNET referral-by: MAINT-RGNET changed: randy@psg.com 20031217 source: RGNET ], count=[218] SK_write = { sockfd=[7], buf=[ ], count=[2] SK_write = { sockfd=[7], buf=[ACK ], count=[4] SK_write = { sockfd=[7], buf=[18], count=[2] SK_write = { sockfd=[7], buf=[ ], count=[2] up_send_object_db: send complete up_send_object_db: received from socket [ %ERROR 4 ] up_send_object_db: received from socket [ E[4][1:RB366]:ref integrity: reference cannot be resolved ] up_send_object_db: received from socket [ ] up_send_object_db: received blank line from socket, stop reading Closing socket... 7 up_send_object_db: exiting with value UP_OK up_interpret_ripudb_result: entered, ripupd_result [%ERROR 4 E[4][1:RB366]:ref integrity: reference cannot be resolved clue by four, please randy
btw,, i did try auto-1 The following object(s) were found to have ERRORS: --- Create FAILED: [mntner] MAINT-RGNET ***Info: Syntax check passed mntner: MAINT-RGNET descr: RGnet admin-c: AUTO-1 upd-to: rw@rg.net auth: NONE mnt-by: MAINT-RGNET referral-by: MAINT-RGNET changed: randy@psg.com 20031217 source: RGNET ***Error: Unknown AUTO- nic handle referenced: auto-1 and, i forgot to mention the delicious dessert dbupdate seems to serve For assistance or clarification please contact: RIPE Database Administration <db-admin@rg.net> dbupdate in free(): warning: chunk is already free dbupdate in free(): warning: junk pointer, too high to make sense # randy
On 2003-12-19 16:16:40 -0800, Randy Bush wrote:
so, i have a clean database, 3.2.0 server running, blah blah blah
now i have the old problem of creating a first mntner:
i run
bin/dbupdate -c conf/rip.config -t -d mntner: MAINT-RGNET descr: RGnet admin-c: RB366 upd-to: rw@rg.net auth: NONE override: <cleartext override password> mnt-by: MAINT-RGNET referral-by: MAINT-RGNET changed: randy@psg.com 20031217 source: RGNET ^D
and it pukes saying
Create FAILED: [mntner] MAINT-RGNET ***Info: Syntax check passed
mntner: MAINT-RGNET descr: RGnet admin-c: RB366 upd-to: rw@rg.net auth: NONE mnt-by: MAINT-RGNET referral-by: MAINT-RGNET changed: randy@psg.com 20031217 source: RGNET ***Error: Unknown object referenced
This means an object mentioned in this object does not exist in your database and ... [...]
up_interpret_ripudb_result: entered, ripupd_result [%ERROR 4 E[4][1:RB366]:ref integrity: reference cannot be resolved
... it is RB366 that does not exist.
clue by four, please
randy
-- Engin Gunduz RIPE NCC Software Engineering Department
so, i have a clean database, 3.2.0 server running, blah blah blah
now i have the old problem of creating a first mntner:
i run
bin/dbupdate -c conf/rip.config -t -d mntner: MAINT-RGNET descr: RGnet admin-c: RB366 upd-to: rw@rg.net auth: NONE override: <cleartext override password> mnt-by: MAINT-RGNET referral-by: MAINT-RGNET changed: randy@psg.com 20031217 source: RGNET ^D
and it pukes saying
Create FAILED: [mntner] MAINT-RGNET ***Info: Syntax check passed
mntner: MAINT-RGNET descr: RGnet admin-c: RB366 upd-to: rw@rg.net auth: NONE mnt-by: MAINT-RGNET referral-by: MAINT-RGNET changed: randy@psg.com 20031217 source: RGNET ***Error: Unknown object referenced
This means an object mentioned in this object does not exist in your database and ...
[...]
up_interpret_ripudb_result: entered, ripupd_result [%ERROR 4 E[4][1:RB366]:ref integrity: reference cannot be resolved
... it is RB366 that does not exist.
and, as maint-rgnet does not yet exist, how does one create the chicken before the egg? i.e., the docs are missing "how to load your first maintainer" randy
On 2003-12-22 06:10:32 -0800, Randy Bush wrote: [...]
***Error: Unknown object referenced
This means an object mentioned in this object does not exist in your database and ...
[...]
up_interpret_ripudb_result: entered, ripupd_result [%ERROR 4 E[4][1:RB366]:ref integrity: reference cannot be resolved
... it is RB366 that does not exist.
and, as maint-rgnet does not yet exist, how does one create the chicken before the egg?
An object can have a reference to itself, so that we don't have the chicken-egg problem. You can create your first mntner without referential integrity problems (of course, you have to create the person/role objects that are referenced from the mntner beforehand).
i.e., the docs are missing "how to load your first maintainer"
randy
-- Engin Gunduz RIPE NCC Software Engineering Department
wouldn't it be easier to include a bootstrap.sql file, which takes as input a well formed object, and does <handwaving> to prep it into the SQL back end? or a bootstrap.sh script, which asks 2-3 intelligent questions and does the same? -George
Hi George, On 2003-12-23 08:49:15 +1000, George Michaelson wrote:
wouldn't it be easier to include a bootstrap.sql file, which takes as input a well formed object, and does <handwaving> to prep it into the SQL back end?
or a bootstrap.sh script, which asks 2-3 intelligent questions and does the same?
I'm not clear as to what we want bootstrap.sql or bootstrap.sh to do, but perhaps it is a good idea to initialise the DB with - a person object, - a mntner object, - a 0.0.0.0/0 inetnum object, - a ::/0 inet6num object, - and a AS1 - AS65534 as-block object, even if some of them are not needed for some setups and some of them must be different for some other setups.
-George
-- Engin Gunduz RIPE NCC Software Engineering Department
wouldn't it be easier to include a bootstrap.sql file, which takes as input a well formed object, and does <handwaving> to prep it into the SQL back end?
or a bootstrap.sh script, which asks 2-3 intelligent questions and does the same?
yep, would sure be a help to a luser such as i. and it could change with version. in general, since a new maintainer requires RIPADMIN action, it would be good to have such a script. randy
An object can have a reference to itself, so that we don't have the chicken-egg problem. You can create your first mntner without referential integrity problems (of course, you have to create the person/role objects that are referenced from the mntner beforehand).
and, pray tell, what is the mntner of that/those person/role objects? and how is that mntner created? randy, cluck cluck
Hi, On Sun, Dec 28, 2003 at 09:43:52AM -0800, Randy Bush wrote:
An object can have a reference to itself, so that we don't have the chicken-egg problem. You can create your first mntner without referential integrity problems (of course, you have to create the person/role objects that are referenced from the mntner beforehand).
and, pray tell, what is the mntner of that/those person/role objects? and how is that mntner created?
Isn't it possible to create a person without any mntner? (It used to be possible, long in the past, but I'm not sure about the current rules) Gert Doering -- NetMaster -- Total number of prefixes smaller than registry allocations: 57882 (57753) SpaceNet AG Mail: netmaster@Space.Net Joseph-Dollinger-Bogen 14 Tel : +49-89-32356-0 80807 Muenchen Fax : +49-89-32356-299
Isn't it possible to create a person without any mntner? (It used to be possible, long in the past, but I'm not sure about the current rules)
tried that unsuccessfully. the software now has hard-coded a lot of ripe-specific policy about control, ownership, ... all the kinds of things loved by and specific to a particular bureaucrazy. this makes life a bit strange for those of us just trying to do stuff on the internet. randy
Hi, On 2003-12-28 18:44:51 +0100, Gert Doering wrote:
Hi,
On Sun, Dec 28, 2003 at 09:43:52AM -0800, Randy Bush wrote:
An object can have a reference to itself, so that we don't have the chicken-egg problem. You can create your first mntner without referential integrity problems (of course, you have to create the person/role objects that are referenced from the mntner beforehand).
and, pray tell, what is the mntner of that/those person/role objects? and how is that mntner created?
Isn't it possible to create a person without any mntner? (It used to be possible, long in the past, but I'm not sure about the current rules)
It is still possible --the "mnt-by:" attribute is optional in person/role objects. Thus you can create person/role objects in an empty whois database. Regards,
Gert Doering -- NetMaster -- Total number of prefixes smaller than registry allocations: 57882 (57753)
SpaceNet AG Mail: netmaster@Space.Net Joseph-Dollinger-Bogen 14 Tel : +49-89-32356-0 80807 Muenchen Fax : +49-89-32356-299
-- Engin Gunduz RIPE NCC Software Engineering Department
participants (4)
-
Engin Gunduz
-
George Michaelson
-
Gert Doering
-
Randy Bush