View Issue Details

IDProjectCategoryView StatusLast Update
0004479Talermechant backendpublic2016-05-02 02:35
ReporterFlorian Dold Assigned ToChristian Grothoff  
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Product Version0.0 
Target Version0.0Fixed in Version0.0 
Summary0004479: curl context should handle re-scheduling
DescriptionWe moved the curl context from Taler/merchant to GNUnet. I think currently this abstraction is very easy to use incorrectly, leading to hanging services.

This is not some abstract concern, but has lead to bugs in corner cases (that only occured when services were started in a certain order) before.

Right now we need to remember to re-schedule the select task for the GNUNET_CURL_perform every time we add an operation (such as TALER_EXCHANGE_connect).

Instead the context should handle re-scheduling.
TagsNo tags attached.

Activities

Christian Grothoff

2016-04-30 14:42

manager   ~0010581

The context cannot do this, as it was specifically written to be independent (!) of the event loop. You can use the context implementation with libev, libevent or GNUNET_SCHEDULER. Hence the app, which provides the integration with the scheduler, must do the rescheduling.

Florian Dold

2016-04-30 14:50

manager   ~0010583

I didn't say that the re-scheduling should be done with the GNUnet scheduler. We could pass an arbitrary callback to update whatever event mechanism we use with the new file handles.

The current API is too easy to use incorrectly.

It's not obvious that EXCHANGE_connect requires re-scheduling some select task.

Christian Grothoff

2016-04-30 14:53

manager   ~0010585

I see. So you want to force correct usage via an additional callback. Ok, that's fine.

Christian Grothoff

2016-05-02 02:23

manager   ~0010590

GNUnet API changed in SVN 37104.

Christian Grothoff

2016-05-02 02:23

manager   ~0010591

Merchant updated in fb7e96e..358182c

Christian Grothoff

2016-05-02 02:35

manager   ~0010592

Exchange fixed in d34c640..1c2be59

Issue History

Date Modified Username Field Change
2016-04-29 15:38 Florian Dold New Issue
2016-04-29 15:38 Florian Dold Status new => assigned
2016-04-29 15:38 Florian Dold Assigned To => Christian Grothoff
2016-04-30 14:42 Christian Grothoff Note Added: 0010581
2016-04-30 14:42 Christian Grothoff Severity minor => feature
2016-04-30 14:42 Christian Grothoff Status assigned => closed
2016-04-30 14:42 Christian Grothoff Resolution open => not fixable
2016-04-30 14:42 Christian Grothoff Product Version => 0.0
2016-04-30 14:42 Christian Grothoff Target Version => 0.0
2016-04-30 14:50 Florian Dold Note Added: 0010583
2016-04-30 14:50 Florian Dold Status closed => feedback
2016-04-30 14:50 Florian Dold Resolution not fixable => reopened
2016-04-30 14:53 Christian Grothoff Note Added: 0010585
2016-04-30 14:53 Christian Grothoff Assigned To Christian Grothoff =>
2016-04-30 14:53 Christian Grothoff Status feedback => confirmed
2016-04-30 14:53 Christian Grothoff Assigned To => Christian Grothoff
2016-04-30 14:53 Christian Grothoff Status confirmed => assigned
2016-04-30 14:53 Christian Grothoff Reproducibility have not tried => N/A
2016-04-30 14:53 Christian Grothoff Resolution reopened => open
2016-05-02 02:23 Christian Grothoff Note Added: 0010590
2016-05-02 02:23 Christian Grothoff Note Added: 0010591
2016-05-02 02:35 Christian Grothoff Note Added: 0010592
2016-05-02 02:35 Christian Grothoff Status assigned => resolved
2016-05-02 02:35 Christian Grothoff Fixed in Version => 0.0
2016-05-02 02:35 Christian Grothoff Resolution open => fixed
2016-05-02 02:35 Christian Grothoff Status resolved => closed