Bug 1331599

Summary: Paged results search returns the blank list of entries
Product: Red Hat Enterprise Linux 6 Reporter: Noriko Hosoi <nhosoi>
Component: 389-ds-baseAssignee: Noriko Hosoi <nhosoi>
Status: CLOSED ERRATA QA Contact: Viktor Ashirov <vashirov>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 6.0CC: ekeck, mkolaja, nkinder, rmeggins, spichugi
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 389-ds-base-1.2.11.15-82.el6 Doc Type: Bug Fix
Doc Text:
Cause: When a simple paged results slot in a connection is discarded due to an error, e.g., SIZELIMIT_EXCEEDED, the slot was not properly cleaned up. Consequence: If the slot was reused, the leftover flag confused the code and ended up returning the 0 search result. Fix: The simple paged results slot is cleaned up properly. Result: If the simple paged result slot is reused, the correct search result is returned.
Story Points: ---
Clone Of:
: 1335108 (view as bug list) Environment:
Last Closed: 2017-03-21 10:21:29 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1335108    

Description Noriko Hosoi 2016-04-28 23:52:30 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/389/ticket/48808

Description of problem:
After series of actions, paged result search that should returns list of entries returns blank list of entries. It is hardly reproducible manually, but it is easy to reproduce with python automation.

Version-Release number:
389-ds-base-1.3.4.0-29.el7_2.x86_64

How reproducible:
Always
                 
Step to reproduce:                                                                                                                                                                                                                
1. Create DS standalone instance
2. Create user for search operations
3. Run test for checking support of multiple paging controls on a single connection - Trac 260
4. Run test for abandon search request with setting page_size = 0
5. Run test for 'nsPagedSizeLimit = 5' and 'nsslapd-pagedsizelimit = 15', its override feature. Search with page size 10 - expect to fail.                                                                                                                                                                               
6. Run test for 'nsPagedSizeLimit = 15' and 'nsslapd-pagedsizelimit = 5', its override feature. Search with page size 10 - expect to pass.                                                                                                                                                                               

Actual results:                                                                                                                                                                                                                                            
On the last step search with paged results returns the blank list of entries.                                                                                                                                                                                                             

Expected results:
Search with 'nsPagedSizeLimit = 15' and 'nsslapd-pagedsizelimit = 5', should return all 10 requested entries.

Additional information:                                                                                                                                                                                                                                              
- When I try to do it manually - everything is okay.                                                                                                                                                                                            
- When I try to move last test case to another place (for example at the beginning), it is PASSed.                                                                                                                                                                                                                      
- When I remove only "Test support multiple paging controls on a single connection" - last and other tests PASS                                                                                                                                                                                                        
- When I remove only "Abandon search request with setting page_size = 0" - last and other tests PASS  
- Also if switch the order of last two test cases, everything will PASS.                                                                                                                                                                                                                
                                                                                                                                                                                                                                               
I do tear down with deleting users and setting attributes to the default values after each test case.

Comment 7 Simon Pichugin 2016-11-25 13:14:05 UTC
============================= test session starts =============================
platform linux2 -- Python 2.7.8, pytest-3.0.4, py-1.4.31, pluggy-0.4.0 -- /opt/rh/python27/root/usr/bin/python
cachedir: .cache
DS build: 1.2.11.15 B2016.312.1950
389-ds-base: 1.2.11.15-85.el6
nss: 3.27.1-7.el6
nspr: 4.13.1-1.el6
openldap: 2.4.40-14.el6
svrcore: 4.0.4-5.1.el6

rootdir: /mnt/tests/rhds/tests/upstream/ds, inifile:
plugins: html-1.11.1, cov-2.4.0, beakerlib-0.6
collected 1 items

dirsrvtests/tests/tickets/ticket48808_test.py::test_ticket48808 PASSED

========================== 1 passed in 34.66 seconds ==========================

Marking as verified.

Comment 9 errata-xmlrpc 2017-03-21 10:21:29 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2017-0667.html