Subject | Re: [firebird-support] Re: Firebird 1.5.1 SuperServer (debian sarge) crashes on select of stored proced |
---|---|
Author | Helen Borrie |
Post date | 2005-01-23T22:49:59Z |
At 07:12 PM 23/01/2005 +0000, you wrote:
encompasses filesystem permissions problems as well as db user problems and
various sorts of I/O error, including corruption...however, at the end of
the day, it probably only reflects the fact that the server crashed.
What's the "lovely little note"?
source. So - the next question is: how and where did you achieve that?
Also, there are accesses in the SP that would require a non-sysdba user
(other than the owner of the accessed objects), and/or the procedure
itself, to require SQL privileges.
if (machineid is null) then machineid = 0;
select S.employeeid from cli_shipto S
where S.LOCATIONID = :locationid
into :employeeid;
going on.
happen at all. You do seem to have filesystem permissions and/or user
privileges involved here at some point, but something is structurally out
of joint too, apparently.
What means did you use to port the database from IB 6? And what version of
Firebird is it, actually? And is the DB dialect 1 or 3? What's the
(ultimate) name of the client library? Is it possible your app is loading
the wrong one? (There are several possible bad scenarios here, depending on
Firebird version and where the client app is connecting from...)
Are any events or UDFs involved in the application code?
./heLen
>Sorry, just tested a little additional thing - I executed isql withNo gdscode? (9 digits). SQLCODE -902 is very broad-reaching - it
>same user (unpriveleged) and I get the same message - but as SYSDBA
>I do not - and I get a lovely little note, but still same thing in DB:
>"Statement failed, SQLCODE = -902".
encompasses filesystem permissions problems as well as db user problems and
various sorts of I/O error, including corruption...however, at the end of
the day, it probably only reflects the fact that the server crashed.
What's the "lovely little note"?
>In other words, it works as priveleged user - but not unprivileged.The trouble is, a permissions problem shouldn't cause the server to crash.
>This worked fine on Interbase 6.0.
>If anyone has any hints, I'm happy to hear them - I couldn't seeshould be into :machineid. Fb would have prevented you from compiling this
>anything from a google of this...
>
>--- In firebird-support@yahoogroups.com, "vandy899" <vandy899@y...> wrote:
> >
> >
> > I'm having trouble with some code that worked on Interbase 6.0.
> >
> > The procedure is as follows:
> > SET TERM ## ;
> > CREATE PROCEDURE WEBSERVICE_CLIENT_INCIDENTS_I (
> > CLIENTID INTEGER,
> > MACHINENAME VARCHAR(20),
> > DELIVERYID INTEGER,
> > LOCATIONID INTEGER,
> > CONTACT VARCHAR(40),
> > PHONE VARCHAR(15),
> > MOBILE VARCHAR(15),
> > ADDR1 VARCHAR(35),
> > CITY VARCHAR(15),
> > STATE VARCHAR(15),
> > POSTCODE VARCHAR(10)
> > ) RETURNS (
> > INCIDENTID INTEGER
> > ) AS
> > DECLARE VARIABLE employeeid integer;
> > DECLARE VARIABLE machineid integer;
> > DECLARE VARIABLE location varchar (60);
> > BEGIN
> > BEGIN
> > location =(ADDR1 ||' '||CITY||' '||STATE||' '||POSTCODE);
> > incidentid = GEN_ID(GEN_SERVICE_INCIDENT, 0)+1;/* DONT INCR */
> > if (machinename <> '') then
> > select machineid from CLI_COMPUTERS
> > where (machine_name=:machinename) and clientid= :clientid
> > into machineid;
source. So - the next question is: how and where did you achieve that?
Also, there are accesses in the SP that would require a non-sysdba user
(other than the owner of the accessed objects), and/or the procedure
itself, to require SQL privileges.
> > if (machineid is null) then machineid = 0;Another illegal query, not accepted by Fb 1.5. Two corrections: should be:
> > select employeeid from cli_shipto S where S.LOCATIONID =
> > :locationid into employeeid;
if (machineid is null) then machineid = 0;
select S.employeeid from cli_shipto S
where S.LOCATIONID = :locationid
into :employeeid;
> > ENDThis is a puzzle and means it's not easy to suppose anything about what's
> >
> > BEGIN
> > insert into
> >
>service_incidents(incidentid,startedby,clientid,employeeid,machineid,deliveryid,contact,started,
> > mobile,phone,location)
> >
> >
>values(:incidentid,user,:clientid,:EMPLOYEEID,:MACHINEID,:DELIVERYID,:contact,'Now',:MOBILE,
> > :PHONE,:LOCATION);
> > END
> > suspend;
> > END##
> >
> > Upon "select * from WEBSERVICE_CLIENT_INCIDENTS_I ('xxx', 'xxx', 'x',
> > 'xxxx', 'xxxx', 'xx', 'xx', 'xxxxx', 'xxx', 'xxx', 'xxx')" (xs are
> > valid data in app with PHP 4.3.10 (debian) or kinterbasdb (a python
> > firebird interface). Using EXECUTE PROCEDURE doesn't help either.
> > However, if I use isql it works fine.
going on.
> >Well, it tells you that your request crashed the server - which shouldn't
> > Is it something I did? The log just said "terminated abnormally",
> > which doesn't tell me much... :(
happen at all. You do seem to have filesystem permissions and/or user
privileges involved here at some point, but something is structurally out
of joint too, apparently.
What means did you use to port the database from IB 6? And what version of
Firebird is it, actually? And is the DB dialect 1 or 3? What's the
(ultimate) name of the client library? Is it possible your app is loading
the wrong one? (There are several possible bad scenarios here, depending on
Firebird version and where the client app is connecting from...)
Are any events or UDFs involved in the application code?
./heLen