26
$\begingroup$

Bug introduced in 10.0 and fixed in 10.1


Warning: the code below may hang your system if you have the Suggestions Bar enabled in Mathematica < 10.1.


When issuing the following simple statements to Mathematica, it responds with a valid answer. However, immediately afterwards one of the two kernels (WolframKernel.exe) goes on a memory frenzy and eats up all RAM, apparently without bounds.

Input:

cols = Table[Symbol[ToString@col <> ToString@row], {col, {a, b, c, d, e, f, g, 
 h, i}}, {row, 9}];
# == 0 & /@ (Times @@@ Table[cols[[1, k]] - j, {k, 9}, {j, 9}])

Output:

{(-9 + a1) (-8 + a1) (-7 + a1) (-6 + a1) (-5 + a1) (-4 + a1) (-3 + a1) (-2 + a1) (-1 + a1) == 0,
 (-9 + a2) (-8 + a2) (-7 + a2) (-6 + a2) (-5 + a2) (-4 + a2) (-3 + a2) (-2 + a2) (-1 + a2) == 0,
 (-9 + a3) (-8 + a3) (-7 + a3) (-6 + a3) (-5 + a3) (-4 + a3) (-3 + a3) (-2 + a3) (-1 + a3) == 0,
 (-9 + a4) (-8 + a4) (-7 + a4) (-6 + a4) (-5 + a4) (-4 + a4) (-3 + a4) (-2 + a4) (-1 + a4) == 0,
 (-9 + a5) (-8 + a5) (-7 + a5) (-6 + a5) (-5 + a5) (-4 + a5) (-3 + a5) (-2 + a5) (-1 + a5) == 0,
 (-9 + a6) (-8 + a6) (-7 + a6) (-6 + a6) (-5 + a6) (-4 + a6) (-3 + a6) (-2 + a6) (-1 + a6) == 0,
 (-9 + a7) (-8 + a7) (-7 + a7) (-6 + a7) (-5 + a7) (-4 + a7) (-3 + a7) (-2 + a7) (-1 + a7) == 0,
 (-9 + a8) (-8 + a8) (-7 + a8) (-6 + a8) (-5 + a8) (-4 + a8) (-3 + a8) (-2 + a8) (-1 + a8) == 0,
 (-9 + a9) (-8 + a9) (-7 + a9) (-6 + a9) (-5 + a9) (-4 + a9) (-3 + a9) (-2 + a9) (-1 + a9) == 0}

Memory consumption is beyond 32GB within a few seconds.

I am running Win8.1x64 with Mathematica 10.0.2.

Interesting sidenote:

Thanks to your kind comments, we found, that this is directly connected to the Suggestion Bar being active.

But: Even after turning it off, the memory consuming behavior can easily be triggered by calling Solve[] on the output: All available system memory and more is consumed within seconds again (not surprisingly, though, since the solution space is $9^9=387,420,489$, if I am not mistaken). So, it might be assumed, that the suggestion bar internally also calls Solve[] on the result, which might give us some more insight into how Mathematica's frontend works.


Using FindInstance[] and ByteCount[] I found, that one solution takes up 12,416 bytes on my machine. Therefore: Should you have 4,810,212,791,424 bytes of RAM to spare (i.e.: > 4.37 TB), you should actually be able to execute a successful Solve[] on that output - and also keep the Suggestion Bar activated. ;)

$\endgroup$
  • 2
    $\begingroup$ Fails the same way here on a Windows 8.1 64-bit system with 10.0.2.0. Others might not want to repeat this test. It's a little hard to recover. $\endgroup$ – undefined Jan 16 '15 at 20:27
  • 4
    $\begingroup$ I can confirm the issue on a Windows 8.1 64-bit system with 10.0.2.0. It happens with the option "Show Suggestion Bar after last output" enabled. It doesn't happen with this option disabled. I definitely think it's a bug, mainly related to the Suggestion Bar, and, potentially, a very bad and dangerous bug. I suggest the poster to report it to Wolfram Support $\endgroup$ – Luca M Jan 16 '15 at 22:12
  • 2
    $\begingroup$ OH GOD IT WORKS ON 10.0.1 TOO!!! After enabling "Show Suggestion Bar after last output" as Luca M suggested, it ate all my RAM instantly. $\endgroup$ – DumpsterDoofus Jan 16 '15 at 22:36
  • 1
    $\begingroup$ Meanwhile, I reported this severe bug to Wolfram. I also confirm the enabled SuggestionBar as trigger for the issue. $\endgroup$ – Jinxed Jan 17 '15 at 10:39
  • 3
    $\begingroup$ "You can disable it on an ad hoc basis if it's really in the way." Or if eats up 32GB of RAM... $\endgroup$ – dr.blochwave Jan 17 '15 at 15:09
17
$\begingroup$

Update:

The issue has been fixed in Mathematica 10.1! :)

Besides: Interesting enough, the suggestion bar's first option after evaluating the statements given above now is "solve for …", so: The assumption, that in 10.0.2 Mathematica's suggestion bar started out trying to actually solve for all variables, which, as I pointed out, is quite impossible on a machine with less than a few terabytes of RAM, now really seems what has happened.


Adding up all your kind comments, we can conclude:

  1. An enabled Suggestion Bar (standard in Mathematica 10) triggers one WolframKernel process to consume all system memory (possibly up to approximately 4.37 TB, if available).
  2. This is a bug in Mathematica 10 (up to and including 10.0.2.0) on multiple operating system platforms. Wolfram has confirmed the bug report today (see below).
  3. The only workaround is to disable the Suggestion Bar, until the bug is fixed by Wolfram. Not disabling it might leave you with a nearly stalled operating system doing not much more than massively swapping.
  4. The same (or very much alike) memory consumption will result, even with a disabled Suggestion Bar, should you try to call Solve[], Reduce[] or the like on the output above. Be prepared to manually kill the WolframKernel-process within the next few seconds.

Bug confirmation from Wolfram, 2015-01-19

Hello -
Thank you for your email.
I have reproduced this problem with the Suggestion Bar and 
filed a report with our developers so that it can be fixed 
in a future version of Mathematica.
I will also be sure to pass on any useful information that 
I get in the meantime.
Please let me know if you encounter any further problems 
in Mathematica.
 
[~name masked~]
Technical Support
Wolfram Research, Inc.
http://support.wolfram.com
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.