Page 1 of 1

Servoy 2019.6 rc Could not upgrade repository

PostPosted: Thu Jun 20, 2019 8:48 pm
by rioba1401913570
After a crash I had to reinstall Servoy developer and server on Mac OSX 10.14.5 using the latest rc Servoy 2019.6. All previous installations had to be erased so I started from scratch but I encountered problems with the stand alone application server (not the one in developer). This is what I did:
a) started the MySQL 8.0.16 server;
a) created an empty db on MySQL 8.0.16 called repository_server;
b) installed the Application Server from Servoy installer;
c) copied mysql-connector-java-8.0.16.jar in the drivers folder;
d) copied the servoy.properties file from the Developer server installation and replaced the one created by the installer in the Application server folder so to have a named connection to Servoy repository;
This is the content of servoy.properties file
Code: Select all
#servoy
#Thu Jun 20 15:07:36 CEST 2019
server.0.maxPreparedStatementsIdle=100
ServerManager.numberOfServers=1
server.0.enabled=true
server.0.userName=root
server.0.prefixTables=false
servoy.objectPoolSize=50000
server.0.queryProcedures=false
server.0.connectionValidationType=0
ApplicationServer.pingDelay=300
server.0.driver=com.mysql.cj.jdbc.Driver
server.0.maxConnectionsIdle=10
server.0.maxConnectionsActive=30
server.0.password=encrypted\:##########################
SocketFactory.useTwoWaySocket=true
server.0.schema=<none>
server.0.skipSysTables=false
java.rmi.server.hostname=127.0.0.1
pdf_forms_plugin_servername=pdf_forms
servoy.FileServerService.defaultFolder=/Users/#########/.servoy/uploads/7782d384-2757-43e9-ae62-c0b22633f066
server.0.catalog=<none>
server.0.URL=jdbc\:mysql\://localhost/repository_server?useTimezone\=true&serverTimezone\=Europe/Rome
server.0.serverName=repository_server
SocketFactory.useSSL=true

e) I then executed
Code: Select all
./servoy_server.sh -upgradeRepository
.
However the repository_server was not upgraded and the log reported these errors
Code: Select all
Creating repository.
Error creating repository: com.servoy.j2db.persistence.RepositoryException: com.servoy.j2db.persistence.RepositoryException: java.sql.SQLSyntaxErrorException: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
com.servoy.j2db.persistence.RepositoryException: Error creating repository
   at com.servoy.j2db.server.main.ApplicationServer.Zb(ApplicationServer.java:43)
   at com.servoy.j2db.server.main.Zap.Za(Zap.java:34)
   at com.servoy.j2db.server.main.Zap.start(Zap.java:31)
   at com.servoy.j2db.server.main.ApplicationServer.main(ApplicationServer.java:502)
Caused by: com.servoy.j2db.persistence.RepositoryException: com.servoy.j2db.persistence.RepositoryException: java.sql.SQLSyntaxErrorException: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
   at com.servoy.j2db.server.Za.Zn.createRepositoryTables(Zn.java:672)
   at com.servoy.j2db.server.Za.Zo.Zc(Zo.java:385)
   at com.servoy.j2db.server.Za.Zo.Zb(Zo.java:1683)
   at com.servoy.j2db.server.main.ApplicationServer.Zb(ApplicationServer.java:82)
   ... 3 more
Caused by: com.servoy.j2db.persistence.RepositoryException: java.sql.SQLSyntaxErrorException: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
   at com.servoy.j2db.server.Za.Zo.Za(Zo.java:730)
   at com.servoy.j2db.server.Za.Zn.recreateServoyColumnInfo(Zn.java:464)
   at com.servoy.j2db.server.Za.Zn.createRepositoryTables(Zn.java:459)
   ... 6 more
Caused by: java.sql.SQLSyntaxErrorException: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
   at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
   at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
   at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
   at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:782)
   at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:666)
   at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:175)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
   at com.servoy.j2db.datasource.Zf.invoke(Zf.java:11)
   at com.sun.proxy.$Proxy19.execute(Unknown Source)
   at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:175)
   at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:175)
   at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:175)
   at org.apache.commons.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:175)
   at com.servoy.j2db.server.Za.Zo.Za(Zo.java:1480)
   ... 8 more

Any help greatly appreciated

Re: Servoy 2019.6 rc Could not upgrade repository

PostPosted: Fri Jun 21, 2019 12:31 am
by mboegem
Hi,

While creating tables, Servoy hits the limits of your mySQL database.
https://dev.mysql.com/doc/refman/8.0/en ... ize-limits

Best would be to open an issue on this so Servoy can investigate what has changed compared to previous versions.
They might have added a new column to some table resulting in this row-size issue.

Re: Servoy 2019.6 rc Could not upgrade repository

PostPosted: Fri Jun 21, 2019 12:31 pm
by rgansevles
Thanks for reporting this.

We will fix this for next 2019.06 build, see https://support.servoy.com/browse/SVY-13869

Rob

Re: Servoy 2019.6 rc Could not upgrade repository

PostPosted: Fri Jun 21, 2019 1:33 pm
by rioba1401913570
Thanks to both. I have done some testing by downgrading MySQL server and jdbc driver from 8 to 5.7 and the problem persisted. So the culprit is undoubtedly Servoy 2019.

Re: Servoy 2019.6 rc Could not upgrade repository

PostPosted: Fri Jun 21, 2019 1:41 pm
by rgansevles
The problem is that mysql default charset is changed some time ago from utf8 which uses 3 bytes per character to utf8mb4 which uses 4 bytes per character.
One of the repository tables went over the limit with that.

Re: Servoy 2019.6 rc Could not upgrade repository

PostPosted: Fri Jul 05, 2019 9:27 am
by rgansevles
This has been fixed for release 2019.06.

Rob

Re: Servoy 2019.6 rc Could not upgrade repository

PostPosted: Fri Jul 05, 2019 9:31 am
by rioba1401913570
Thank you very much, now everything is ok