Issue 8725 - Additional support for asynchronous operation
Summary: Additional support for asynchronous operation
Status: VERIFIED FIXED
Alias: None
Product: OpenLDAP
Classification: Unclassified
Component: slapd (show other issues)
Version: 2.5.4
Hardware: All All
: --- normal
Target Milestone: 2.5.0
Assignee: OpenLDAP project
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-09-07 17:01 UTC by Howard Chu
Modified: 2020-10-14 21:12 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Howard Chu 2017-09-07 17:01:35 UTC
Full_Name: Howard Chu
Version: 2.5
OS: 
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (83.136.45.114)
Submitted by: hyc


Some small frontend tweaks to better support back-asyncmeta
Comment 1 OpenLDAP project 2017-09-07 17:10:45 UTC
in master
Comment 2 Howard Chu 2017-09-07 17:10:45 UTC
changed notes
changed state Open to Test
moved from Incoming to Software Enhancements
Comment 3 Nadezhda Ivanova 2018-04-25 12:47:53 UTC
As part of asyncmeta development, the front-end was made aware if operations were executed by an async back-end and cleanup is to be performed by the backend. This patch adds the same exception of extended operations, which were skipped because asyncmeta did not handle them. 

ftp://ftp.openldap.org/incoming/nadezhda-ivanova-180425.patch 


Comment 4 Quanah Gibson-Mount 2020-08-26 21:48:44 UTC
This seems to be missing the following necessary change:

diff --git a/servers/slapd/extended.c b/servers/slapd/extended.c
index 2b55438..59624f7 100644
--- a/servers/slapd/extended.c
+++ b/servers/slapd/extended.c
@@ -176,6 +176,12 @@ do_extended(
    op->o_bd = frontendDB;
    rs->sr_err = frontendDB->be_extended( op, rs );

+        if ( rs->sr_err == SLAPD_ASYNCOP ){
+           /* skip cleanup */
+                Debug( LDAP_DEBUG_TRACE, "do_extended: skipping cleanup for ASYNCOP\n", 0, 0, 0 );
+                return rs->sr_err;
+        }
+
    /* clean up in case some overlay set them? */
    if ( !BER_BVISNULL( &op->o_req_ndn ) ) {
        if ( !BER_BVISNULL( &op->o_req_dn )
Comment 5 Quanah Gibson-Mount 2020-08-26 21:49:29 UTC
Note: Adjust debug statement there for head/RE25. ;)
Comment 6 Quanah Gibson-Mount 2020-08-26 21:56:51 UTC
Sigh, wrong commit in the message, but:

Commits: 
  • 8d312196 
by Quanah Gibson-Mount at 2020-08-26T21:55:39+00:00 
More for ITS#8845, skip cleanup on async op with extended operations