Did you get any errors at all when trying to repair the table?
I am asking because I 've seen this error almost always happening when the server is running out of disk space where /tmp is located.
The location of MySQL's temporary folder, which is '/tmp' in most cases, should be changed to a location with a bigger disk space.
That is done in mysql's config file. If you don't manage your own dedicated/vps box, you should bring this to your host 's attention.
Hope it helps.