Bug #29238 INSERT DELAYED is suspended when table is full, no error reporting.
Submitted: 20 Jun 2007 13:52 Modified: 20 Jun 2007 16:31
Reporter: Alexander Golovnyov Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: General Severity:S1 (Critical)
Version:5.041 OS:Any
Assigned to: CPU Architecture:Any

[20 Jun 2007 13:52] Alexander Golovnyov
Description:
fill any table with data using general INSERT statement, untill getting error "The table is full".
replace INSERT with INSERT DELAYED and execute.
No error after that execution...

How to repeat:
fill any table with data using general INSERT statement, untill getting error "The table is full".
replace INSERT with INSERT DELAYED and execute.
No error after that execution...
[20 Jun 2007 16:31] Sveta Smirnova
Thank you for the report.

Please read carefully about how INSERT DELAYED works at http://dev.mysql.com/doc/refman/5.0/en/insert-delayed.html: "When a client uses INSERT DELAYED, it gets an okay from the server at once, and the row is queued to be inserted when the table is not in use by any other thread."
[21 Jun 2007 14:50] Pavel Pushkarev
I think the problem was that actually the MyISAM table
runs out of pointer space, so there will never be an actual
insert: ALTER TABLE is required to extend the pointer size,
but DDL will rollback the pending INSERT DELAYED.
[21 Jun 2007 15:01] Grigory Rubtsov
Does the bug is to be reopened according to the Pavel's comment?
[26 Jun 2007 11:12] Sergei Golubchik
No. No matter what is the reason for INSERT DELAYED to fail, it still cannot report an error. By design it works asynchronously, it simply has no way of returning an error. If it fails it does it silently.