View Issue Details

IDProjectCategoryView StatusLast Update
0004479Talermerchant backendpublic2016-05-02 00:35
ReporterFlorian Dold Assigned ToChristian Grothoff Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
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.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Christian Grothoff

2016-04-30 12: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 12: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 12: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 00:23

manager   ~0010590

GNUnet API changed in SVN 37104.

Christian Grothoff

2016-05-02 00:23

manager   ~0010591

Merchant updated in fb7e96e..358182c

Christian Grothoff

2016-05-02 00:35

manager   ~0010592

Exchange fixed in d34c640..1c2be59

Issue History

Date ModifiedUsernameFieldChange
2016-04-29 13:38Florian DoldNew Issue
2016-04-29 13:38Florian DoldStatusnew => assigned
2016-04-29 13:38Florian DoldAssigned To => Christian Grothoff
2016-04-30 12:42Christian GrothoffNote Added: 0010581
2016-04-30 12:42Christian GrothoffSeverityminor => feature
2016-04-30 12:42Christian GrothoffStatusassigned => closed
2016-04-30 12:42Christian GrothoffResolutionopen => not fixable
2016-04-30 12:42Christian GrothoffProduct Version => 0.0
2016-04-30 12:42Christian GrothoffTarget Version => 0.0
2016-04-30 12:50Florian DoldNote Added: 0010583
2016-04-30 12:50Florian DoldStatusclosed => feedback
2016-04-30 12:50Florian DoldResolutionnot fixable => reopened
2016-04-30 12:53Christian GrothoffNote Added: 0010585
2016-04-30 12:53Christian GrothoffAssigned ToChristian Grothoff =>
2016-04-30 12:53Christian GrothoffStatusfeedback => implementing
2016-04-30 12:53Christian GrothoffAssigned To => Christian Grothoff
2016-04-30 12:53Christian GrothoffStatusimplementing => assigned
2016-04-30 12:53Christian GrothoffReproducibilityhave not tried => N/A
2016-04-30 12:53Christian GrothoffResolutionreopened => open
2016-05-02 00:23Christian GrothoffNote Added: 0010590
2016-05-02 00:23Christian GrothoffNote Added: 0010591
2016-05-02 00:35Christian GrothoffNote Added: 0010592
2016-05-02 00:35Christian GrothoffStatusassigned => informing
2016-05-02 00:35Christian GrothoffFixed in Version => 0.0
2016-05-02 00:35Christian GrothoffResolutionopen => fixed
2016-05-02 00:35Christian GrothoffStatusinforming => closed
2025-03-22 13:09Christian GrothoffCategorymechant backend => merchant backend