Bug 810893 - reporting results and return2beaker doesn't work over Ipv6 (RHEL7 criteria)
reporting results and return2beaker doesn't work over Ipv6 (RHEL7 criteria)
Status: CLOSED CURRENTRELEASE
Product: Beaker
Classification: Community
Component: beah (Show other bugs)
0.8
Unspecified Unspecified
high Severity high (vote)
: 0.15.3
: ---
Assigned To: Amit Saha
Ales Zelinka
Misc
: FutureFeature, TestBlocker
Depends On:
Blocks: 593663 872571 986153
  Show dependency treegraph
 
Reported: 2012-04-09 10:59 EDT by Ales Zelinka
Modified: 2015-07-26 18:14 EDT (History)
17 users (show)

See Also:
Fixed In Version:
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-02-03 00:00:03 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Ales Zelinka 2012-04-09 10:59:40 EDT
Description of problem:
I can't return reserved machine if ipv4 address isn't up.


Steps to Reproduce:
1. reserve machine
2. remove ipv4 address
3. return2beaker
  
Actual results:
Unable to connect to server, sleeping 5 seconds...
Unable to connect to server, sleeping 5 seconds...
Unable to connect to server, sleeping 5 seconds...
Unable to connect to server, sleeping 5 seconds...
Unable to connect to server, sleeping 5 seconds...
Unable to connect to server, sleeping 5 seconds...



Expected results:
machines returns to beaker just fine

Additional info:
I need to make sure IPv6 codepaths work in various components. Because beaker doesn't support direct provisioning, I want to provision machines as usual (with dualstack),cripple IPv4 and then run the actual tests. All automated.
Comment 1 Ales Zelinka 2012-04-09 17:13:40 EDT
And reporting results back to beaker doesn't work either. If I cut ipv4 the job gets eventually killed by external watchdog.
Comment 2 Bill Peck 2012-04-12 10:24:53 EDT
I can see one major issue right away in beah where we reference 127.0.0.1 instead of localhost.  

-        self.env['RESULT_SERVER'] = "%s:%s%s" % ("127.0.0.1", port, "")
+        self.env['RESULT_SERVER'] = "%s:%s%s" % ("localhost", port, "")


