yuqi1129 commented on PR #12987:
URL: https://github.com/apache/gravitino/pull/12987#issuecomment-5594338800

   The Backend Integration Test failure was mine, and it had a clear signature: 
`CatalogHive{2,3}IT` and `CatalogHive3ITWithCatalog`/`CatalogHiveS3IT` all 
failed on the same two cases, `testAlterCatalogProperties` and 
`testListTables`, with
   
   ```
   Failed to operate object [...] operation [DROP] under [...],
   reason [Thread was interrupted while waiting for lock]
   ```
   
   Cause: the last commit matched a thread against the ClassLoader by the 
classes on its **stack**. A request thread serving an operation on the catalog 
being altered has the catalog's frames on its stack, so cleanup interrupted it 
mid-request. Altering a catalog releases and re-acquires the pooled 
ClassLoader, which is why exactly those two tests caught it.
   
   Fixed in 2cc3a6b: ownership is read from the thread itself again, its own 
class, its runnable or its context ClassLoader, never from what it happens to 
be executing. I re-ran the leak measurements after the revert and 
`jdbc-postgresql`, `jdbc-mysql`, `hive` and `fileset` on s3a all still release 
their ClassLoader, so the stack rule was contributing nothing that is verified: 
it was written for the AWS idle-connection reaper and never fixed that either, 
which is #13016 and needs the Glue catalog to close its client.
   
   Added `testRunningWithClassLoaderIgnoresAThreadOnlyExecutingTheLoadersCode` 
so this cannot come back silently.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to