Fix fate debug message. Closes #2838
This might work, I remember that the cause was empty. Did you happen to test this to see what the message is for the parent exception?
No, I wanted to ask what you did to see the error...
This message is in the log, but without the stack trace
Run ConcurrentDeleteTableIT.testConcurrentDeleteTablesOps, then look in the MAC Manager out file
OK. It looks like the message is null too. Here is the full stacktrace:
2022-08-03T15:29:31,308 [fate.Fate] DEBUG: Failed to execute Repo, FATE[14ccaf316c860ecd]
org.apache.accumulo.core.clientImpl.AcceptableThriftTableOperationException: null
at org.apache.accumulo.manager.tableOps.Utils.reserveTable(Utils.java:96) ~[accumulo-manager-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
at org.apache.accumulo.manager.tableOps.delete.DeleteTable.isReady(DeleteTable.java:45) ~[accumulo-manager-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
at org.apache.accumulo.manager.tableOps.delete.DeleteTable.isReady(DeleteTable.java:30) ~[accumulo-manager-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
at org.apache.accumulo.manager.tableOps.TraceRepo.isReady(TraceRepo.java:47) ~[accumulo-manager-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
at org.apache.accumulo.fate.Fate$TransactionRunner.run(Fate.java:89) ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
at org.apache.accumulo.core.trace.TraceWrappedRunnable.run(TraceWrappedRunnable.java:52) ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
at org.apache.accumulo.core.trace.TraceWrappedRunnable.run(TraceWrappedRunnable.java:52) ~[accumulo-core-2.1.0-SNAPSHOT.jar:2.1.0-SNAPSHOT]
at java.lang.Thread.run(Thread.java:829) ~[?:?]
Here is the code throwing the exception:
throw new AcceptableThriftTableOperationException(tableId.canonical(), "", op,
TableOperationExceptionType.NOTFOUND, "Table does not exist");
So there is a lot of information that is being lost over the wire.
I think the issues is that there are no ThriftTableOperationException constructors that take a cause or message. The constructors on the Thrift objects don't call the super class constructors to set the variables. It looks like ThriftTableOperationException doesn't consider TException at all in toString, equals, and hashCode.
Looks like it's a known issue for about 7 years: https://issues.apache.org/jira/browse/THRIFT-3173
OK I added the table ID, name and description to the log statement. They could also be null but if the information is there it will get printed and that is better than nothing.
2022-08-04T11:03:23,829 [fate.Fate] DEBUG: Failed to execute Repo FATE[0b4d7e1ccdd8dd1c] for (1) Table does not exist
Reminder: please set the Project version(s) when merging PRs, so we can track the fix version for changes.
Reminder: please set the Project version(s) when merging PRs, so we can track the fix version for changes.
FYI the original ticket had the version.