Re: SQL query brings database server down
Posted in 1998
On Tue, 13 Oct 1998, Robert Douglas wrote:
> Just out of curiosity, I ran the query on our development machine (Solaris 2.5
> ODS 7.12.) Sure enough it thrashed Informix, but with these entries in the log:
>
> 14:27:44 Who:Session(11425, rdouglas@hercules, 5218, 9113316)
> Thread(12032, sqlexec, 891280, 1)
> 14:27:44 Results: OnLine must abort
> 14:27:44 Action: Reinitialize shared memory
> 14:27:44 See Also: /work/dbtemp/af.2f00c5cf, shmem.2f00c5cf.0
> 14:27:54 rsinit.c, line 9182, thread 12032, proc id 11401, Segmentation
> Violation.
> 14:27:54 PANIC: Attempting to bring system down
So, just out of curiosity, I ran an adapted version of the query on my
desktop Sparc 20 running Solaris 2.6 and OnLine 7.24.UC1 against the stores7
database, with the query:
SELECT fname, lname, address1
FROM customer
WHERE "John" IN (fname);
and was not able to detect any problems... It suggests that the bug
was fixed between the 7.1x and 7.2x families. I've no idea which
version fixed it. And the fix was not to generate a syntax error but
to accept the query and generate no output... This might need to be
reported as a bug, still, but at least the engine doesn't crash.
> > Bart Van der Cruyssen <Bart.VanderCruyssen@rug.ac.be> writes
> > >We are working with INFORMIX Online Version 7.10.
> > >We found out that a query like :
> > >
> > >SELECT first_name, last_name, address
> > >FROM customers
> > >WHERE "John" IN (first_name);> > >
> > >which is clearly syntacticly incorrect (but students try out such things),
> > >does NOT result in a 'syntax error'.
> > >Instead, the server goes down, reporting in "online.log" (the user name is
> > >changed):
> > >
> > >10:20:50 Assert Failed: Internal Error - Segmentation Violation
> > >10:20:50 Who: Session(20, name@server, 15722, 5)
> > > Thread(44, sqlexec, a0ff514, 1)
> > >10:20:50 Results: OnLine must abort
> > >10:20:50 Action: Reinitialize shared memory
> > >10:20:50 See Also: /tmp/af.9cba41, shmem.9cba41.0
> > >10:20:51 rsdebug.c, line 3591, thread 44, proc id 23155, Segmentation
> > >Violation.
> > >10:20:51 PANIC: Attempting to bring system down> > >
> > >In my opinion, no possible input for a query (correct or incorrect) should
> > >be able to bring down the database server, especially when executed from
> > >within dbaccess (one of informix' own database tools).
No possible input for a query should bring the server down. Period.
It can refuse to answer, or generate an error; it should not bring the
server down...
> > >These are (some of) my questions:
> > >- Have others experienced the same problem ?
Yes, but others have systems which are not afflicted.
> > >- Is this a known bug ? (Note that the log file always refers to :
> > >'rsdebug.c', line 3591.)
Dunno.
> > >- Is this problem solved in later versions of the product ?
> > Probably, 7.10 is an early 7.x release and there have been a lot of
> > fixes done since then, move to 7.30.UC3..
Yes.
> > >- Are there any workarounds, except not trying such queries ?
> > No.
Probably not.
> > >- Are there other "look-like" SQL-queries known to bring down the system ?
I don't know of any, but I've neither tried very hard nor specifically gone
looking for records from others.
Yours,
Jonathan Leffler (jleffler@informix.com) #include <witticism.h>
Guardian of DBD::Informix v0.60 -- http://www.perl.com/CPAN
Informix IDN for D4GL & Linux -- http://www.informix.com/idn