apple / apple/foundationdb

Not all binding implementations follow the requirements of fdb_stop_network

Open
#3,015 6 comments 0 reactions 2 assignees Claimed by @ajbeamon View on GitHub
Dominant language
C++
Stars
16.7k
Forks
1.6k
Avg merge
1d 20h
Merged PRs (30d)
126

Description

In the current C API, it is required that `fdb_stop_network` be called and the network thread allowed to complete before terminating the program. It seems we aren't doing this in all of our bindings, and absent a change to this requirement as proposed in #2978, this can lead to undefined behavior.

It looks like the current state of our in-tree bindings are that:

* Ruby and Python follow the requirements of the API (stop then join)
* Java stops the network thread but doesn't join it
* Go doesn't stop the network thread automatically or provide any API to do it manually as far as I can tell

If #2978 is done, then this won't be an issue. However, I suspect that solving this problem is easier than the other one, so it may be worth updating the two bindings in the meantime.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.