Help with Jenkins

@seantalts, can you please help me with a Jenkins error? I’m trying to merge pull request #619, but it seems to be failing the tests in test/unit/math/rev/core/ on Jenkins. However, when I run ./ test/unit/math/rev/core/ locally on the same branch, all tests pass. The branch is also up to date with develop. Is there something else that I should try?

It has 6 compiler warnings from GCC:

Yeah I was just looking at that and I see me in there (vector_rng_test_helper.hpp). These files seem unrelated to the pull. Did anything change?

Oh crap that is a good warning. That’s a macro not a function call, I better put curly braces around it to avoid something bad happening. But whether or not it should be in this pull haha…

Thanks for pointing that out, Sean, and for commenting, Ben. My pull request is only changing one file: stan/math/prim/mat/err/check_matching_dims.hpp. @bbbales2, have you fixed the macro?

So if this is the only error, I would consider this test run to have passed (and I think that should let you merge, or I can merge it for you). I think there are separate issues for 1) fixing those warnings or 2) deciding we don’t care about them.

Even if it’s an one line change to a pull request that previously passed Jenkins test and its test runs successfully locally, I rather have it go through all tests and pass all tests on Jenkins.

The ifs should be fixed. That’s a blunder on my part trusting Google Macros. I just wonder why these errors only appeared now? I’ll try this on gcc when I get back from fooding.

The unused function thing doesn’t seem important though.

Welcome to the fun that is software maintenance!

My guess: it’s a different compiler, thus different warnings. (fun fact: g++ with the same major, minor, and patch versions on different platforms may not be the same)

There is a chance that the compiler options changed with the recent changes to the makefiles. That might also explain the failures.

That wasn’t so helpful. I’ll try to dig next chance I get (unless you solve it without me).

I just tried compiling this branch with with g++.

I didn’t get the warnings when I explicitly compiled a file that uses the vector_rng_test_helper.hpp stuff.

Running the full unit tests now.

There are a bunch of warnings about

./stan/math/rev/core/set_zero_all_adjoints.hpp:14:17: warning: ‘void stan::math::set_zero_all_adjoints()’ defined but not used

But I assume those are to be ignored.

Nope, didn’t end up getting errors other than the unused function ones. So I guess it’s Jenkins specific.

Our makefiles are configured for the OS. The options for Windows vs Mac vs Linux, even with the same compiler, aren’t identical.

Here, you can see the job ran on a Linux box:

I think if you set in your make/local the OS variable to Linux, you’d get the compiler options.

might be g++ 7? I don’t have g++ 7 installed on my machine.

Wow I didn’t realize gcc was all the way at 7.

The three warnings about the ifs seem reasonable though. Just slap curly braces around those and then ignore the unused functions ones?

I set Jenkins’ g++ to 4.9 last night as g+±7 apparently causes even more severe problems with a lot of our code (see I asked Jenkins to retest; I think it should pass now.

I checked today; it failed again. However, when I took a look, it looks like it fails because of commit 3dda8ceaf1b0da1a92ed296227d080b20ccf90eb. My pull request commit is f2e1f0fde63f61fb26b86b23e04e234bb58acad2 so I tried finding where that other commit is coming from, but I’m not having any luck. Is the commit (3dda8ceaf1b0da1a92ed296227d080b20ccf90eb) setting Jenkins’ g++ to 4.9?

I can’t look into it today but Jenkins tests origin/pr/<whatever number>/merge which has the effects of merging your branch into develop, so that’s probably what that commit number is.

To avoid making a bunch of threads about this, my pull is stuck as well ( – edit: wrong link:

I’m just going to wait for your (@seantalts) word to do anything on this. I could keep asking Jenkins to retest but it doesn’t seem that useful, and the warnings are outside the scope of my pull req.

What does stuck mean? I can’t actually seem to visit the Jenkins site from the network I’m on (Rayleigh also had this problem!)