So...couldn't sleep.

I made a modification to test/test_timeout.rb, where the net/http
timeout test was using www.google.de as a site to connect to...and
presumably timeout. That test has always been a little flaky,
especially on a fast connection like AWS. I modified it instead to use
Google's public DNS server, 8.8.8.8, which appears to ignore port 80.
With this change, jruby-test-all-release is green.

I moved on to the JVM builds.

My first change was removing some Hotspot-specific flags from the env
for jruby-test-matrix builds, which prevented the JRockit build from
starting up. I have not rerun it yet.

I think IBM Java 5 might be a lost cause. I made some minor good
changes to test/testMap.rb, but then ran into encoding issues (missing
charsets) that would be very cumbersome to hack around. We might need
to drop this one unless someone wants to fight through it.

IBM Java 6 is a better story. The primary issues:

* Because we have been binding private methods, a test in testMap.rb
failed to work properly because instead of calling Map.put(Object,
Object) it called a private version put(Integer, Object). Subsequent
gets from Java were unable to see the values. I think it's probably a
good idea for us to stop binding private methods; you can go after
them with java_method, java_send, and the like. Agreed?

* IBM is very restrictive of class names. Specifically, the # we now
have in some class names from the JIT prevents them from loading *at
all*. This will have to be addressed in some way, or JIT on IBM Java 6
will never succeed. Other than that, I removed the # from reified
class names, which helped

* It is also restrictive of method names. I modified class reification
to skip methods that were not entirely made up of Java identifier
characters, but only when on IBM.

These fixes *almost* got IBM Java 6 to pass, but there are compiler
specs that fail probably because of the method name restrictions.
Again, this is a bigger problem.

- Charlie

