URGENT - "CANNOT EXTEND"
A couple days ago I asked what happens when I hit 2GB and I was told "no
worries". Well, I hit 2GB and it barfed on me. It looks like postgres is
trying to create a new file, but it isn't able to use it....
/dev/sda is where my database resides and it has 38% free.
Right now, geocrawler is still up and running, but no new mail can be
inserted into it until I can get this figured out....
Please respond directly to tim@perdue.net
Thanks,
Tim
java.sql.SQLException: ERROR: tbl_mail_archive: cannot extend <-- BAD NEWS
at postgresql.Connection.ExecSQL(Compiled Code)
at postgresql.Statement.execute(Compiled Code)
at postgresql.Statement.executeUpdate(Compiled Code)
at com.geocrawler.mail.News2SQL.processFile(Compiled Code)
at com.geocrawler.mail.News2SQL.<init>(Compiled Code)
at com.geocrawler.mail.News2SQL.main(Compiled Code)
java.sql.SQLException: IOError while reading from backend:
java.io.IOException:
The backend has broken the connection. Possibly the action you have
attempted ha
s caused it to close.
at postgresql.PG_Stream.ReceiveChar(Compiled Code)
at postgresql.Connection.ExecSQL(Compiled Code)
at postgresql.Statement.execute(Compiled Code)
at postgresql.Statement.executeUpdate(Compiled Code)
at com.geocrawler.mail.News2SQL.processFile(Compiled Code)
at com.geocrawler.mail.News2SQL.<init>(Compiled Code)
at com.geocrawler.mail.News2SQL.main(Compiled Code)
ls -l
-rw------- 1 postgres postgres 2147482624 Mar 13 22:43 tbl_mail_archive
-rw------- 1 postgres postgres 0 Mar 13 22:41 tbl_mail_archive.1
df
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/sdb3 1931651 725575 1106236 40% /
/dev/sda 8573425 5077127 3051717 62% /fireball
[Charset iso-8859-1 unsupported, filtering to ASCII...]
A couple days ago I asked what happens when I hit 2GB and I was told "no
worries". Well, I hit 2GB and it barfed on me. It looks like postgres is
trying to create a new file, but it isn't able to use it..../dev/sda is where my database resides and it has 38% free.
Right now, geocrawler is still up and running, but no new mail can be
inserted into it until I can get this figured out....Please respond directly to tim@perdue.net
OK, the problem is that some OS's have trouble with tables that are
exactly 2gig. While PostgreSQL does not have a problem, and many OS's
don't, some can't handle a file that is exactly 2 gigs, so we have
modified the 6.5 unreleased code to stop growing the table at about 1
gig, and create a new table file so that is not a problem.
Peter Mount made the change. I don't see anything on our FTP server
about that patch, so perhaps Peter will have to supply one, or we will
have to grab one. If you search the hackers archive on the ftp site,
you will see discussion about it, and perhaps a patch.
--
Bruce Momjian | http://www.op.net/~candle
maillist@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
On Sun, 14 Mar 1999, Bruce Momjian wrote:
[Charset iso-8859-1 unsupported, filtering to ASCII...]
A couple days ago I asked what happens when I hit 2GB and I was told "no
worries". Well, I hit 2GB and it barfed on me. It looks like postgres is
trying to create a new file, but it isn't able to use it..../dev/sda is where my database resides and it has 38% free.
Right now, geocrawler is still up and running, but no new mail can be
inserted into it until I can get this figured out....Please respond directly to tim@perdue.net
OK, the problem is that some OS's have trouble with tables that are
exactly 2gig. While PostgreSQL does not have a problem, and many OS's
don't, some can't handle a file that is exactly 2 gigs, so we have
modified the 6.5 unreleased code to stop growing the table at about 1
gig, and create a new table file so that is not a problem.Peter Mount made the change. I don't see anything on our FTP server
about that patch, so perhaps Peter will have to supply one, or we will
have to grab one. If you search the hackers archive on the ftp site,
you will see discussion about it, and perhaps a patch.
I did post a patch when I found the problem to the patches list. That one
set it to 1 block short of 2Gig, and afterwards, we decided to change it
to 1Gig. I thought the changes had been made already.
I'm finally about to get back into the swing of things, and I'll post the
patch again as soon as I resync my sources.
As for it working with 6.4, it should do, although you probably have to
apply the patch manually.
Peter
--
Peter T Mount peter@retep.org.uk
Main Homepage: http://www.retep.org.uk
PostgreSQL JDBC Faq: http://www.retep.org.uk/postgres
Java PDF Generator: http://www.retep.org.uk/pdf
On Sun, 14 Mar 1999, Bruce Momjian wrote:
[snip]
Peter Mount made the change. I don't see anything on our FTP server
about that patch, so perhaps Peter will have to supply one, or we will
have to grab one. If you search the hackers archive on the ftp site,
you will see discussion about it, and perhaps a patch.
I've dug this out of my mail archives. It splits the relations at 1Gb.
This diff is from this mornings cvs.
Good job I don't delete what I send out ;-)
Peter
--
Peter T Mount peter@retep.org.uk
Main Homepage: http://www.retep.org.uk
PostgreSQL JDBC Faq: http://www.retep.org.uk/postgres
Java PDF Generator: http://www.retep.org.uk/pdf
Attachments:
psql-1gb-fix.difftext/plain; charset=US-ASCII; name=psql-1gb-fix.diffDownload
*** ./backend/storage/smgr/md.c.orig Sun Mar 14 10:41:08 1999
--- ./backend/storage/smgr/md.c Sun Mar 14 10:54:07 1999
***************
*** 66,86 ****
* has to be calculated at compile time. Otherwise, the file
* size limit would not work out to 2-gig (2147483648).
*
! * The number needs to be (2 ** 31) / BLCKSZ, but to be keep
! * the math under MAXINT, pre-divide by 256 and use ...
*
! * (((2 ** 23) / BLCKSZ) * (2 ** 8))
*
* 07 Jan 98 darrenk
*
* Now possibly let the OS handle it...
*
* 19 Mar 98 darrenk
*
*/
#ifndef LET_OS_MANAGE_FILESIZE
! #define RELSEG_SIZE ((8388608 / BLCKSZ) * 256)
#endif
/* routines declared here */
--- 66,94 ----
* has to be calculated at compile time. Otherwise, the file
* size limit would not work out to 2-gig (2147483648).
*
! * The number needs to be MAX_FILE_SIZE / BLCKSZ, but to be
! * keep the math under MAXINT, pre-divide by 256 and use ...
*
! * (7812500 / BLCKSZ) * 256
*
* 07 Jan 98 darrenk
+ * 07 Feb 99 peter (rewrite)
*
* Now possibly let the OS handle it...
*
* 19 Mar 98 darrenk
*
+ * Reduced the maximum file size from 2147483648 (2Gb) to 1073741824 (1Gb)
+ * to prevent a possible overflow in the OS (You can't have a file exactly
+ * 2Gb in size).
+ *
+ * 07 Feb 99 peter
+ * 14 Mar 99 peter (resubmitted lost patch)
+ *
*/
#ifndef LET_OS_MANAGE_FILESIZE
! #define RELSEG_SIZE ((4194304 / BLCKSZ) * 256)
#endif
/* routines declared here */