Error updating workspace README (Error saving workspace)

Hi Terra team,

I am currently unable to edit workspace READMEs / descriptions through the web browser, the error seems to be an issue writing to Terra's associated mysql database. I was able to do this through the API though. Yesterday I was unable to add tags and received a similar error. I _think_ that there may have been a banner about this yesterday, too, but I cannot seem to find anything on the forums. 

My error is as folllows

{
  "causes": [
    {
      "causes": [],
      "exceptionClass": "com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException",
      "message": "Lock wait timeout exceeded; try restarting transaction",
      "source": "rawls",
      "stackTrace": [
        {
          "className": "jdk.internal.reflect.GeneratedConstructorAccessor213",
          "fileName": null,
          "lineNumber": -1,
          "methodName": "newInstance"
        },
        {
          "className": "jdk.internal.reflect.DelegatingConstructorAccessorImpl",
          "fileName": null,
          "lineNumber": -1,
          "methodName": "newInstance"
        },
        {
          "className": "java.lang.reflect.Constructor",
          "fileName": null,
          "lineNumber": -1,
          "methodName": "newInstance"
        },
        {
          "className": "com.mysql.jdbc.Util",
          "fileName": "Util.java",
          "lineNumber": 425,
          "methodName": "handleNewInstance"
        },
        {
          "className": "com.mysql.jdbc.Util",
          "fileName": "Util.java",
          "lineNumber": 408,
          "methodName": "getInstance"
        },
        {
          "className": "com.mysql.jdbc.SQLError",
          "fileName": "SQLError.java",
          "lineNumber": 951,
          "methodName": "createSQLException"
        },
        {
          "className": "com.mysql.jdbc.MysqlIO",
          "fileName": "MysqlIO.java",
          "lineNumber": 3973,
          "methodName": "checkErrorPacket"
        },
        {
          "className": "com.mysql.jdbc.MysqlIO",
          "fileName": "MysqlIO.java",
          "lineNumber": 3909,
          "methodName": "checkErrorPacket"
        },
        {
          "className": "com.mysql.jdbc.MysqlIO",
          "fileName": "MysqlIO.java",
          "lineNumber": 2527,
          "methodName": "sendCommand"
        },
        {
          "className": "com.mysql.jdbc.MysqlIO",
          "fileName": "MysqlIO.java",
          "lineNumber": 2680,
          "methodName": "sqlQueryDirect"
        },
        {
          "className": "com.mysql.jdbc.ConnectionImpl",
          "fileName": "ConnectionImpl.java",
          "lineNumber": 2490,
          "methodName": "execSQL"
        },
        {
          "className": "com.mysql.jdbc.PreparedStatement",
          "fileName": "PreparedStatement.java",
          "lineNumber": 1858,
          "methodName": "executeInternal"
        },
        {
          "className": "com.mysql.jdbc.PreparedStatement",
          "fileName": "PreparedStatement.java",
          "lineNumber": 2079,
          "methodName": "executeUpdateInternal"
        },
        {
          "className": "com.mysql.jdbc.PreparedStatement",
          "fileName": "PreparedStatement.java",
          "lineNumber": 2013,
          "methodName": "executeUpdateInternal"
        },
        {
          "className": "com.mysql.jdbc.PreparedStatement",
          "fileName": "PreparedStatement.java",
          "lineNumber": 5104,
          "methodName": "executeLargeUpdate"
        },
        {
          "className": "com.mysql.jdbc.PreparedStatement",
          "fileName": "PreparedStatement.java",
          "lineNumber": 1548,
          "methodName": "executeBatchedInserts"
        },
        {
          "className": "com.mysql.jdbc.PreparedStatement",
          "fileName": "PreparedStatement.java",
          "lineNumber": 1253,
          "methodName": "executeBatchInternal"
        },
        {
          "className": "com.mysql.jdbc.StatementImpl",
          "fileName": "StatementImpl.java",
          "lineNumber": 970,
          "methodName": "executeBatch"
        },
        {
          "className": "com.zaxxer.hikari.pool.ProxyStatement",
          "fileName": "ProxyStatement.java",
          "lineNumber": 128,
          "methodName": "executeBatch"
        },
        {
          "className": "com.zaxxer.hikari.pool.HikariProxyPreparedStatement",
          "fileName": "HikariProxyPreparedStatement.java",
          "lineNumber": -1,
          "methodName": "executeBatch"
        },
        {
          "className": "slick.jdbc.JdbcActionComponent$InsertActionComposerImpl$MultiInsertAction",
          "fileName": "JdbcActionComponent.scala",
          "lineNumber": 542,
          "methodName": "$anonfun$run$18"
        },
        {
          "className": "slick.jdbc.JdbcBackend$SessionDef",
          "fileName": "JdbcBackend.scala",
          "lineNumber": 425,
          "methodName": "withPreparedStatement"
        },
        {
          "className": "slick.jdbc.JdbcBackend$SessionDef",
          "fileName": "JdbcBackend.scala",
          "lineNumber": 420,
          "methodName": "withPreparedStatement$"
        },
        {
          "className": "slick.jdbc.JdbcBackend$BaseSession",
          "fileName": "JdbcBackend.scala",
          "lineNumber": 489,
          "methodName": "withPreparedStatement"
        },
        {
          "className": "slick.jdbc.JdbcActionComponent$InsertActionComposerImpl",
          "fileName": "JdbcActionComponent.scala",
          "lineNumber": 511,
          "methodName": "preparedInsert"
        },
        {
          "className": "slick.jdbc.JdbcActionComponent$InsertActionComposerImpl$MultiInsertAction",
          "fileName": "JdbcActionComponent.scala",
          "lineNumber": 536,
          "methodName": "run"
        },
        {
          "className": "slick.jdbc.JdbcActionComponent$SimpleJdbcProfileAction",
          "fileName": "JdbcActionComponent.scala",
          "lineNumber": 28,
          "methodName": "run"
        },
        {
          "className": "slick.jdbc.JdbcActionComponent$SimpleJdbcProfileAction",
          "fileName": "JdbcActionComponent.scala",
          "lineNumber": 25,
          "methodName": "run"
        },
        {
          "className": "slick.dbio.DBIOAction$$anon$1",
          "fileName": "DBIOAction.scala",
          "lineNumber": 186,
          "methodName": "$anonfun$run$1"
        },
        {
          "className": "scala.collection.Iterator",
          "fileName": "Iterator.scala",
          "lineNumber": 943,
          "methodName": "foreach"
        },
        {
          "className": "scala.collection.Iterator",
          "fileName": "Iterator.scala",
          "lineNumber": 943,
          "methodName": "foreach$"
        },
        {
          "className": "scala.collection.AbstractIterator",
          "fileName": "Iterator.scala",
          "lineNumber": 1431,
          "methodName": "foreach"
        },
        {
          "className": "scala.collection.IterableLike",
          "fileName": "IterableLike.scala",
          "lineNumber": 74,
          "methodName": "foreach"
        },
        {
          "className": "scala.collection.IterableLike",
          "fileName": "IterableLike.scala",
          "lineNumber": 73,
          "methodName": "foreach$"
        },
        {
          "className": "scala.collection.AbstractIterable",
          "fileName": "Iterable.scala",
          "lineNumber": 56,
          "methodName": "foreach"
        },
        {
          "className": "slick.dbio.DBIOAction$$anon$1",
          "fileName": "DBIOAction.scala",
          "lineNumber": 186,
          "methodName": "run"
        },
        {
          "className": "slick.dbio.DBIOAction$$anon$1",
          "fileName": "DBIOAction.scala",
          "lineNumber": 183,
          "methodName": "run"
        },
        {
          "className": "slick.basic.BasicBackend$DatabaseDef$$anon$3",
          "fileName": "BasicBackend.scala",
          "lineNumber": 276,
          "methodName": "liftedTree1$1"
        },
        {
          "className": "slick.basic.BasicBackend$DatabaseDef$$anon$3",
          "fileName": "BasicBackend.scala",
          "lineNumber": 276,
          "methodName": "run"
        },
        {
          "className": "java.util.concurrent.ThreadPoolExecutor",
          "fileName": null,
          "lineNumber": -1,
          "methodName": "runWorker"
        },
        {
          "className": "java.util.concurrent.ThreadPoolExecutor$Worker",
          "fileName": null,
          "lineNumber": -1,
          "methodName": "run"
        },
        {
          "className": "java.lang.Thread",
          "fileName": null,
          "lineNumber": -1,
          "methodName": "run"
        }
      ]
    }
  ],
  "exceptionClass": "java.sql.BatchUpdateException",
  "message": "Lock wait timeout exceeded; try restarting transaction",
  "source": "rawls",
  "stackTrace": [
    {
      "className": "jdk.internal.reflect.GeneratedConstructorAccessor214",
      "fileName": null,
      "lineNumber": -1,
      "methodName": "newInstance"
    },
    {
      "className": "jdk.internal.reflect.DelegatingConstructorAccessorImpl",
      "fileName": null,
      "lineNumber": -1,
      "methodName": "newInstance"
    },
    {
      "className": "java.lang.reflect.Constructor",
      "fileName": null,
      "lineNumber": -1,
      "methodName": "newInstance"
    },
    {
      "className": "com.mysql.jdbc.Util",
      "fileName": "Util.java",
      "lineNumber": 425,
      "methodName": "handleNewInstance"
    },
    {
      "className": "com.mysql.jdbc.Util",
      "fileName": "Util.java",
      "lineNumber": 408,
      "methodName": "getInstance"
    },
    {
      "className": "com.mysql.jdbc.SQLError",
      "fileName": "SQLError.java",
      "lineNumber": 1162,
      "methodName": "createBatchUpdateException"
    },
    {
      "className": "com.mysql.jdbc.PreparedStatement",
      "fileName": "PreparedStatement.java",
      "lineNumber": 1587,
      "methodName": "executeBatchedInserts"
    },
    {
      "className": "com.mysql.jdbc.PreparedStatement",
      "fileName": "PreparedStatement.java",
      "lineNumber": 1253,
      "methodName": "executeBatchInternal"
    },
    {
      "className": "com.mysql.jdbc.StatementImpl",
      "fileName": "StatementImpl.java",
      "lineNumber": 970,
      "methodName": "executeBatch"
    },
    {
      "className": "com.zaxxer.hikari.pool.ProxyStatement",
      "fileName": "ProxyStatement.java",
      "lineNumber": 128,
      "methodName": "executeBatch"
    },
    {
      "className": "com.zaxxer.hikari.pool.HikariProxyPreparedStatement",
      "fileName": "HikariProxyPreparedStatement.java",
      "lineNumber": -1,
      "methodName": "executeBatch"
    },
    {
      "className": "slick.jdbc.JdbcActionComponent$InsertActionComposerImpl$MultiInsertAction",
      "fileName": "JdbcActionComponent.scala",
      "lineNumber": 542,
      "methodName": "$anonfun$run$18"
    },
    {
      "className": "slick.jdbc.JdbcBackend$SessionDef",
      "fileName": "JdbcBackend.scala",
      "lineNumber": 425,
      "methodName": "withPreparedStatement"
    },
    {
      "className": "slick.jdbc.JdbcBackend$SessionDef",
      "fileName": "JdbcBackend.scala",
      "lineNumber": 420,
      "methodName": "withPreparedStatement$"
    },
    {
      "className": "slick.jdbc.JdbcBackend$BaseSession",
      "fileName": "JdbcBackend.scala",
      "lineNumber": 489,
      "methodName": "withPreparedStatement"
    },
    {
      "className": "slick.jdbc.JdbcActionComponent$InsertActionComposerImpl",
      "fileName": "JdbcActionComponent.scala",
      "lineNumber": 511,
      "methodName": "preparedInsert"
    },
    {
      "className": "slick.jdbc.JdbcActionComponent$InsertActionComposerImpl$MultiInsertAction",
      "fileName": "JdbcActionComponent.scala",
      "lineNumber": 536,
      "methodName": "run"
    },
    {
      "className": "slick.jdbc.JdbcActionComponent$SimpleJdbcProfileAction",
      "fileName": "JdbcActionComponent.scala",
      "lineNumber": 28,
      "methodName": "run"
    },
    {
      "className": "slick.jdbc.JdbcActionComponent$SimpleJdbcProfileAction",
      "fileName": "JdbcActionComponent.scala",
      "lineNumber": 25,
      "methodName": "run"
    },
    {
      "className": "slick.dbio.DBIOAction$$anon$1",
      "fileName": "DBIOAction.scala",
      "lineNumber": 186,
      "methodName": "$anonfun$run$1"
    },
    {
      "className": "scala.collection.Iterator",
      "fileName": "Iterator.scala",
      "lineNumber": 943,
      "methodName": "foreach"
    },
    {
      "className": "scala.collection.Iterator",
      "fileName": "Iterator.scala",
      "lineNumber": 943,
      "methodName": "foreach$"
    },
    {
      "className": "scala.collection.AbstractIterator",
      "fileName": "Iterator.scala",
      "lineNumber": 1431,
      "methodName": "foreach"
    },
    {
      "className": "scala.collection.IterableLike",
      "fileName": "IterableLike.scala",
      "lineNumber": 74,
      "methodName": "foreach"
    },
    {
      "className": "scala.collection.IterableLike",
      "fileName": "IterableLike.scala",
      "lineNumber": 73,
      "methodName": "foreach$"
    },
    {
      "className": "scala.collection.AbstractIterable",
      "fileName": "Iterable.scala",
      "lineNumber": 56,
      "methodName": "foreach"
    },
    {
      "className": "slick.dbio.DBIOAction$$anon$1",
      "fileName": "DBIOAction.scala",
      "lineNumber": 186,
      "methodName": "run"
    },
    {
      "className": "slick.dbio.DBIOAction$$anon$1",
      "fileName": "DBIOAction.scala",
      "lineNumber": 183,
      "methodName": "run"
    },
    {
      "className": "slick.basic.BasicBackend$DatabaseDef$$anon$3",
      "fileName": "BasicBackend.scala",
      "lineNumber": 276,
      "methodName": "liftedTree1$1"
    },
    {
      "className": "slick.basic.BasicBackend$DatabaseDef$$anon$3",
      "fileName": "BasicBackend.scala",
      "lineNumber": 276,
      "methodName": "run"
    },
    {
      "className": "java.util.concurrent.ThreadPoolExecutor",
      "fileName": null,
      "lineNumber": -1,
      "methodName": "runWorker"
    },
    {
      "className": "java.util.concurrent.ThreadPoolExecutor$Worker",
      "fileName": null,
      "lineNumber": -1,
      "methodName": "run"
    },
    {
      "className": "java.lang.Thread",
      "fileName": null,
      "lineNumber": -1,
      "methodName": "run"
    }
  ]
}

Comments

4 comments

  • Comment author
    Samantha (she/her)

    Hi Brendan Reardon,

     

    Thanks for writing in. This is a known issue that our engineers are currently investigating and working on to resolve. The banner in Terra did address this issue and we have a service incident article that you can follow for more information and updates from the team: Service Incident - April 29, 2021 (Lock wait timeout exceeded).

    Please let me know if you have any questions.

     

    Best,

    Samantha

    0
  • Comment author
    Brendan Reardon
    • Edited

    Oh great! Thank you, Samantha! I appreciate that link, I didn't know that this page existed and instead I was looking under known issues and general discussion. 

    0
  • Comment author
    Samantha (she/her)

    No problem! You can follow the Service Notifications page to receive email updates whenever a new article is posted.

    Best,

    Samantha

    0
  • Comment author
    Samantha (she/her)

    Hi Brendan Reardon,

     

    Our engineers released a fix for the lock wait timeout errors over the weekend that we believe addressed the root cause of the issue. Please let us know if you still receive any errors while updating your workspace dashboard.

     

    Best,

    Samantha

    0

Please sign in to leave a comment.