[Gluster-devel] Adventures in building GlusterFS
Krishnan Parthasarathi
kparthas at redhat.com
Thu Apr 2 03:50:52 UTC 2015
Apologies for breaking the build. I am out of office. Please revert
review #9492.
----- Original Message -----
> As many of you have undoubtedly noticed, we're now in a situation where
> *all* regression builds are now failing, with something like this:
>
> -----
> cc1: warnings being treated as errors
> /home/jenkins/root/workspace/rackspace-regression-2GB-triggered/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c:
> In function ‘glusterd_snap_quorum_check_for_create’:
> /home/jenkins/root/workspace/rackspace-regression-2GB-triggered/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c:2615:
> error: passing argument 2 of ‘does_gd_meet_server_quorum’ from
> incompatible pointer type
> /home/jenkins/root/workspace/rackspace-regression-2GB-triggered/xlators/mgmt/glusterd/src/glusterd-server-quorum.h:56:
> note: expected ‘struct list_head *’ but argument is of type ‘struct
> cds_list_head *’
> -----
>
> The reason is that -Werror was turned on earlier today. I'm not quite
> sure how or where, because the version of build.sh that I thought builds
> would use doesn't seem to have changed since September 8, but then
> there's a lot about this system I don't understand. Vijay (who I
> believe made the change) knows it better than I ever will. In any case,
> this started me on a little journey of exploration.
>
> I actually do builds a bit differently than Jenkins does, and as far as
> I know differently than any other developer. I do a complete RPM build
> for every change, precisely to catch problems in that pipeline, but that
> means some of the things I do might not be applicable or even safe when
> "make install" is issued directly instead.
>
> The first thing I had to do was add a couple of exceptions to -Werror
> because of warnings that have been with us for ages. Specifically:
>
> -Wno-error=cpp because multiple things generate warnings about
> _BSD_SOURCE and _SVID_SOURCE being deprecated
>
> -Wno-error=maybe-uninitialized because some of the qemu code is
> bad that way
>
> That got me to the point where I could see - and hopefully debug -
> today's issue. As far as I can tell, the types changed with this patch:
>
> http://review.gluster.org/#/c/9492/
> glusterd: group server-quorum related code together
>
> There's also a patch to fix the type mismatch that leads to the build
> error:
>
> http://review.gluster.org/#/c/10105/
> mgmt/glusterd: set right definition of does_gd_meet_server_quorum()
>
> Unfortunately, applying the later patch to my tree didn't solve the
> problem. I got similar errors in another related set of functions,
> indicating that the type mismatch had just been pushed to a different
> level. However, by *reverting* the first patch, along with the flag
> changes mentioned above, I was able to get a successful build.
>
> My recommendations:
>
> (1) Apply the -Wno-error=cpp and -Wno-error=maybe-uninitialized
> changes wherever they need to be applied so that they're
> effective during normal regression builds
>
> (2) Revert patch 9492
>
> (3) Once regressions are running again, figure out how to make
> the necessary code changes so that (1) and (2) are no longer
> necessary
>
> I'm unable to do either of these things myself. Would anyone else like
> to do so, or suggest an alternative remedy?
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-devel
>
More information about the Gluster-devel
mailing list