Bug 153713

Summary: [GTK] 22 new JSC test failures on the GTK+ ARM buildbot after r195233.
Product: WebKit Reporter: Carlos Alberto Lopez Perez <clopez>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: bugs-noreply, gustavo, icenowy, mcatanzaro, ossy
Priority: P2    
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 108645, 153204    

Description Carlos Alberto Lopez Perez 2016-01-30 12:58:38 PST
This is a clean build of r195232 https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/10106
This is a clean build of r195233 https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/10107

As you see, it seems that r195233 <http://trac.webkit.org/r195233> has caused 22 new JSC test failures on the GTK+ ARM buildbot.

Looking at the log https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/10107/steps/jscore-test/logs/stdio it seems the tests are failing because of "Illegal instruction".

I don't know what is going on here, but I doubt r195233 has directly caused this regression. Any idea?
Comment 1 Csaba Osztrogonác 2016-02-01 10:49:00 PST
JSCTEST_timeout is 60 seconds by default (set by run-javascriptcore-tests)
and is doubled by run-jsc-stress-tests if FTL JIT is enabled and
then multiplied with sqrt(number_of_processors).

r194601 disabled timeout accidentally, I only enabled it again in r195233.
Maybe your hardware needs more timeout than the default. Could you try
if setting bigger timeout via JSCTEST_timeout env fixes this issue?

"Illegal instruction
ERROR: Unexpected exit code: 132"

We should see "Timed out after xx.xxxxxxx seconds!" message too
(dumped by jsc.cpp), but it seems it is disabled on your bot.
Comment 2 Carlos Alberto Lopez Perez 2016-02-05 04:37:11 PST
I don't manage the GTK+ ARM buildbot. Kov (Gustavo) is the admin.


What I wonder is how the illegal instructions can be raised if the tests were working before? :\
Comment 3 Csaba Osztrogonác 2016-02-05 04:50:18 PST
(In reply to comment #2)
> I don't manage the GTK+ ARM buildbot. Kov (Gustavo) is the admin.
> 
> What I wonder is how the illegal instructions can be raised if the tests
> were working before? :\

It's normal. When timeout happens, CRASH() calls __builtin_trap()
which is an illegal instruction.

Kov, could you try to set JSCTEST_timeout env to a bigger number?
Comment 4 Gustavo Noronha (kov) 2016-02-08 04:16:43 PST
Sure, I'll do that later today (I have to poke the sysadmins to replace my ssh key on the server, the old one was removed while I was on vacation).
Comment 5 Gustavo Noronha (kov) 2016-02-08 05:15:49 PST
Just did it. I double it to 120, let's see if it works.
Comment 6 Carlos Alberto Lopez Perez 2016-02-11 17:53:32 PST
(In reply to comment #3)
> (In reply to comment #2)
> > What I wonder is how the illegal instructions can be raised if the tests
> > were working before? :\
> 
> It's normal. When timeout happens, CRASH() calls __builtin_trap()
> which is an illegal instruction.
> 

But it don't prints any "Timed out after xxx seconds! message as it should do because of http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/jsc.cpp?rev=195233#L1675

If i run " JSCTEST_timeout=1 Tools/Scripts/run-javascriptcore-tests --gtk --release --no-build " on my laptop I get the timeouts printed when they happen.

???

(In reply to comment #5)
> Just did it. I double it to 120, let's see if it works.

Seems there still many tests crashing with illegal instruction.

Kov, can you do a " sudo apt-get install ruby-json ruby-highline " ? it is complaining about this missing libraries on the top of the log.

Thanks
Comment 7 Carlos Alberto Lopez Perez 2016-04-04 09:12:30 PDT
(In reply to comment #6)
> Kov, can you do a " sudo apt-get install ruby-json ruby-highline " ? it is
> complaining about this missing libraries on the top of the log.


Kov ping?
Comment 8 Icenowy Zheng 2016-06-11 05:42:08 PDT
I've built the latest release (2.12.3) of webkit2gtk on my arm machine, and even run 1+1 in jsc will cause SIGILL...
Comment 9 Carlos Alberto Lopez Perez 2016-06-11 13:01:51 PDT
(In reply to comment #8)
> I've built the latest release (2.12.3) of webkit2gtk on my arm machine, and
> even run 1+1 in jsc will cause SIGILL...

Could you generate a coredump and get a backtrace?
Comment 10 Carlos Alberto Lopez Perez 2016-06-11 13:08:47 PDT
(In reply to comment #8)
> I've built the latest release (2.12.3) of webkit2gtk on my arm machine, and
> even run 1+1 in jsc will cause SIGILL...

I cannot reproduce that on an ARMv7 machine (a wandboard) with Debian Jessie using webkit2gtk+ from debian-backports (2.12.0-2~bpo8+1)

$ dpkg -S $(which jsc)
libjavascriptcoregtk-4.0-bin: /usr/bin/jsc

$ apt-cache policy libjavascriptcoregtk-4.0-bin
libjavascriptcoregtk-4.0-bin:
  Installed: 2.12.0-2~bpo8+1
  Candidate: 2.12.0-2~bpo8+1
  Version table:
 *** 2.12.0-2~bpo8+1 0
        100 http://ftp.debian.org/debian/ jessie-backports/main armhf Packages
        100 /var/lib/dpkg/status
     2.6.2+dfsg1-4 0
        500 http://ftp.pt.debian.org/debian/ jessie/main armhf Packages

$ jsc -e "print(1 + 1)"
2