On 6 Dec 2012, at 6:51pm, Durga D <durga.d...@gmail.com> wrote:

> Does disk io error is related to hardware issue? i mean, fsync() dint get
> success on unix. so, this error may be thrown by sqlite. Is it?

Disk IO is sometimes caused by a hardware issue, but it can be caused by 
trusting data which is already in a corrupt database.  If you are trying to use 
a corrupt database you can get all sorts of error messages at any time, because 
SQLite makes the assumption that the database is not corrupt.

To make up an imaginary example, there may be data in your corrupt database 
that says the next piece of a table is in block -999.  The software then issues 
the instruction "read block -999" to your file system which says "Don't be 
stupid, there is no such thing as block -999." and issues a DISK IO ERROR.  So 
here you have a genuine correct DISK IO ERROR which is actually caused by the 
corrupt database and not a hardware problem.  But this is not definitely what's 
causing your message.  Perhaps the database is asking to read a block which has 
a good block number, and you have a genuine hardware error caused by a faulty 
hard disk.

So as I wrote before we cannot tell what is wrong with your system while you 
are still using a corrupt database file.  It is only the first error which is 
useful.  After that you can get all sorts of error messages but they tell us 
nothing.  Only when you stop trying to use your corrupt database can we help 
you.

Alternatively, if you are willing to pay lots of money, you can send a copy of 
the corrupt database to hwaci and pay a human who understands how SQLite works 
to rescue all the rescuable data from it.

Simon.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to