[Solved] System freezing - Mint 13 Cinnamon

Quick to answer questions about finding your way around Linux Mint as a new user.
Forum rules
There are no such things as "stupid" questions. However if you think your question is a bit stupid, then this is the right place for you to post it. Stick to easy to-the-point questions that you feel people can answer fast. For long and complicated questions use the other forums in the support section.
Before you post read how to get help. Topics in this forum are automatically closed 6 months after creation.
AlbertP
Level 16
Level 16
Posts: 6701
Joined: Sun Jan 30, 2011 12:38 pm
Location: Utrecht, The Netherlands

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by AlbertP »

lutterworth wrote:

Code: Select all

dpkg-buildpackage: Fehler: Fehler-Exitstatus von fakeroot debian/rules clean war 2
If you see this message when compiling Cinnamon, please run ./autogen.sh and try again. For Muffin there is not an autogen.sh however.
Registered Linux User #528502
Image
Feel free to correct me if I'm trying to write in Spanish, French or German.
User avatar
kmb42vt
Level 5
Level 5
Posts: 974
Joined: Sun Dec 06, 2009 11:15 am
Location: Vermont
Contact:

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by kmb42vt »

@esteban1uy - Sorry for not being around yesterday. Life took precedence and all that. I'll try your modified procedure later tonight and see how it goes. Should be easy enough since my laptop still has all the packages installed from the last compilation. I'll post back here with the results when I have them.

Nice work, by the way. :D
"Humph. Choice, it is the quintessential Linux delusion, simultaneously the source of it's greatest strength, and it's greatest weakness." (All apologies to The Architect)
lutterworth

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by lutterworth »

@esteban1uy
@AlbertP
thanks - works fine now - so far - so good!
cheers

lutter
esteban1uy

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by esteban1uy »

kmb42vt wrote:@esteban1uy - Sorry for not being around yesterday. Life took precedence and all that. I'll try your modified procedure later tonight and see how it goes. Should be easy enough since my laptop still has all the packages installed from the last compilation. I'll post back here with the results when I have them.

Nice work, by the way. :D
Thank you my friend :D
palo
Level 4
Level 4
Posts: 476
Joined: Mon Jun 25, 2012 7:28 am
Location: Walking on sunshine

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by palo »

esteban1uy > I followed your latest muffin recipe (Sun Jul 22) and do not get the freeze from the LO W table test. Will keep playing. Nice job.
schendstok

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by schendstok »

I spoke too soon. I finally re-encountered the system freeze with the original version. Now I'm trying the noopt version posted my Clem.
User avatar
Reorx
Level 12
Level 12
Posts: 4044
Joined: Tue Jul 07, 2009 7:14 pm
Location: SE Florida, USA

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by Reorx »

Esteban;

KUDOS TO YOU SIR! There seems to be some truth to the Mint slogan "From Freedom Came Elegance"... That was an elegant proof of the root cause of the problem and it was eloquently presented... It should make the official fix easy for Clem and the development team to get out in an official update.

Thank you again sir for all your work on this rather annoying problem. I currently am running Mint 9 and was wanting to update to Mint 13. I took 13 for a test drive on the machines that I have running M9 (all laptops) and all were effected by the infamous "freeze". For me, this problem is a deal breaker - I use most of my Mint computers for work... I have been following this thread since it started & I am waiting for this problem to be resolved before updating to M13. I am confident that the official update/fix is on the way and will be out in the near future.

If you ever find yourself in SE Florida, look me up - the first beer (or whatever else you might like to drink) is on me...

Thanx again.

- R -

P.S.: I'd like to also thank all the others collaborating on this problem/fix for all their work as well - proof-of-fix on multiple systems is also an essential part of establishing that the fix is "the right fix" and universal.

Mint on...
esteban1uy wrote:Well... the whole "noopt" thing looks a little bit extreme to me as a definitive solution (and kind of "Harry Potter style" of fixing a bug) so I decided to really understand what the heck happens in the original Maya's muffin 32 bits when it is compiled with the default optimization options (enabled) that makes it buggy.
Then, instead of globally disabling the optimizations, I started disabling them locally. That can be done using certain commands that instruct gcc (the compiler) to avoid using optimizations in certain parts of the code, as explained here: http://stackoverflow.com/questions/2219 ... ments-in-c
The first thing I tried was disabling optimizations only for the file named meta-window-actor.c, because in a previous debug suggested by Clem it seems strongly suspicious that it may be the one that contains the bug.
Ok, compiled that way and installed and freeze was not present. One step forward.
Then I started disabling optimizations at certain parts of meta-window-actor.c, and after some trial and error I arrived to a function with an incredibly pompous name that probably contains the actual bug: meta_window_actor_update_bounding_region_and_borders. If you disable optimizations only for that function, no freezes at all. Another step forward.
Now let's take a look at it:

