Re: IPLOAD KABOUM
Posted in 1996
gosport wrote:
>
> Hi, here is a nice bug I have discovered this afternoon :
> We use Online DSA 7.20.UC2 on an 3CPU HP9000 K200...
>
> TEST CASE:
> create table junk( field integer )
> fragment by expression
> (mod(field,2)=0) in dbs1,
> (mod(field,2)=0) in dbs2;
Valery,
what you have above is known as "overlapping fragments", except yours is
more blatant than most cases of this.
> Obviously, the creation script is incomplete/stupid/insane, BUT...Online does
> not refuse to create this table with such a fragmentation scheme ;-)
The SQL parser has enough to do just parsing your commands. Noticing
poor logic is not the parser's line of work. I have thought it might be
nice to put some AI into the parser, but then my burned-in skepcism
about AI steps in and tells me to sit down and stop rocking the boat.
;-)
> Now, just create a file named junk.unl :
> 1|
> 2|
> 3|
> 4|
> et caetera...
>
> And now, create an ipload project to fill the table junk with the data
> from junk.unl.
HMM... I thought you were going to say you ran a simple LOAD command.
> At least, LOAD this table (execute the load job).
> KA-BOUM !
> online.log:
> ploadbe.c, line 2209, thread 64, proc id 679, Pload client premature exit,
> unable to cleanup.
> PANIC: Attempting to bring system down
>
> I didn't call Informix Tech Support, because I didn't want to be ridiculous
> (the fragmentation...).
>
> IMHO, ipload should complain about it and abort the job (with dbload, you
> have no problem, but it's sloooow).
I disagree (respectfully, of course). I would expect a LOAD command or
dbload to load all data into the first fragment you defined because that
is fragment that meets the first criteria you set up. (never mind that
the second criteria is identical.) I would further expect that IPLOAD
should do the same, although it it is working at the same page level as
the engine.
Your worthy experiment shows a flaw in ipload, not in the DSA server
code. IMO the server detected something screwy and crashed itself
before the next checkpoint in the (usually correct) hope that the
corruption would not be propagated to the disk.
Please DO report this to Informix tech support. I am taking the liberty
of forwarding (bcc) this dialog to a friend in development, who I feel
will take personal interest in getting these things set right. I would
summarize the problem as:
ipload crashes OnLine system when loading into overlapping
fragments.
However, if I were a development manager (with SOME business sense), I
would probably not give it high priority; after all, they tell you to
avoid overlapping fragments anyway. Still, ipload should not crash the
system.
-- Jake Salomon
> Valery Fouques GOSPORT/FRANCE
> valou@hotmail.com
>
> _ __/|
> \\`O.o' "For every problem there is a solution which
> =(_ _)= is simple, clean and wrong"
> U
What? You get the Dilbert comic strip in France? ;-)