tumblr / collins

groovy kind of love
tumblr.github.com/collins
Apache License 2.0
573 stars 99 forks source link

ERROR play - Specified key was too long; max key length is 767 bytes #566

Open sebbbastien opened 6 years ago

sebbbastien commented 6 years ago

Hi,

I got this error when doing the "ZIP" way :

> sudo /home/collins/collins/scripts/collins.sh initdb collins_db_uname collins_db_password
Initializing collins database on localhost...
Please enter mysql root password. Press <enter> for none.
Enter password: 
Granting privs to collins user on localhost...
Please enter mysql root password. Press <enter> for none.
Enter password: 
Running migrationsRunning evolutions...
12:51:35.352 [main] ERROR play - Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]
Exception in thread "main" @75a7diblh: Database 'collins' is in an inconsistent state!
    at play.api.db.evolutions.Evolutions$.checkEvolutionsState(Evolutions.scala:196)
    at play.api.db.evolutions.Evolutions$.applyScript(Evolutions.scala:296)
    at play.api.db.evolutions.OfflineEvolutions$.applyScript(Evolutions.scala:631)
    at collins.DbUtil$.delayedEndpoint$collins$DbUtil$1(DbUtil.scala:13)
    at collins.DbUtil$delayedInit$body.apply(DbUtil.scala:7)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
    at scala.App$class.main(App.scala:76)
    at collins.DbUtil$.main(DbUtil.scala:7)
    at collins.DbUtil.main(DbUtil.scala)
 failed!

I found this can be due to an UTF-8 based system and I try this workaround :

MariaDB [(none)]> set global innodb_large_prefix=on;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> set global innodb_file_format=Barracuda;
Query OK, 0 rows affected (0.00 sec)

The error has been replaced by another :

> sudo /home/collins/collins/scripts/collins.sh initdb collins_db_uname collins_db_password
Initializing collins database on localhost...
Please enter mysql root password. Press <enter> for none.
Enter password: 
Granting privs to collins user on localhost...
Please enter mysql root password. Press <enter> for none.
Enter password: 
Running migrationsRunning evolutions...
13:14:39.596 [main] ERROR com.jolbox.bonecp.ConnectionHandle - Database access problem. Killing off this connection and all remaining connections in the connection pool. SQL State = HY000
Exception in thread "main" java.sql.SQLException: Connection is closed!
    at com.jolbox.bonecp.ConnectionHandle.checkClosed(ConnectionHandle.java:459)
    at com.jolbox.bonecp.ConnectionHandle.prepareStatement(ConnectionHandle.java:1011)
    at play.api.db.evolutions.Evolutions$.prepare(Evolutions.scala:128)
    at play.api.db.evolutions.Evolutions$.updateLastProblem$1(Evolutions.scala:247)
    at play.api.db.evolutions.Evolutions$.applyScript(Evolutions.scala:289)
    at play.api.db.evolutions.OfflineEvolutions$.applyScript(Evolutions.scala:631)
    at collins.DbUtil$.delayedEndpoint$collins$DbUtil$1(DbUtil.scala:13)
    at collins.DbUtil$delayedInit$body.apply(DbUtil.scala:7)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
    at scala.App$class.main(App.scala:76)
    at collins.DbUtil$.main(DbUtil.scala:7)
    at collins.DbUtil.main(DbUtil.scala)
 failed!

I try to install Collins 2.0.0 :

> mysql -V
mysql  Ver 15.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
> java -version
openjdk version "1.8.0_141"
OpenJDK Runtime Environment (build 1.8.0_141-8u141-b15-1~deb9u1-b15)
OpenJDK 64-Bit Server VM (build 25.141-b15, mixed mode)
> lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.1 (stretch)
Release:    9.1
Codename:   stretch

Can you conrfim the workaround for the fist error and help me with the second one ?

byxorna commented 6 years ago

@sebbbastien have you tried to launch collins via docker container? We have not cut a release in quite some time, and building from HEAD, or running the latest docker build is the best way to get it running. Can you give that a whirl?

Also, I have not tried that version (15.1) with Collins. Can you try the mysql:5.5 docker container and see if that works?