[OpenStack-Infra] ERROR gear.Server: Exception in poll loop

2017-05-24 Thread Wang Shilong
Hi Guys,

  I hit an error in My CI setup, somehow Gear could not call
Jenkins jobs. zuul could watch gerrit events fine.

And I tried this 'root@r52:~/gearman-plugin-client# python gear_client.py -s 
localhost --function=build:noop-check-communication'  it could work.

But i hit gear errors 
$ cat /var/log/zuul/gearman-server.log 
2017-05-24 20:22:13,043 ERROR gear.Server: Exception in poll loop:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/gear/__init__.py", line 2903, in 
_doPollLoop
self.log.exception("Exception in poll loop:")
  File "/usr/local/lib/python2.7/dist-packages/gear/__init__.py", line 2916, in 
_pollLoop
for fd, event in ret:
IOError: [Errno 4] Interrupted system call
2017-05-24 20:22:14,081 ERROR gear.Server: Exception in poll loop:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/gear/__init__.py", line 2903, in 
_doPollLoop
self.log.exception("Exception in poll loop:")
  File "/usr/local/lib/python2.7/dist-packages/gear/__init__.py", line 2916, in 
_pollLoop
for fd, event in ret:
IOError: [Errno 4] Interrupted system call

Zuul logs like following:
2017-05-24 11:42:41,857 ERROR gear.Client.unknown: Exception in poll loop:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/gear/__init__.py", line 830, in 
_doPollLoop
try:
  File "/usr/local/lib/python2.7/dist-packages/gear/__init__.py", line 856, in 
_pollLoop
len(self.active_connections))
error: (4, 'Interrupted system call')
2017-05-24 11:45:24,565 INFO zuul.Server: Starting scheduler
2017-05-24 11:45:53,960 INFO zuul.Scheduler: Registering foreign project: 
openstack/diskimage-builder
2017-05-24 11:45:54,417 INFO zuul.Scheduler: Registering foreign project: 
openstack/nova
2017-05-24 11:46:03,840 INFO zuul.Scheduler: Registering foreign project: 
openstack/openstack-helm
2017-05-24 11:46:10,344 INFO zuul.Scheduler: Registering foreign project: 
openstack/daisycloud-core
2017-05-24 11:46:45,066 INFO zuul.Scheduler: Registering foreign project: 
openstack/neutron-lib
2017-05-24 11:46:57,904 WARNING zuul.GerritEventConnector: Received 
unrecognized event type 'ref-replicated' from Gerrit.Can 
not get account information.
2017-05-24 11:46:58,045 WARNING zuul.GerritEventConnector: Received 
unrecognized event type 'ref-replicated' from Gerrit.Can 
not get account information.
2017-05-24 11:46:58,280 WARNING zuul.GerritEventConnector: Received 
unrecognized event type 'ref-replicated' from Gerrit.Can 
not get account information.
2017-05-24 11:46:58,422 WARNING zuul.GerritEventConnector: Received 
unrecognized event type 'ref-replicated' from Gerrit.Can 
not get account information.
2017-05-24 11:46:58,423 WARNING zuul.GerritEventConnector: Received 
unrecognized event type 'ref-replicated' from Gerrit.Can 
not get account information.


Any help is much appreciated!

Thanks,
Shilong
___
OpenStack-Infra mailing list
OpenStack-Infra@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra

[OpenStack-Infra] [infra] lists.openstack.org maintenance Friday, May 26 20:00-21:00 UTC

2017-05-24 Thread Jeremy Stanley
The Mailman listserv on lists.openstack.org will be offline for an
archive-related maintenance for up to an hour starting at 20:00 UTC
May 26, this coming Friday. This activity is scheduled for a
relatively low-volume period across our lists; during this time,
most messages bound for the server will queue at the senders' MTAs
until the server is back in service and so should not result in any
obvious disruption.

Apologies for cross-posting so widely, but we wanted to make sure
copies of this announcement went to most of our higher-traffic
lists.
-- 
Jeremy Stanley


signature.asc
Description: Digital signature
___
OpenStack-Infra mailing list
OpenStack-Infra@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra

[OpenStack-Infra] Zuul v3: proposed new Depends-On syntax

2017-05-24 Thread James E. Blair
Hi,

As part of Zuul v3, we're adding support for GitHub (and later possibly
other systems).  We want these systems to have access to the full power
of cross-project-dependencies in the same way as Gerrit.  However, the
current syntax for the Depends-On footer is currently the
Gerrit-specific change-id.

We chose this in an attempt to be future-compatible with some proposed
changes to Gerrit itself to support cross-project dependencies.  Since
then, Gerrit has gone in a different direction on this subject, so I no
longer think we should weigh that very heavily.

While Gerrit change ids can be used to identify one or more changes
within a Gerrit installation, there is no comparable identifier on
GitHub, as pull request numbers are unique only within a project.

