However, as explained above I can't reproduce the problem myself so I need users to test this fix. You can either download the binaries below or checkout the latest SVN revision. (98 or 99 is fine)
Still had some hangs with r99, but BitcoinPool just had some hiccups, so I'm not entirely sure where fault is yet. I threw a few coins in your general direction for the effort, though.
I'm currently using a little script to ensure Phoenix is not slacking off. Maybe it's of interest to others until this gets resolved, wherever the bug is:
#!/usr/bin/python2.7
# Run Phoenix in a loop with 'while true; do ./phoenix yada-yada-yada; echo; done'
# and this script in a separate shell to kill the currently running Phoenix instance
# when GPU load goes below set threshold for set amount of time (default under 50%
# for 30 seconds). Intended for use with one ATI GPU and one Phoenix instance.
import re
import signal
from subprocess import check_output
from os import kill
from time import sleep, strftime, localtime
interval = 1
numsamples = 30
threshold = 50
samples = []
loadreg = re.compile('GPU load :\s+(\d+)')
pidreg = re.compile('(\d+) .* phoenix.py')
while (True):
res = check_output(['aticonfig', '--odgc'])
samples.append(int(loadreg.findall(res)[0]))
if (len(samples) > numsamples):
del samples[0]
if (max(samples) < threshold):
res = check_output(['ps', '-a'])
for pid in pidreg.findall(res):
print '%s Max GPU load is below %d%%, killing %s' % (strftime('%Y-%m-%d %H:%M:%S', localtime()), threshold, pid)
kill(int(pid), signal.SIGINT)
samples = []
sleep(interval)