[foreign-memaccess+abi] RFR: 8267989: Exceptions thrown during upcalls should be handled
Jorn Vernee
jvernee at openjdk.java.net
Mon May 31 17:48:05 UTC 2021
On Mon, 31 May 2021 17:39:41 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
> Hi,
>
> This patch regularizes exception handling for exceptions thrown during upcalls. Exceptions thrown during upcalls are now always handled by printing out the stack trace and then calling `System::exit` (see the JBS issue for some motivation).
>
> I've added some documentation for the exception handling to `CLinker::upcallStub`, as well as a new public `int` constant in `CLinker` which is the error code that is passed to `System::exit`. The returned error code can also be configured by a system property, which for now is mostly useful for testing purposes to make sure we don't get a consistent false positive.
>
> Thanks,
> Jorn
src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/CLinker.java line 241:
> 239: * Any exceptions that occur during an upcall should be handled during the upcall. The target method handle
> 240: * should not throw any exceptions. If the target method handle does throw an exception, it will be handle by
> 241: * calling {@link System#exit System.exit(ERR_UNCAUGHT_EXCEPTION)}. (See {@link #ERR_UNCAUGHT_EXCEPTION})
There might be better wording for this, esp. the first sentence. Any suggestions?
test/jdk/java/foreign/TestUpcall.java line 31:
> 29: * @build NativeTestHelper CallGeneratorHelper TestUpcall
> 30: *
> 31: * @run testng/othervm/timeout=720
I've increased the timeout of TestUpcall here as well, as I was seeing timeouts pretty frequently
-------------
PR: https://git.openjdk.java.net/panama-foreign/pull/543
More information about the panama-dev
mailing list