Testing this now.
Comment 3 Bill Peck 2012-04-12 13:41:11 EDT
Can you give me the steps you used to remove ipv4?
Comment 5 Bill Peck 2012-04-12 14:17:56 EDT
on my system it shows:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Which seems right to me.  I can't imagine how we would do it otherwise.
Comment 6 Ales Zelinka 2012-04-19 09:57:56 EDT
(In reply to comment #2)
> Testing this now.

Bill, how did the test go? Do you need me to provide additional info or help with testing? Just let me know.

Thanks
Comment 9 Bill Peck 2012-09-12 15:46:12 EDT
I was not able to make any more progress on this.  I started doing additional research on twisted.reactor which is used to receive the xmlrpc calls from return2rhts and all the rhts coomands and it doesn't support IPV6.  See the following:

http://twistedmatrix.com/trac/ticket/3014

http://stackoverflow.com/questions/6217312/is-it-possible-to-use-twisted-with-ipv6

The only option would be to use a different harness than beah.
Comment 10 Nick Coghlan 2012-10-17 00:38:49 EDT
Bulk reassignment of issues as Bill has moved to another team.
Comment 11 Min Shin 2012-11-21 22:41:26 EST
ncoghlan: we still have the problem of Twisted's IPv6 support be somewhat sketchy, and the beah test harness relies on Twisted, so we can't promise too much on this front. Twisted isn't a dependency we'll upgrade lightly, and even the latest version doesn't have full IPv6 support.

Bumping out of 0.11.
Comment 12 Nick Coghlan 2013-06-13 03:38:43 EDT
Note that the autotest team are working on integration with Beaker's stable harness API, which may provide an alternative avenue for pure IPv6 testing:
http://beaker-project.org/dev/tech-roadmap.html#autotest-support
Comment 13 Ondrej Hudlicky 2013-09-12 11:07:02 EDT
BaseOS QE Team is still partially blocked in IPv6 userspace testing in Beaker due to this bug. Could you recommend some solution until the issues is fully fixed? 
Workaround described by Jan in comment 8 is not reliable.
Comment 14 Nick Coghlan 2013-09-13 01:13:12 EDT
Unfortunately, the old version of Twisted in RHEL6 is still a problem when it comes to getting beah to handle this, and we're not keen to further increase beah's footprint on the system by installing a parallel version.

Bill, is the autotest alternative harness mature enough to potentially be used for IPv6 only testing? (or would Don be in a better position to answer that?)
Comment 15 Don Zickus 2013-09-18 11:35:59 EDT
Hi Nick,

Unfortunately, no.  The autotest work I have done still needs to have its tires kicked and various small pieces that fall out, cleaned up. :-(

Cheers,
Don
Comment 16 Ondrej Hudlicky 2013-09-23 13:04:17 EDT
Is there some alternative for RHEL7? That would be sufficient I believe.
Comment 18 Nick Coghlan 2013-09-24 01:27:29 EDT
Something that may be worth trying is creating an "opt-beah" alternative harness that installs and runs a Python virtualenv from /opt (so still using the system Python, but not any other system packages).

Then we can experiment with getting IPv6 support working there, without risking the stability of mainline beah in the meantime.
Comment 19 Nick Coghlan 2013-09-29 20:47:22 EDT
I suggest we go ahead with the idea of creating a "beah-ipv6" harness to see if we can get this working. While this will happen in the 0.16 timeframe, it should be made available for testing prior to that (since a new test harness can be published without upgrading Beaker)

Suggested approach is to create a "beah-ipv6" RPM that installs an /opt/beah-ipv6 directory containing the latest Twisted release and a potentially modified version of beah (and possibly upgraded versions of other dependencies).
Comment 22 Nick Coghlan 2013-11-12 00:44:50 EST
Just a note that while we're working on further decoupling beah's release cycle to make it easier to work on a beah-ipv6 variant, Don and Bill are making progress on using autotest and restraint to run Beaker tasks. I'm not sure about their multihost testing support, though.

Restraint (aka "simple harness"): https://github.com/p3ck/restraint

Current state of the autotest integration: https://lists.fedorahosted.org/pipermail/beaker-devel/2013-November/000843.html
Comment 24 Ales Zelinka 2013-11-26 06:19:18 EST
(In reply to Nick Coghlan from comment #22)
> Restraint (aka "simple harness"): https://github.com/p3ck/restraint

Can I use it already to test for compatibility with our existing tests? How?
Comment 25 Bill Peck 2013-11-26 08:05:38 EST
(In reply to Ales Zelinka from comment #24)
> (In reply to Nick Coghlan from comment #22)
> > Restraint (aka "simple harness"): https://github.com/p3ck/restraint
> 
> Can I use it already to test for compatibility with our existing tests? How?

Soon, very very soon.  I'll send you an email in a few days with a pointer.
Comment 26 Ben Levenson 2013-12-06 11:00:58 EST
(In reply to Bill Peck from comment #25)
> > Can I use it already to test for compatibility with our existing tests? How?
> 
> Soon, very very soon.  I'll send you an email in a few days with a pointer.

Any updates Bill?
Comment 27 Bill Peck 2013-12-06 11:06:46 EST
Hi Ben,

The Thanksgiving holiday slowed me down.  I'll post what I have at the end of Today.  Right now I can run most of KernelTier1 testing.  Here is what doesn't work:

- It doesn't parse guest recipes right now.
- It doesn't check for avc denials.

The avc denials I'm planning to solve with a plugin architecture.  This is what I'm working on right now.

I've also broken some of our unit tests when moving things from for(;;) loops to event based model.

At a minimum I'll point to the pre-compiled binaries I have and the git code.
Comment 28 Amit Saha 2014-01-16 01:46:19 EST
Patch on Gerrit: http://gerrit.beaker-project.org/#/c/2694/1
Comment 29 Nick Coghlan 2014-01-21 04:06:15 EST
Just to make the scope of this bug explicit:

Mandatory: reporting results and return2beaker must work for single host testing with IPv4 support on the test system disabled

Mandatory: multihost IPv4 only and IPv4/IPv6 dual stack testing using hostnames (resolving to IPv4 addresses) still works

Desirable: multihost IPv6 only and IPv4/IPv6 dual stack testing using host IPv6 addresses also works

However, if we get to a point where single host testing is working on IPv6 only systems, but multihost testing is not, then we will still close this bug and release a new version of the default harness, and clone it to a new bug to track getting the IPv6 based multihost testing working reliably.

(We may still decide to do the latter regardless, just to track the *testing* for that separately, since it's significantly more complicated than the singlehost testing)
Comment 37 Nick Coghlan 2014-02-03 00:00:03 EST
This change was included in the beah 0.7.0-1 release and can now be deployed via a harness repo update.

http://beah.readthedocs.org/en/latest/releases.html#beah-0-7-0

Note You need to log in before you can comment on or make changes to this bug.