Code: Select all

static void
meta_window_actor_update_bounding_region_and_borders (MetaWindowActor *self,
                                                      int              width,
                                                      int              height)
{
  MetaWindowActorPrivate *priv = self->priv;
  MetaFrame *frame;
  MetaFrameBorders borders;
  cairo_rectangle_int_t bounding_rectangle;

  bounding_rectangle.x = 0;
  bounding_rectangle.y = 0;

  frame = priv->window->frame;
  if (frame != NULL)
    {
      meta_frame_calc_borders (frame, &borders);

      bounding_rectangle.x = borders.invisible.left;
      bounding_rectangle.y = borders.invisible.top;

      width -= borders.invisible.left + borders.invisible.right;
      height -= borders.invisible.top + borders.invisible.bottom;
    }

  bounding_rectangle.width = width;
  bounding_rectangle.height = height;

  if (priv->bounding_region != NULL)
    {
      cairo_rectangle_int_t old_bounding_rectangle;
      cairo_region_get_extents (priv->bounding_region, &old_bounding_rectangle);

      /* Because the bounding region doesn't include the invisible borders,
       * we need to make sure that the border sizes haven't changed before
       * short-circuiting early.
       */
      if (bounding_rectangle.width == old_bounding_rectangle.width &&
          bounding_rectangle.height == old_bounding_rectangle.height &&
          priv->last_borders.invisible.left == borders.invisible.left &&
          priv->last_borders.invisible.right == borders.invisible.right &&
          priv->last_borders.invisible.top == borders.invisible.top &&
          priv->last_borders.invisible.bottom == borders.invisible.bottom)
        return;
    }

  priv->last_borders = borders;

  meta_window_actor_clear_bounding_region (self);

  priv->bounding_region = cairo_region_create_rectangle (&bounding_rectangle);

  meta_window_actor_update_shape (self);

  g_signal_emit (self, signals[SIZE_CHANGED], 0);
}
What's wrong with that function?
Well, at certain point the function checks for the existence of a window frame (if (frame != NULL)) and if the frame exists it makes some other calculations.
But... what happens when there is no associated window frame, maybe the case of those little LibreOffice tooltips rapidly disappearing under certain circumstances? (tooltips are windows too, a special kind of popup window).
A ha!
We have that the structured variable "borders" stays uninitialized but then it's called again a few lines of code later.
Let's study the way a similar case is managed in some other part of the code. In the same meta-window-actor.c there is a function named check_needs_reshape that does something very similar:

Code: Select all

static void
check_needs_reshape (MetaWindowActor *self)
{
  .
  .
  .
  if (priv->window->frame)
    meta_frame_calc_borders (priv->window->frame, &borders);
  else
    meta_frame_borders_clear (&borders);

See?
In that function, when there's no window frame associated there's a call to meta_frame_borders_clear (&borders); that takes care to initialize the "borders" variable.
BINGO!!!

Now we only have to add that missing part to our meta_window_actor_update_bounding_region_and_borders:

Code: Select all

static void
meta_window_actor_update_bounding_region_and_borders (MetaWindowActor *self,
                                                      int              width,
                                                      int              height)
{
  MetaWindowActorPrivate *priv = self->priv;
  MetaFrame *frame;
  MetaFrameBorders borders;
  cairo_rectangle_int_t bounding_rectangle;

  bounding_rectangle.x = 0;
  bounding_rectangle.y = 0;

  frame = priv->window->frame;
  if (frame != NULL)
    {
      meta_frame_calc_borders (frame, &borders);

      bounding_rectangle.x = borders.invisible.left;
      bounding_rectangle.y = borders.invisible.top;

      width -= borders.invisible.left + borders.invisible.right;
      height -= borders.invisible.top + borders.invisible.bottom;
    }
  else                                    //MISSING
    meta_frame_borders_clear (&borders);  //MISSING

  bounding_rectangle.width = width;
  bounding_rectangle.height = height;

  if (priv->bounding_region != NULL)
    {
      cairo_rectangle_int_t old_bounding_rectangle;
      cairo_region_get_extents (priv->bounding_region, &old_bounding_rectangle);

      /* Because the bounding region doesn't include the invisible borders,
       * we need to make sure that the border sizes haven't changed before
       * short-circuiting early.
       */
      if (bounding_rectangle.width == old_bounding_rectangle.width &&
          bounding_rectangle.height == old_bounding_rectangle.height &&
          priv->last_borders.invisible.left == borders.invisible.left &&
          priv->last_borders.invisible.right == borders.invisible.right &&
          priv->last_borders.invisible.top == borders.invisible.top &&
          priv->last_borders.invisible.bottom == borders.invisible.bottom)
        return;
    }

  priv->last_borders = borders;

  meta_window_actor_clear_bounding_region (self);

  priv->bounding_region = cairo_region_create_rectangle (&bounding_rectangle);

  meta_window_actor_update_shape (self);

  g_signal_emit (self, signals[SIZE_CHANGED], 0);
}
That way we can recompile muffin with all the optimizations enabled... and no more freeze!!!

Now we can proudly say: Hasta la vista, Harry Potter!
Full time Linux Mint user since 2011 - Currently running LM21C on multiple Dell laptops - mostly Vostro models.

Image Image Image
Gwaro

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by Gwaro »

First time I installed Maya Cinnamon I un-installed it as soon as I started editing my documents in Libreoffice: the system kept freezing on me consistently. I used Ubuntu 12.04 and I was ok with it for some time. But later on I said, I like Mint why not go back and help fix it! I installed it yesternight and guess what I woke up to! A FIX! Am so :D :D :D

PS:I am learning programming and am so much willing to give back to the open source community.
User avatar
kmb42vt
Level 5
Level 5
Posts: 974
Joined: Sun Dec 06, 2009 11:15 am
Location: Vermont
Contact:

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by kmb42vt »

@esteban1uy - I've edited /muffin-1.0.3/src/compositor/meta-window-actor.c, recompiled and installed muffin as per your latest instructions. I can now happily confirm that the freeze is gone. A very fine job of troubleshooting, sir! Lunch and beer is on me should we ever meet. :D
"Humph. Choice, it is the quintessential Linux delusion, simultaneously the source of it's greatest strength, and it's greatest weakness." (All apologies to The Architect)
User avatar
clem
Level 12
Level 12
Posts: 4308
Joined: Wed Nov 15, 2006 8:34 am
Contact:

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by clem »

Fantastic work esteban1uy!

We're getting this reviewed and hopefully then branching off muffin 1.0.3-UP1 to send an update to Mint 13 users (first via romeo and then via main).

After this is done and the problem is fixed in the main repos, we'll also use romeo to provide users with cinnamon 1.5.x builds.
Image
User avatar
clem
Level 12
Level 12
Posts: 4308
Joined: Wed Nov 15, 2006 8:34 am
Contact:

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by clem »

Update notice: muffin 1.0.3-UP2

muffin 1.0.3-UP2 is now available in the romeo section of the repository.

Please update the following packages and leave us your feedback to confirm whether or not this fixes the freeze:

- gir1.2-muffin-3.0
- muffin-common
- libmuffin0
- muffin (not installed by default)
- libmuffin-dev (not installed by default)

To enable "romeo":

- Launch the Update Manager
- Click Edit->Software Sources
- Check the option "Unstable packages (romeo)" and close the window
- Click the "Refresh" button in the Update Manager

Note that muffin 1.0.3-UP2 is designed to work with cinnamon 1.4-UP3 (which is the version of cinnamon which came with Linux Mint 13). If you previously overwrote your cinnamon/muffin versions and are no longer running versions 1.0.3-UP1 and 1.4-UP3, the quickest way to reinstall the proper versions from the repository is to remove the packages and reinstall them:

- apt remove --purge gir1.2-muffin-3.0 muffin-common libmuffin0 muffin libmuffin-dev cinnamon
- apt clean
- apt update
- apt install mint-meta-cinnamon-dvd

Thanks to all involved in reporting feedback about this freeze issue and helping us provide a fix.
Image
thearc77

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by thearc77 »

Clem, i confirm the fix, really in the last days i have this issues in my all devices, now in 3 or 4 where i can test, don't get any freeze!!!

Thank you a lot!
User avatar
SunWorks
Level 4
Level 4
Posts: 239
Joined: Tue Dec 15, 2009 11:30 pm
Location: Minnesota, USA

NOT-Solved: Mint 13 Cinnamon STILL freezing

Post by SunWorks »

Using the nightly build ppa no longer works. The crashes are back and Maya 13 Cinnamon is not stable at all.

Is there anything else to try? Or should I just forget about using Cinnamon on my Thinkpad T60?

I see claims of a cure, but it's not clear what has been done.

Thank you.
palo
Level 4
Level 4
Posts: 476
Joined: Mon Jun 25, 2012 7:28 am
Location: Walking on sunshine

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by palo »

I have been running all of the fixes proposed so far in virtual machines and thought I would report that the "1.4-UP3-noopt" had froze during an upgrade in Synaptic Package Manager though it had passed the LO freeze test.

Pat

Update; Was worried that I would have make some fixes to updates for this but it turns out that although the desktop freeze happened during the middle of downloads all of the updates had installed sucessfully because I let it sit for a long time. Confirmed with /var/log/apt/history.log. So now I know if it freezes during updates - don't panic - let it simmer and take a break. :!:
thearc77

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by thearc77 »

Palo & Sunworks pls read 3 post above!!!!
A Future Pilot

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by A Future Pilot »

SunWorks wrote:Using the nightly build ppa no longer works. The crashes are back and Maya 13 Cinnamon is not stable at all.

Is there anything else to try? Or should I just forget about using Cinnamon on my Thinkpad T60?

I see claims of a cure, but it's not clear what has been done.

Thank you.

Make sure you enable romeo as clem showed, but also you have to run

Code: Select all

sudo apt-get install muffin libmuffin-dev
Last edited by A Future Pilot on Thu Jul 26, 2012 12:53 pm, edited 1 time in total.
palo
Level 4
Level 4
Posts: 476
Joined: Mon Jun 25, 2012 7:28 am
Location: Walking on sunshine

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by palo »

thearc77 wrote:Palo & Sunworks pls read 3 post above!!!!
If you are referring to your post, I did see it. The post I made was for informational purposes. Thank you for posting your results.
User avatar
kmb42vt
Level 5
Level 5
Posts: 974
Joined: Sun Dec 06, 2009 11:15 am
Location: Vermont
Contact:

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by kmb42vt »

@Clem - I can confirm the updated muffin packages (1.0.3 UP2) from "Romeo" fixes the freeze for me on my Thinkpad R61 running 32-bit Maya/Cinnamon. Like you said--good job all around for working on this frustrating problem. Looking forward to see what Cinnamon 1.5 brings (the nightly builds were looking great).
"Humph. Choice, it is the quintessential Linux delusion, simultaneously the source of it's greatest strength, and it's greatest weakness." (All apologies to The Architect)
User avatar
SunWorks
Level 4
Level 4
Posts: 239
Joined: Tue Dec 15, 2009 11:30 pm
Location: Minnesota, USA

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by SunWorks »

ahhh... thank you thank you.
I was once blind and now (it appears) cannot see!

Got it done... will see if this does it.

QUESTION: Do I leave Romeo enabled indefinitely?

thanks again,
clinton
YellowL

Re: [Solved] System freezing - Mint 13 Cinnamon

Post by YellowL »

clem wrote:Update notice: muffin 1.0.3-UP2

muffin 1.0.3-UP2 is now available in the romeo section of the repository.

Please update the following packages and leave us your feedback to confirm whether or not this fixes the freeze:

- gir1.2-muffin-3.0
- muffin-common
- libmuffin0
- muffin (not installed by default)
- libmuffin-dev (not installed by default)

To enable "romeo":

- Launch the Update Manager
- Click Edit->Software Sources
- Check the option "Unstable packages (romeo)" and close the window
- Click the "Refresh" button in the Update Manager

Note that muffin 1.0.3-UP2 is designed to work with cinnamon 1.4-UP3 (which is the version of cinnamon which came with Linux Mint 13). If you previously overwrote your cinnamon/muffin versions and are no longer running versions 1.0.3-UP1 and 1.4-UP3, the quickest way to reinstall the proper versions from the repository is to remove the packages and reinstall them:

- apt remove --purge gir1.2-muffin-3.0 muffin-common libmuffin0 muffin libmuffin-dev cinnamon
- apt clean
- apt update
- apt install mint-meta-cinnamon-dvd

Thanks to all involved in reporting feedback about this freeze issue and helping us provide a fix.
While it works, this update also seems to have dropped/lost gnome-session-cinnamon2d. Is that intentional or will we get that back later?
Locked

Return to “Beginner Questions”