You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Bruce Martin (Jira)" <ji...@apache.org> on 2021/09/15 23:13:00 UTC
[jira] [Updated] (ARROW-13152) Plasma server hangs on Get requests
containing duplicate object IDs
[ https://issues.apache.org/jira/browse/ARROW-13152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bruce Martin updated ARROW-13152:
---------------------------------
Description:
If a plasma client issues a Get request containing duplicate object IDs, and a timeout of -1, the server will hang.
The logic at the end of `PlasmaStore::ProcessGetRequest()` only returns a response when the number of satisfied requests match the number of *unique* objects to wait for. The former is calculated using the number of requested object IDs, not the number of unique requested object IDs.
To reproduce:
{code:java}
# start the plasma store first
from pyarrow import plasma
client = plasma.connect("/tmp/plasma")
oid = client.put("hello, world")
print(client.get([oid, oid], -1))print("done.")
{code}
was:
If a plasma client issues a Get request containing duplicate object IDs, and a timeout of -1, the server will hang.
The logic at the end of `PlasmaStore::ProcessGetRequest()` only returns a response when the number of satisfied requests match the number of *unique* objects to wait for. The former is calculated using the number of requested object IDs, not the number of unique requested object IDs.
To reproduce:
{code:java}
# start the plasma store first
from pyarrow import plasma
client = plasma.connect("/tmp/plasma")# oid = plasma.ObjectID(b'0'*20)oid = client.put("hello, world")
print(client.get([oid, oid], -1))print("done.")
{code}
> Plasma server hangs on Get requests containing duplicate object IDs
> -------------------------------------------------------------------
>
> Key: ARROW-13152
> URL: https://issues.apache.org/jira/browse/ARROW-13152
> Project: Apache Arrow
> Issue Type: Bug
> Components: C++
> Affects Versions: 4.0.1
> Environment: tested on Linux/Python 3.8/pyarrow 4.0.1
> Reporter: Bruce Martin
> Priority: Major
>
> If a plasma client issues a Get request containing duplicate object IDs, and a timeout of -1, the server will hang.
> The logic at the end of `PlasmaStore::ProcessGetRequest()` only returns a response when the number of satisfied requests match the number of *unique* objects to wait for. The former is calculated using the number of requested object IDs, not the number of unique requested object IDs.
> To reproduce:
>
> {code:java}
> # start the plasma store first
> from pyarrow import plasma
> client = plasma.connect("/tmp/plasma")
> oid = client.put("hello, world")
> print(client.get([oid, oid], -1))print("done.")
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)