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)