On Wed, Dec 7, 2011 at 12:05 AM, Charles Oliver Nutter
<[email protected]> wrote:
> More...
>
> * The intermittent Fiber failure in the 1.9 RubySpec build were my
> fault. I did not take enough care to make sure rogue fibers could not
> wake up threads at random. I committed a new version that uses
> Exchanger and it appears to consistently pass all specs. I still need
> to investigate if it impacts performance.
>
> * There are two encoding specs that only fail on Java 5. It appears
> that Java 5's CharsetEncoder is happily allowing invalid EUC_JP input
> to be transcoded to ISO-8859-1 while Java 6 disallows it with an
> error. Since the CharsetEncoder is set to REPORT on errors, I must
> assume this is a bug. I'm introducing a new tag, "java1.5" that we can
> use to mask out this and other specs. It will be applied automatically
> when running on a particular version of Java.
>
> With these fixes, the interpreted 1.9 spec run is green, and
> "speci-ci" is finally green again after months of being red. Hooray!
>
> The next target was to get jruby-test-all-release green, since it
> failed last night. I modified test/test_timeout.rb's net/http timeout
> test to use a server that appears to ignore port 80, one of the Google
> open DNS servers, 8.8.8.8. That appeared to make the test quicker and
> more reliable on my machine, so I pushed it. I have not yet run a
> jruby-test-all-release CI run yet to test it.
>
> Tomorrow I will hopefully finally get to the cross-JVM builds.
>
> - Charlie
>
> On Tue, Dec 6, 2011 at 3:07 AM, Charles Oliver Nutter
> <[email protected]> wrote:
>> And yet more...
>>
>> * Modified the mspec runs to pass "-T -J-XX:MaxPermSize=512M" instead
>> of trying to set JAVA_OPTS all over. It seems that mspec must do some
>> env scrubbing, or something...so telling it to explicitly pass a -J
>> argument to the child JRuby process seems to have worked. The
>> interpreted, compiled (JIT), and precompiled (forced JIT) 1.8 spec
>> runs are all green again.
>>
>> * The 1.9 spec runs appear to fail with varying numbers of failures.
>> That's going to take more time to investigate. The fiber specs in
>> particular seem to pass sometimes and fail sometimes.
>>
>> * I've started making an attempt to get the Windows builds green
>> again. They seem to have decayed to the point of not actually even
>> starting up ant right, which could be due to my other changes. I added
>> an explicit path to ant's home and an ANT_HOME env var, and they're at
>> least attempting to build again. They are still failing, however; we
>> need to sit down with a Windows box and get everything green there.
>>
>> * I kicked off the cross-JVM matrix, and it appears that JRockit fails
>> because we're using nonstandard flags (CMS stuff, it appears) and J9
>> fails (both versions) due to actual test failures. Will require a bit
>> more work. sun-java-5 and sun-java-6 are both green again.
>>
>> - Charlie
>>
>> On Tue, Dec 6, 2011 at 1:20 AM, Charles Oliver Nutter
>> <[email protected]> wrote:
>>> Additional tweaks...
>>>
>>> * There's a difference in File.flock behavior between Java 5 and later
>>> versions. Specifically, on later versions you have to have the file
>>> open in specific modes (read/write) to be able to do shared and
>>> exclusive locks. There's a guard in RubySpec for this behavior, which
>>> is exhibited on OpenJDK 6 and later and *should* be exhibited on any
>>> version of MRI on Solaris (which is the lowest-common-denominator
>>> excuse for the Java behavior). Because it only fails on Java 5 and the
>>> majority of users are on Java 6, I've added a Java 5-specific
>>> exclusion to spec/jruby.1.8.mspec and spec/jruby.1.9.mspec. That
>>> appears to be getting the spec runs green on Java 5...finally!
>>>
>>> * The spec runs were configured in Jenkins to have a maximum permgen
>>> of 128M, which caused my tweak from earlier to not take effect. I
>>> modified the Jenkins environment for spec-ci to allow permgen up to
>>> 512M.
>>>
>>> If I have time this evening (sick baby up late) I will attempt to get
>>> the cross-JVM build matrix green as well. We'll be greener than we've
>>> been in a long time, once that happens.
>>>
>>> - Charlie
>>>
>>> On Mon, Dec 5, 2011 at 11:30 PM, Charles Oliver Nutter
>>> <[email protected]> wrote:
>>>> Man, is this ever a painful job.
>>>>
>>>> I've spent most of the day trying to get CI builds green again, and
>>>> the server has been working against me.
>>>>
>>>> Most of the major builds were red...the spec builds, test-all, dist,
>>>> and I think jruby-base as well. In the process of fixing one build I
>>>> uncovered regressions in others, or uncovered bugs that caused more
>>>> builds to go red. Needless to say, I didn't expect to spend 15 hours
>>>> on this.
>>>>
>>>> I think I'm finally closing in on having everything green again, and
>>>> there were a few facts that came out of this I wanted to bring to
>>>> everyone's attention.
>>>>
>>>> * As I posted earlier, I added another test-all build for jruby-1_6.
>>>> It should help keep us honest.
>>>>
>>>> * Ant 1.7.0 is a pain in the ass. It appeared to ignore the JDK we
>>>> started it up with and always launched 'java' with whatever the
>>>> command on PATH was. BUT, it would run that JVM with the runtime you
>>>> started it up with...or something like that. In any case, those nasty
>>>> bizarre VerifyErrors came back. Ultimately I ended up going through
>>>> and explicitly making pretty much all builds use the ant182 install of
>>>> ant, *and* I modified Jenkins to puts that ant install at the front of
>>>> PATH. If I didn't do that, it seemed to keep picking up the
>>>> system-wide emerged "ant" and reverting to the old issues.
>>>>
>>>> * I had to bump up permgen on a couple of the precompiled tests again.
>>>> They're at 512M now. I also added permgen size to the spec runs, which
>>>> might cause them to break on JVMs that don't have a permgen flag. I'll
>>>> cross that bridge shortly.
>>>>
>>>> * I also forced almost all builds to run with Java 5. We've had some
>>>> bad Java 6 code sneak through again recently, and we need to keep the
>>>> builds honest across the board. All builds, unless otherwise
>>>> specified, will run with Java 5.
>>>>
>>>> I'm still in progress, but I'll write again in a while as more builds go 
>>>> green.
>>>>
>>>> - Charlie

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to