[jira] [Updated] (ARROW-13152) Plasma server hangs on Get requests containing duplicate object IDs

2021-09-28 Thread Joris Van den Bossche (Jira)


 [ 
https://issues.apache.org/jira/browse/ARROW-13152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joris Van den Bossche updated ARROW-13152:
--
Component/s: C++ - Plasma

> 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++, C++ - Plasma
>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)


[jira] [Updated] (ARROW-13152) Plasma server hangs on Get requests containing duplicate object IDs

2021-09-15 Thread Bruce Martin (Jira)


 [ 
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)