Posts: 5
Threads: 2
Joined: Jan 2010
Reputation:
0
Mar 22nd, 2010, 6:42 AM
(This post was last modified: Mar 23rd, 2010, 9:55 AM by BlueRobot.)
I'm getting a 304 error and am posting the error received as per instructions. It's a big form...
[attachment=50]
Error Type: System
Error Code: #304 — Learn more about this error.
Debugging:
Failed query in ft_api_process_form,
...snip...
Got error 139 from storage engine
Posts: 2,456
Threads: 39
Joined: Dec 2008
Reputation:
6
Quote:Seems like it could be easily addressed by changing the table to the MyISAM engine. Any known issue with form tools and changing the table type?
No.... but I wouldn't recommend it; it would be kind of invasive & probably cause problems with upgrading down the road.
Any chance you could change the database field size for a few of the fields? e.g. reduce them to "large" from "very large" or something?
- Ben
Posts: 5
Threads: 2
Joined: Jan 2010
Reputation:
0
Mar 23rd, 2010, 5:47 AM
(This post was last modified: Mar 23rd, 2010, 6:15 AM by BlueRobot.)
(Mar 22nd, 2010, 8:18 PM)Ben Wrote: Quote:Any chance you could change the database field size for a few of the fields? e.g. reduce them to "large" from "very large" or something?
- Ben
The fields are all set to large or smaller...
(Mar 23rd, 2010, 5:47 AM)BlueRobot Wrote: (Mar 22nd, 2010, 8:18 PM)Ben Wrote: Quote:Any chance you could change the database field size for a few of the fields? e.g. reduce them to "large" from "very large" or something?
- Ben
The fields are all set to large or smaller...
Looking through MySQL bugs and forums - seems like this issue is being addressed by:
1) keeping InnoDB and splitting the table into multiple tables
2) Changing the table from InnoDB to MyISAM
I'm going to do some tests on a development database changing from text to mediumtext/longtext and see if that makes any difference.
Posts: 5
Threads: 2
Joined: Jan 2010
Reputation:
0
(Mar 23rd, 2010, 5:47 AM)BlueRobot Wrote: Looking through MySQL bugs and forums - seems like this issue is being addressed by:
1) keeping InnoDB and splitting the table into multiple tables
2) Changing the table from InnoDB to MyISAM
I'm going to do some tests on a development database changing from text to mediumtext/longtext and see if that makes any difference.
I did some tests - the error is not related to the field size but the size of the entire record.
MyISAM tables seemed to work fine, so I changed the form tables over. I'm not worried about upgrades as this website will only be used for about another month or so.
Posts: 2,456
Threads: 39
Joined: Dec 2008
Reputation:
6
Fair enough! Thanks for letting us know that the MyISAM change fixed it.
- Ben
Posts: 9
Threads: 3
Joined: Apr 2010
Reputation:
0
I too am getting this error. I also have a large form with almost 80 columns in the mysql form table including a file upload. Seems to be related to how much data is being posted. All mysql fields are text or smaller.
Failed query in ft_process_form, /webroot/htdocs/form_too/process.php, line 240:
I would prefer a fix that survives future upgrades but with time to live issues I'll go with what works short term.
BlueRobot did you only change one table from InnoDB to MyISAM? The table (ft_form_2 in my case) that lists the columns?
Ben have you looked at this again?
Cheers,
Scott
Apache/2.0.51 (Fedora)
MySQL 5.0.18-standard
PHP Version 5.1.2
Posts: 5
Threads: 2
Joined: Jan 2010
Reputation:
0
Hi Scott,
I just changed the form tables to MyISAM. I tested on a development copy of the database & site first - you may want to do the same in case your issue is different than mine.
(Apr 12th, 2010, 5:39 PM)Scott Wrote: I too am getting this error. I also have a large form with almost 80 columns in the mysql form table including a file upload. Seems to be related to how much data is being posted. All mysql fields are text or smaller.
Failed query in ft_process_form, /webroot/htdocs/form_too/process.php, line 240:
I would prefer a fix that survives future upgrades but with time to live issues I'll go with what works short term.
BlueRobot did you only change one table from InnoDB to MyISAM? The table (ft_form_2 in my case) that lists the columns?
Ben have you looked at this again?
Cheers,
Scott
Apache/2.0.51 (Fedora)
MySQL 5.0.18-standard
PHP Version 5.1.2
Posts: 9
Threads: 3
Joined: Apr 2010
Reputation:
0
Apr 13th, 2010, 10:04 AM
(This post was last modified: Apr 13th, 2010, 10:05 AM by Scott.)
Hi BlueRobot,
Thanks for your response. I've set up a new installation of formtools on a test box (Apache/2.2.14, PHP 5.3.1, MySQL 5.1.44) and with the same form was able to generate the same 304 error. It definitely is data volume issue since the error is triggered when I paste a string (330 char long) into ~2/3 of the textarea fields.
I then changed the form table (and no other) from INNODB to MyISAM using this sql statement;
ALTER TABLE ft_form_1 ENGINE=MYISAM;
And it works like a charm. Pasting ~1000 char string into all textarea fields works. BlueRobot, thanks very much!
So every time I create a new form I have to remember to change the mysql engine to MyISAM.
Ben, what are the issues regarding this approach and upgrading FormTools in the future? Would it be possible to have formtools create only the form tables using the MyISAM engine by default since the form tables are created dynamically?
Cheers,
Scott
Posts: 2,456
Threads: 39
Joined: Dec 2008
Reputation:
6
Hi Scott,
I should come clean about the InnoDB/MyISAM thing...
Form Tools originally used MyISAM back in an early version of 1.x, but I then converted it to InnoDB with the intention of adding foreign keys to speed things up. I never DID add foreign keys, however, since speed didn't prove to be much of an issue and it caused innumerable other headaches. Now I'm finding that MyISAM is probably a better solution, for the reason you posted above, and others.
So... at risk of looking like a complete idiot (too late!) I *will* be moving back to MyISAM in a future release - probably in the next Beta (2.0.1). At this point I haven't fully checked out the implications of this, but I haven't heard of any problems.
In the meantime, I think you're stuck manually updating the tables each time you create a new form. If that's too much of a pain, you could try tweaking the code to explicitly set them as MyISAM - then only upgrade once the new version is creating everything in the new DB format. If you need help on that, let me know.
- Ben
|