Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1377282

Summary: libgfapi-python functional test fails on CentOS CI against glusterfs nightly builds
Product: [Community] GlusterFS Reporter: Prashanth Pai <ppai>
Component: libgfapi-pythonAssignee: Prashanth Pai <ppai>
Status: CLOSED UPSTREAM QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: mainlineCC: bugs, ndevos, nigelb
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-01-16 09:54:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Prashanth Pai 2016-09-19 11:28:58 UTC
Description of problem:
libgfapi-python functional test fails on CentOS CI against glusterfs nightly builds. On one lucky day (16-Sep-2016) it passed.
https://ci.centos.org/view/Gluster/job/gluster_libgfapi-python/


Version-Release number of selected component (if applicable):
Glusterfs nightly builds


How reproducible:
Only on CentOS CI provisioned machines.
Not reproducible on my local centos7 VMs. 


Steps to Reproduce:
Run run-tests.sh script
https://github.com/gluster/glusterfs-patch-acceptance-tests/blob/master/centos-ci/libgfapi-python/run-test.sh


Actual results:
The tests exist abruptly with segmentation fault. This is almost consistently encountered when running "test_mount_err" functional test. 


Expected results:
All functional tests should pass without any segmentation fault.


Additional info:
The test "test_mount_err" itself is pretty straightforward:
test/functional/libgfapi-python-tests.py

    def test_mount_err(self):
        # Volume does not exist
        fake_volname = str(uuid4().hex)[:10]
        vol = Volume(HOST, fake_volname)
        self.assertRaises(LibgfapiException, vol.mount)
        self.assertFalse(vol.mounted)

        # Invalid host - glfs_set_volfile_server will fail
        fake_hostname = str(uuid4().hex)[:10]
        vol = Volume(fake_hostname, VOLNAME)
        self.assertRaises(LibgfapiException, vol.mount)
        self.assertFalse(vol.mounted)

Comment 1 Nigel Babu 2016-09-23 06:30:39 UTC
It's only the fake_volume bit that actually fails. If I comment that bit out, it passes correctly. It's worth checking if gluster fails with a fake volume. I've submitted a review request to skip this test so that the tests are green.

Comment 2 Prashanth Pai 2017-01-16 05:43:44 UTC
The builds are still failing for reasons other than what was originally reported here. The original issue was likely (as Niels had earlier pointed out) a side-effect of turning on io-threads in client by default. That was fixed in http://review.gluster.org/#/c/15620/

This BZ can be closed once the infra issue is addressed. Here's why the tests aren't being run now:

03:37:22 Cloning into 'libgfapi-python'...
03:42:22 fatal: unable to access 'https://review.gluster.org/libgfapi-python/': Operation timed out after 300021 milliseconds with 0 out of 0 bytes received
03:42:22 Build step 'Execute shell' marked build as failure
03:42:22 Performing Post build task...

Comment 3 Niels de Vos 2017-01-16 09:54:04 UTC
Reported this as a bug in the CentOS CI infrastructure. Please follow https://bugs.centos.org/view.php?id=12662 for progress.