Bug 1076711 - ricci: end-use modules do not handle stdin polling correctly
Summary: ricci: end-use modules do not handle stdin polling correctly
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: conga
Version: 5.11
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: rc
: ---
Assignee: Jan Pokorný [poki]
QA Contact: Cluster QE
URL:
Whiteboard:
Depends On:
Blocks: 1076713 1076714
TreeView+ depends on / blocked
 
Reported: 2014-03-14 21:08 UTC by Jan Pokorný [poki]
Modified: 2014-09-16 05:31 UTC (History)
3 users (show)

Fixed In Version: conga-0.12.2-70.el5
Doc Type: Bug Fix
Doc Text:
Cause: Modules of ricci mishandling requests with size (in bytes) divisible by 4096 (size of the read buffer in bytes). Such requests will be evaluated as an error condition accompanied with "Success" description (if presented to the requester at all). Consequence: Rare request handling error under otherwise error-free conditions. Fix: Now the modules shipped directly with ricci (that is, all modules except for modcluster from a separate clustermon package that is to be addressed with the update for that package/BZ#1076714) will process even requests with size (in bytes) divisible by 4096 correctly. Result: No rare request handling error under otherwise error-free conditions.
Clone Of:
: 1076713 1076714 (view as bug list)
Environment:
Last Closed: 2014-09-16 05:31:14 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 732483 1 None None None 2021-01-20 06:05:38 UTC
Red Hat Product Errata RHSA-2014:1194 0 normal SHIPPED_LIVE Moderate: conga security and bug fix update 2014-09-16 09:28:53 UTC

Internal Links: 732483

Description Jan Pokorný [poki] 2014-03-14 21:08:41 UTC
Just observed a situation where the current polling code breaks in case
of input being the exact multiple of the read buffer size (4096).

The cardinal issue is that the code didn't expect POLLHUP to appear
when not original asked for capture, and in turn, not expecting poll
will return positive number in such case, leading to fallback to
"nothing read of malformatted input" condition.

This is partly in one line with previously discovered issues
([bug 732483]), which led me to some more code base reviews,
resulting even in a patch to this very issue (although it was
more like fix "suspicious" than "apparent" back then): [1].
Unfortunately there was no direct justification for that patch
at that time.

[1] https://git.fedorahosted.org/cgit/conga.git/commit/?id=631b17aab8f44396c4cf373bc4466bbfcaab6563

Comment 1 RHEL Program Management 2014-03-14 21:09:26 UTC
This request was evaluated by Red Hat Product Management for inclusion
in a Red Hat Enterprise Linux release.  Product Management has
requested further review of this request by Red Hat Engineering, for
potential inclusion in a Red Hat Enterprise Linux release for currently
deployed products.  This request is not yet committed for inclusion in
a release.

Comment 2 Jan Pokorný [poki] 2014-03-14 21:13:16 UTC
Note that the size relates to the overall <request/> part of the RICCIAPI,
which is being passed to the particular module, not to the size of
cluster.conf.  Although in the initial observation, it was
a set_cluster.conf request with cluster.conf size roughly 7580 B
(exact equation for triggering size shouldn't be too hard to figure out).

Comment 13 errata-xmlrpc 2014-09-16 05:31:14 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.

http://rhn.redhat.com/errata/RHSA-2014-1194.html


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