The natural way to identify a GitHub pull request is with its URL.

This can be used to identify Gerrit changes as well, and will likely be
well supported by other systems.  Therefore, I propose we support URLs
as the content of the Depends-On footers for all systems.  E.g.:

  Depends-On: https://review.openstack.org/12345
  Depends-On: https://github.com/ansible/ansible/pull/12345

Similarly to the Gerrit change IDs, these identifiers are easily
navigable within Gerrit (and Gertty), so that reviewers can traverse the
dependency chain easily.

One substantial aspect of this change is that it is more specific about
projects and branches.  A single Gerrit change ID can refer to more than
one branch, and even more than one project.  Zuul interprets this as
"this change depends on *all* of the changes that match".  Often times
that is convenient, but sometimes it is not.  Frequently users ask "how
can I make this depend only on a change to master, not the backport of
the change to stable?" and the answer is, "you can't".

URLs have the advantage of allowing users to be specific as to which
instances of a given change are actually required.  If, indeed, a change
depends on more than one, of course a user can still add multiple
Depends-On headers, one for each.

It is also easy for Zuul connections to determine whether a given URL is
referring to a change on that system without actually needing to query
it.  A Zuul connected to several code review systems can easy determine
which to ask for the change by examining the hostname.

URLs do have two disadvantages compared to Gerrit change IDs: they can
not be generated ahead of time, and they are not as easily found in
offline git history.

With Gerrit change IDs, we can write several local changes, and before
pushing them to Gerrit, add Depends-On headers since the change id is
generated locally.  URLs are not known until the changes are pushed to
Gerrit (or GitHub pull requests opened).  So in some cases, editing of
an already existing commit message may be required.  However, the most
common case of a simple dependency chain can still be easily created by
pushing one change up at a time.

Change IDs, by virtue of being in the commit message of the dependent as
well as depending change, become part of the permanent history of the
project, no longer tied to the code review system, once they merge.
This is an important thing to consider for long-running projects.  URLs
are less suitable for this, since they acquire their context from
contemporaneous servers.  However, Gerrit does record the review URL in
git notes, so while it's not as convenient, with some additional tooling
it should be possible to follow dependency paths with only the git
history.

Of course, this is not a change we can make instantaneously -- the
change IDs have a lot of inertia and developer muscle memory.  And we
don't want changes that have been in progress for a while to suddenly be
broken with the switch to v3.  So we will need to support both syntaxes
for some time.

We could, indeed, support both syntaxes indefinitely, but I believe it
would be better to plan on deprecating the Gerrit change ID syntax with
an eye to eventually removing it.  I think that ultimately, the URL
syntax for Depends-On is more intuitive to a new user, especially one
that may end up being exposed to a Zuul which connects to multiple
systems.  Having a Gerrit change depend on a GitHub pull request (and
vice versa) will be one of the most powerful features of Zuul v3, and
the syntax for that should be approachable.

In short, I think the value of consistency across multiple backends and
ease of use for new users outweighs the small loss of functionality for
Gerrit power users in this case.

I propose we adopt support for URLs in all source drivers in v3, and
declare Gerrit change IDs deprecated.  We will continue to support both
for a generous deprecation period (at least 6 months after the initial
Zuul 3.0 release), and then remove support for them.

How does that sound?

-Jim

___
OpenStack-Infra mailing list
OpenStack-Infra@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra

Re: [OpenStack-Infra] Zuul v3: proposed new Depends-On syntax

2017-05-24 Thread Morgan Fainberg
From someone who has used/consumed/worked with/contributed to Zuul,
this seems very straight forward and reasonable. The only concern is
ensuring that the metadata on "if this has in-fact merged" is clearly
available in the URL. I want to ensure we're implementing something
generally useful and if the url cannot provide data on "if this thing
is merged". As long as we have a clear "what we expect" and how to
implement new URL data providers (I'm sure gerrit and github
fundamentally provide different data in the web forms and we need to
suss out grabbing relevant data), this is perfect.

The downsides are relatively minimal (and could be solved with a
wrapper to look at git-notes).

I 100% agree we should not support all forms indefinitely, marking the
gerrit change-id form as deprecated is a solid plan when coupled with
this change.


