Обсуждение: postgres database crashed

Поиск
Список
Период
Сортировка

postgres database crashed

От
Ashish Goel
Дата:
We have a following table xyz( id int , fname varchar(50), img image)<br />where image is a data type we have created
similarto lo.<br /><br />so when we executed an insert query on the following table :-<br /><br />insert into xyz
VALUES(2541, '/home/ravi/jdbc/2_down/76.jpg', '76.jpg');<br /><br />It works well for nearly 2500 images but from there
onwardswe obtained the following error and the database crashes.<br /><br />this is the bt we obtained on using gdb
withthe postgres process<br /><br />#0  0x00313bbc in memcpy () from /lib/libc.so.6<br />#1  0x0819496d in datumCopy
()<br/>#2  0x0812d202 in copyObject ()<br />#3  0x08151c49 in eval_const_expressions_mutator ()<br />#4  0x08150c2f in
expression_tree_mutator()<br />#5  0x08151c49 in eval_const_expressions_mutator ()<br />#6  0x08150ece in
expression_tree_mutator()<br />#7  0x08151c49 in eval_const_expressions_mutator ()<br />#8  0x08152818 in
eval_const_expressions()<br />#9  0x081487d8 in preprocess_expression ()<br />#10 0x08149a04 in subquery_planner ()<br
/>#110x08149e56 in planner ()<br />#12 0x0817c25c in pg_plan_query ()<br />#13 0x0817c8d2 in pg_plan_queries ()<br
/>#140x0817e135 in PostgresMain ()<br />#15 0x0815b6e5 in ServerLoop ()<br />#16 0x0815c459 in PostmasterMain ()<br
/>#170x08128f48 in main ()<br /><br /><br />this is the LOG obtained<br /><br />LOG:  server process (PID 2499) was
terminatedby signal 11<br />(gdb) LOG:  terminating any other active server processes<br />LOG:  all server processes
terminated;reinitializing<br />LOG:  database system was interrupted at 2006-10-10 23:40:05 IST<br />LOG:  checkpoint
recordis at 0/14B37B98<br />LOG:  redo record is at 0/14B37B98; undo record is at 0/0; shutdown FALSE<br />LOG:  next
transactionID: 210546; next OID: 851968; next MultiXactId: 1<br />LOG:  database system was not properly shut down;
automaticrecovery in progress<br />FATAL:  the database system is starting up<br />LOG:  record with zero length at
0/14B37BD8<br/>LOG:  redo is not required<br />LOG:  database system is ready<br />LOG:  transaction ID wrap limit is
1073952152,limited by database "benchmark"<br /><br /><br />Can somebody suggest us what might be the cause of error
andwhat can we do to resolve it ?<br /><p> __________________________________________________<br />Do You Yahoo!?<br
/>Tiredof spam? Yahoo! Mail has the best spam protection around <br />http://mail.yahoo.com  

Re: postgres database crashed

От
Tom Lane
Дата:
Ashish Goel <postgres_help@yahoo.com> writes:
> We have a following table xyz( id int , fname varchar(50), img image)
> where image is a data type we have created similar to lo.
> ...
> Can somebody suggest us what might be the cause of error and what can we do to resolve it ?

Incorrect code in your custom datatype, almost certainly.  Check
computations of memory size allocations, for example.  Test it in
a backend compiled with --enable-cassert.
        regards, tom lane


Re: postgres database crashed

От
Ashish Goel
Дата:
But the same code worked when I inserted around 2500 images in the database. After that it started crashing. So , I
don'tthink it's because of error in the code. Can u suggest some other possible reasons and also why is it crashing at
callto memcpy(). I have also checked the memory allocations , and i don't find problem there.<br /><br /><br /><br
/><b><i>TomLane <tgl@sss.pgh.pa.us></i></b> wrote:<blockquote class="replbq" style="border-left: 2px solid
rgb(16,16, 255); margin-left: 5px; padding-left: 5px;"> Ashish Goel  writes:<br />> We have a following table xyz(
idint , fname varchar(50), img image)<br />> where image is a data type we have created similar to lo.<br />>
...<br/>> Can somebody suggest us what might be the cause of error and what can we do to resolve it ?<br /><br
/>Incorrectcode in your custom datatype, almost certainly. Check<br />computations of memory size allocations, for
example.Test it in<br />a backend compiled with --enable-cassert.<br /><br /> regards, tom lane<br /></blockquote><br
/><p><hrsize="1" />How low will we go? Check out Yahoo! Messenger’s low <a
href="http://us.rd.yahoo.com/mail_us/taglines/postman8/*http://us.rd.yahoo.com/evt=39663/*http://voice.yahoo.com">
PC-to-Phonecall rates.</a> 

Re: postgres database crashed

От
"Andrew Dunstan"
Дата:

Did you follow Tom's suggestion of trying with a postgres configured with
--enable-cassert ?

cheers

andrew

Ashish Goel wrote:
> But the same code worked when I inserted around 2500 images in the
> database. After that it started crashing. So , I don't think it's because
> of error in the code. Can u suggest some other possible reasons and also
> why is it crashing at call to memcpy(). I have also checked the memory
> allocations , and i don't find problem there.
>
>
>
> Tom Lane <tgl@sss.pgh.pa.us> wrote: Ashish Goel
>  writes:
>> We have a following table xyz( id int , fname varchar(50), img image)
>> where image is a data type we have created similar to lo.
>> ...
>> Can somebody suggest us what might be the cause of error and what can we
>> do to resolve it ?
>
> Incorrect code in your custom datatype, almost certainly.  Check
> computations of memory size allocations, for example.  Test it in
> a backend compiled with --enable-cassert.
>




