Adium

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#8892 closed defect (fixed)

Leak: Applescript in Status-Message

Reported by: TFS Owned by: evands
Milestone: Adium 1.2.2 Component: AppleScript
Version: Severity: normal
Keywords: AppleScript Status Message Cc: Evan Schoenberg, Matt Handley
Patch Status:

Description

General Info:
When using a Status-Message that contains AppleScript, Adium leaks vast amounts of Memory on my System (~1 - 1.5 MB/min).

System Information:
OS: Leopard
Adium: 1.2
Accounts: 3xICQ, 1xAIM, 1xMSN, 1xYahoo, 1xGTalk
Locale: German

Steps to reproduce

  1. Install the attached Script (Other AppleScripts should also "work")
  2. Go Away and set the Status Message to /intaway
  3. Wait for Adium to gobble up memory ;)

Additional Info:
I can't say for sure, when the Problem appeared for the first time. I only noticed, that my Mac wouldn't wake up from "display sleep" sporadically (requiring a restart). I couldn't even ssh to it, making it hard to pin down the malfunction. So I let TOP run in the background. Today the machine froze again. I looked at the TOP-Output and saw, that Adium took my Memory away ;) . I started noticing the behaviour a few weeks back - I think it was even before the 1.2 Beta's, but I'm not sure.

Attached Files:
Leaks.zip: Leaks Output after 5/10/15/85 Minutes of Adium running with AS-Status.
top.txt.zip: Top Output over several hours. Status-MSG was set at ~8:00
AScript.zip: AppleScript beeing used in my Tests (although any script should work)

Attachments (3)

AScript.zip (4.3 KB) - added by Christian Schwang 12 years ago.
AppleScript beeing used in my Tests. Other's should produce the same behaviour.
top.txt.zip (408.3 KB) - added by Christian Schwang 12 years ago.
Top Output sorted by RSIZE, Sample-Rate: 5 secs. Status set at ~8:00. The last entry indicates the freezing of my Mac.
Leaks.zip (17.0 KB) - added by Christian Schwang 12 years ago.
lks_xxxx: Leaks Output at xxxx local time.

Download all attachments as: .zip

Change History (10)

Changed 12 years ago by Christian Schwang

Attachment: AScript.zip added

AppleScript beeing used in my Tests. Other's should produce the same behaviour.

Changed 12 years ago by Christian Schwang

Attachment: top.txt.zip added

Top Output sorted by RSIZE, Sample-Rate: 5 secs. Status set at ~8:00. The last entry indicates the freezing of my Mac.

Changed 12 years ago by Christian Schwang

Attachment: Leaks.zip added

lks_xxxx: Leaks Output at xxxx local time.

comment:1 Changed 12 years ago by Carlos Morales

Milestone: Adium X 1.2.1

comment:2 Changed 12 years ago by Jordan

Cc: Evan Schoenberg Matt Handley added

comment:3 Changed 12 years ago by Evan Schoenberg

Milestone: Adium X 1.2.1Adium X 1.2.2

comment:4 Changed 12 years ago by Evan Schoenberg

The leaks output demonstrates that it's not a true leak, since the number of leaks doesn't (hardly) increases with time. That doesn't, of course, invalidate the memory issue - it's just that something is being kept around in a way that doesn't look to the system like a leak.

comment:5 Changed 12 years ago by Evan Schoenberg

Owner: changed from nobody to Evan Schoenberg
Status: newassigned

comment:6 Changed 12 years ago by Evan Schoenberg

Resolution: fixed
Status: assignedclosed

(In [22526]) When we receive a distributed notification, any objects added to the autorelease pool won't be released until the next time the program is sent an NSEvent, it appears. We therefore should use a manual autorelease pool around the observer methods to prevent build-up of any autoreleased memory. This fixes a problem in which memory usage would build up over time when an autoupdating status message was in use and Adium was left alone for a long period of time. Fixes #8892

comment:7 Changed 12 years ago by Evan Schoenberg

(In [22527]) Merged [22526]: When we receive a distributed notification, any objects added to the autorelease pool won't be released until the next time the program is sent an NSEvent, it appears. We therefore should use a manual autorelease pool around the observer methods to prevent build-up of any autoreleased memory. This fixes a problem in which memory usage would build up over time when an autoupdating status message was in use and Adium was left alone for a long period of time. Fixes #8892

Note: See TracTickets for help on using tickets.