On Wed, May 24, 2017 at 4:04 PM, James E. Blair  wrote:
> Hi,
>
> As part of Zuul v3, we're adding support for GitHub (and later possibly
> other systems).  We want these systems to have access to the full power
> of cross-project-dependencies in the same way as Gerrit.  However, the
> current syntax for the Depends-On footer is currently the
> Gerrit-specific change-id.
>
> We chose this in an attempt to be future-compatible with some proposed
> changes to Gerrit itself to support cross-project dependencies.  Since
> then, Gerrit has gone in a different direction on this subject, so I no
> longer think we should weigh that very heavily.
>
> While Gerrit change ids can be used to identify one or more changes
> within a Gerrit installation, there is no comparable identifier on
> GitHub, as pull request numbers are unique only within a project.
>
> The natural way to identify a GitHub pull request is with its URL.
>
> This can be used to identify Gerrit changes as well, and will likely be
> well supported by other systems.  Therefore, I propose we support URLs
> as the content of the Depends-On footers for all systems.  E.g.:
>
>   Depends-On: https://review.openstack.org/12345
>   Depends-On: https://github.com/ansible/ansible/pull/12345
>
> Similarly to the Gerrit change IDs, these identifiers are easily
> navigable within Gerrit (and Gertty), so that reviewers can traverse the
> dependency chain easily.
>
> One substantial aspect of this change is that it is more specific about
> projects and branches.  A single Gerrit change ID can refer to more than
> one branch, and even more than one project.  Zuul interprets this as
> "this change depends on *all* of the changes that match".  Often times
> that is convenient, but sometimes it is not.  Frequently users ask "how
> can I make this depend only on a change to master, not the backport of
> the change to stable?" and the answer is, "you can't".
>
> URLs have the advantage of allowing users to be specific as to which
> instances of a given change are actually required.  If, indeed, a change
> depends on more than one, of course a user can still add multiple
> Depends-On headers, one for each.
>
> It is also easy for Zuul connections to determine whether a given URL is
> referring to a change on that system without actually needing to query
> it.  A Zuul connected to several code review systems can easy determine
> which to ask for the change by examining the hostname.
>
> URLs do have two disadvantages compared to Gerrit change IDs: they can
> not be generated ahead of time, and they are not as easily found in
> offline git history.
>
> With Gerrit change IDs, we can write several local changes, and before
> pushing them to Gerrit, add Depends-On headers since the change id is
> generated locally.  URLs are not known until the changes are pushed to
> Gerrit (or GitHub pull requests opened).  So in some cases, editing of
> an already existing commit message may be required.  However, the most
> common case of a simple dependency chain can still be easily created by
> pushing one change up at a time.
>
> Change IDs, by virtue of being in the commit message of the dependent as
> well as depending change, become part of the permanent history of the
> project, no longer tied to the code review system, once they merge.
> This is an important thing to consider for long-running projects.  URLs
> are less suitable for this, since they acquire their context from
> contemporaneous servers.  However, Gerrit does record the review URL in
> git notes, so while it's not as convenient, with some additional tooling
> it should be possible to follow dependency paths with only the git
> history.
>
> Of course, this is not a change we can make instantaneously -- the
> change IDs have a lot of inertia and developer muscle memory.  And we
> don't want changes that have been in progress for a while to suddenly be
> broken with the switch to v3.  So we will need to support both syntaxes
> for some time.
>
> We could, indeed, support both syntaxes indefinitely, but I believe it
> would be better to plan on deprecating the Gerrit change ID syntax with
>

Re: [OpenStack-Infra] Zuul v3: proposed new Depends-On syntax

2017-05-24 Thread Jeremy Stanley
On 2017-05-24 16:04:20 -0700 (-0700), James E. Blair wrote:
[...]
> How does that sound?

I ain't afraid of no ghosts. Let's do it!
-- 
Jeremy Stanley


signature.asc
Description: Digital signature
___
OpenStack-Infra mailing list
OpenStack-Infra@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra

Re: [OpenStack-Infra] Zuul v3: proposed new Depends-On syntax

2017-05-24 Thread Tristan Cacqueray

On May 24, 2017 11:04 pm, James E. Blair wrote:
[...]

How does that sound?


Thinking about further connections support, could this also works for a
(theorical) mail based patch cross dependency?

What's the logic to match the Depends-On syntax to a connection driver?

-Tristan


pgprboWVzZLzx.pgp
Description: PGP signature
___
OpenStack-Infra mailing list
OpenStack-Infra@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra

Re: [OpenStack-Infra] Zuul v3: proposed new Depends-On syntax

2017-05-24 Thread Jeremy Stanley
On 2017-05-25 00:33:10 + (+), Tristan Cacqueray wrote:
> On May 24, 2017 11:04 pm, James E. Blair wrote:
> [...]
> >How does that sound?
> 
> Thinking about further connections support, could this also works
> for a (theorical) mail based patch cross dependency?

I can imagine wanting something like:

Depends-On: https://lkml.org/lkml/diff/2017/5/24/668/1

...where zuul will git am what it finds there.

> What's the logic to match the Depends-On syntax to a connection
> driver?

This brings up an additional question: how far can we stretch the
concept of a connection driver, and does it always need to be
something we can report back on in some way? Maybe we want to test a
Gerrit change or GutHub PR which requires a patch from the LKML (as
above) when rebuilding the kernel for a guest, but we don't ever
expect to report back to the LKML about anything. Would having a
generic HTTP(S) driver for things like this make sense?
-- 
Jeremy Stanley

___
OpenStack-Infra mailing list
OpenStack-Infra@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra