accumulo icon indicating copy to clipboard operation
accumulo copied to clipboard

Fix fate debug message. Closes #2838

Open milleruntime opened this issue 3 years ago • 5 comments

milleruntime avatar Aug 03 '22 15:08 milleruntime

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...

milleruntime avatar Aug 03 '22 17:08 milleruntime

This message is in the log, but without the stack trace

dlmarion avatar Aug 03 '22 17:08 dlmarion

Run ConcurrentDeleteTableIT.testConcurrentDeleteTablesOps, then look in the MAC Manager out file

dlmarion avatar Aug 03 '22 17:08 dlmarion

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.

milleruntime avatar Aug 03 '22 19:08 milleruntime

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

dlmarion avatar Aug 04 '22 12:08 dlmarion

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

milleruntime avatar Aug 04 '22 15:08 milleruntime

Reminder: please set the Project version(s) when merging PRs, so we can track the fix version for changes.

ctubbsii avatar Aug 05 '22 15:08 ctubbsii

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.

milleruntime avatar Aug 05 '22 15:08 milleruntime