Re: postgres database crashed

От
Ashish Goel
Дата:
But the same code worked when I inserted around 2500 images in the database. After that it started crashing. So , I don't think it's because of error in the code. Can u suggest some other possible reasons and also why is it crashing at call to memcpy().





Tom Lane <tgl@sss.pgh.pa.us> wrote:
Ashish Goel writes:
> We have a following table xyz( id int , fname varchar(50), img image)
> where image is a data type we have created similar to lo.
> ...
> Can somebody suggest us what might be the cause of error and what can we do to resolve it ?

Incorrect code in your custom datatype, almost certainly. Check
computations of memory size allocations, for example. Test it in
a backend compiled with --enable-cassert.

regards, tom lane


All-new Yahoo! Mail - Fire up a more powerful email and get things done faster.


Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail.

Re: postgres database crashed

От
Markus Schaber
Дата:
Hi, Ashish,

Ashish Goel wrote:
> But the same code worked when I inserted around 2500 images in the
> database. After that it started crashing.

Testing can never prove that there are no bugs.

It's like the proof that all odd numbers above 1 are prime:

3 is prime, 5 is prime, 7 is prime, so I conclude that all odd numbers
above 1 are prime.

So , I don't think it's
> because of error in the code. Can u suggest some other possible reasons
> and also why is it crashing at call to memcpy().

- broken hardware
- compiler bugs
- bugs in PostgreSQL

But without having seen your code, I tend to assume that it's something
like a wrong length flag in some corner case in your code.
...

Markus
--
Markus Schaber | Logical Tracking&Tracing International AG
Dipl. Inf.     | Software Development GIS

Fight against software patents in Europe! www.ffii.org
www.nosoftwarepatents.org


Re: postgres database crashed

От
Ashish Goel
Дата:
Hi all,<br /><br />I am sorry but I forgot to mention that in the database schema we are maintaining referrences to the
maintable xyz(int id, img image, fname varhcar(50))<br /><br />There are around 14 tables referrencing this table . The
referrencesare being made to the column id.<br /><br />The code works well if we don't maintain the referrences but
whenwe include the referrences then the database crashes somewhere between 2500-3000 transactions.<br /><br />So could
thisproblem be due to the multiple referrences being made to the same table ?<br /><br /><b><i>Markus Schaber
<schabi@logix-tt.com></i></b>wrote:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255);
margin-left:5px; padding-left: 5px;"> Hi, Ashish,<br /><br />Ashish Goel wrote:<br />> But the same code worked when
Iinserted around 2500 images in the<br />> database. After that it started crashing.<br /><br />Testing can never
provethat there are no bugs.<br /><br />It's like the proof that all odd numbers above 1 are prime:<br /><br />3 is
prime,5 is prime, 7 is prime, so I conclude that all odd numbers<br />above 1 are prime.<br /><br /><br /> So , I don't
thinkit's<br />> because of error in the code. Can u suggest some other possible reasons<br />> and also why is
itcrashing at call to memcpy().<br /><br />- broken hardware<br />- compiler bugs<br />- bugs in PostgreSQL<br /><br
/>Butwithout having seen your code, I tend to assume that it's something<br />like a wrong length flag in some corner
casein your code.<br />...<br /><br />Markus<br />-- <br />Markus Schaber | Logical Tracking&Tracing International
AG<br/>Dipl. Inf. | Software Development GIS<br /><br />Fight against software patents in Europe! www.ffii.org<br
/>www.nosoftwarepatents.org<br/><br /></blockquote><br /><p><hr size="1" />Get your own <a href="
http://us.rd.yahoo.com/evt=43290/*http://smallbusiness.yahoo.com/domains">webaddress for just $1.99/1st yr</a>. We'll
help.<a href="http://us.rd.yahoo.com/evt=41244/*http://smallbusiness.yahoo.com/">Yahoo! Small Business</a>.  

Re: postgres database crashed

От
Markus Schaber
Дата:
Hi, Ashish,

Ashish Goel wrote:

> I am sorry but I forgot to mention that in the database schema we are
> maintaining referrences to the main table xyz(int id, img image, fname
> varhcar(50))
>
> There are around 14 tables referrencing this table . The referrences are
> being made to the column id.
>
> The code works well if we don't maintain the referrences but when we
> include the referrences then the database crashes somewhere between
> 2500-3000 transactions.
>
> So could this problem be due to the multiple referrences being made to
> the same table ?

I doubt so.

Foreign key references are among the basics of SQL, they're pretty well
tested.

Could you try to replace your image type e. G. with bytea for your test
purposes, and see, whether it crashes, too?

HTH,
Markus
--
Markus Schaber | Logical Tracking&Tracing International AG
Dipl. Inf.     | Software Development GIS

Fight against software patents in Europe! www.ffii.org
www.nosoftwarepatents.org


Re: postgres database crashed

От
Tom Lane
Дата:
Markus Schaber <schabi@logix-tt.com> writes:
> Ashish Goel wrote:
>> The code works well if we don't maintain the referrences but when we
>> include the referrences then the database crashes somewhere between
>> 2500-3000 transactions.
>>
>> So could this problem be due to the multiple referrences being made to
>> the same table ?

> I doubt so.
> Foreign key references are among the basics of SQL, they're pretty well
> tested.

I'm betting that this is a memory-clobber problem in that custom datatype.
The reason the symptoms come and go when varying unrelated stuff is that
it might be chancing to clobber momentarily-unused memory rather than
live data structures.  (In the above example, the queue of pending FK
trigger events is likely what got clobbered.)
        regards, tom lane