You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Does anyone meet the Self-suppression not permitted error recently, I guess it was caused by the IgnoreMeException() we threw in a try clause.
I first met this error when I update the MacOS version in my laptop, but do not update the Java version.
I fixed this error in my local repository by transforming the code like:
try (Statement s = con.createStatement()) {
...
} catch (SQLException e) {
throw new IgnoreMeException();
}
to
Statement s = null;
try {
s = con.createStatement();
...
} catch (SQLException e) {
throw new IgnoreMeException();
} finally {
if (s!=null) {
s.close();
}
}
But I think this is not the best solution and don't know the reason of this error. Does anyone have idea about this?
This is the entire log provided by @bajinsheng, he also met this error in an Ubuntu server recently.
--java.lang.IllegalArgumentException: Self-suppression not permitted
-- at java.base/java.lang.Throwable.addSuppressed(Throwable.java:1054)
-- at sqlancer.Main$DBMSExecutor.run(Main.java:412)
-- at sqlancer.Main$2.run(Main.java:582)
-- at sqlancer.Main$2.runThread(Main.java:564)
-- at sqlancer.Main$2.run(Main.java:555)
-- at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
-- at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
-- at java.base/java.lang.Thread.run(Thread.java:829)
--Caused by: sqlancer.IgnoreMeException
-- at sqlancer.tidb.TiDBExpressionGenerator.generateExpression(TiDBExpressionGenerator.java:67)
-- at sqlancer.tidb.TiDBExpressionGenerator.generateExpression(TiDBExpressionGenerator.java:105)
-- at sqlancer.tidb.TiDBExpressionGenerator.generateExpression(TiDBExpressionGenerator.java:1)
-- at sqlancer.common.gen.UntypedExpressionGenerator.generateExpression(UntypedExpressionGenerator.java:14)
-- at sqlancer.tidb.gen.TiDBTableGenerator.createNewTable(TiDBTableGenerator.java:75)
-- at sqlancer.tidb.gen.TiDBTableGenerator.getQuery(TiDBTableGenerator.java:55)
-- at sqlancer.tidb.TiDBProvider.generateDatabase(TiDBProvider.java:114)
-- at sqlancer.tidb.TiDBProvider.generateDatabase(TiDBProvider.java:1)
-- at sqlancer.ProviderAdapter.generateAndTestDatabase(ProviderAdapter.java:52)
-- at sqlancer.Main$DBMSExecutor.run(Main.java:387)
-- ... 6 more
--
-- Time: 2023/06/16 10:05:41
-- Database: database0
-- Database version: 8.0.11-TiDB-v7.2.0-alpha-440-g8633c8ce99
-- seed value: 1686881141425
USE test;
DROP DATABASE IF EXISTS database0;
CREATE DATABASE database0;
USE database0;
The text was updated successfully, but these errors were encountered:
Not only TiDB, but also SQLite, DuckDB, CockroachDB, and MySQL. I just tried these DBMSs and all of them triggered this bug, so I guess this is not the issue of TiDB.
It's a Java restriction that does not allow throw another exception in catch or final blocks. The rule was introduced in Java7, but we haven't not figured out why the code worked previously.
Note that we only observed this in our local different environments respectively, not in CI. Not sure it is due to some confugrations of Java.
Does anyone meet the
Self-suppression not permitted
error recently, I guess it was caused by theIgnoreMeException()
we threw in atry
clause.I first met this error when I update the MacOS version in my laptop, but do not update the Java version.
I fixed this error in my local repository by transforming the code like:
to
But I think this is not the best solution and don't know the reason of this error. Does anyone have idea about this?
This is the entire log provided by @bajinsheng, he also met this error in an Ubuntu server recently.
The text was updated successfully, but these errors were encountered: