Re: Please, fix!!! The backend can crash on your system! - Mailing list pgsql-bugs
From | Bruce Momjian |
---|---|
Subject | Re: Please, fix!!! The backend can crash on your system! |
Date | |
Msg-id | 200103291339.IAA23907@candle.pha.pa.us Whole thread Raw |
In response to | Please, fix!!! The backend can crash on your system! (Alexis Wilke <alexis_wilke@yahoo.com>) |
List | pgsql-bugs |
In the current sources, I see: for (lineoff = FirstOffsetNumber; lineoff <= max; lineoff++) so it looks like we have this fixed. You can check the 7.1RC1. > > If PostgreSQL failed to compile on your computer or you found a bug that > is likely to be specific to one platform then please fill out this form > and e-mail it to pgsql-ports@postgresql.org. > > To report any other bug, fill out the form below and e-mail it to > pgsql-bugs@postgresql.org. > > If you not only found the problem but solved it and generated a patch > then e-mail it to pgsql-patches@postgresql.org instead. Please use the > command "diff -c" to generate the patch. > > You may also enter a bug report at http://www.postgresql.org/ instead of > e-mail-ing this form. > > ============================================================================ > POSTGRESQL BUG REPORT TEMPLATE > ============================================================================ > > > Your name : Alexis Wilke > Your email address : alexis@m2osw.com > > > System Configuration > --------------------- > Architecture (example: Intel Pentium) : trust me, doesn't matter > > Operating System (example: Linux 2.0.26 ELF) : trust me, doesn't matter > > PostgreSQL version (example: PostgreSQL-7.0): since PostgreSQL-6.5.x > and still in the code > > Compiler used (example: gcc 2.8.0) : trust me, doesn't matter > > > Please enter a FULL description of your problem: > ------------------------------------------------ > > It crashes when pg_database is too large. This is because > the index is compare to max with <= instead of <. I already > fixed the bug on my system. That's at line > > > > Please describe a way to repeat the problem. Please try to provide a > concise reproducible example, if at all possible: > ---------------------------------------------------------------------- > > Create many database (or create/destroy the same many times). > > Once the pg_database is more than one page (is 16Kb or more) then it > starts > crashing. (may not crash on all systems, but trust me, my fix > will work GREAT). > > > > If you know how this problem might be fixed, list the solution below: > --------------------------------------------------------------------- > > Okay, so go in the following file: > > ./src/backend/utils/misc/database.c > > and move to the line #183 (V7.0.1) > > There, fix the for() as is: > > for(i = 0; i < max; i++) > > Why? Well, because 'i' starts at 0, therefore, you > can't access the tuple number 'max'. If you look in > other source files, you will quickly see that all > these for() loops are starting with an index of > 1 and use some special functions/macros to access > the tuple data. > > > > > > __________________________________________________ > Do You Yahoo!? > Get email at your own domain with Yahoo! Mail. > http://personal.mail.yahoo.com/?.refer=text > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
pgsql-bugs by date: