FahMon (multi-platform app to monitor various F@h clients)

This forum contains information about 3rd party applications which may be of use to those who run the FAH client and one place where you might be able to get help when using one of those apps.

Moderator: Site Moderators

benadderson
Posts: 3
Joined: Tue Jun 17, 2008 9:52 pm

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by benadderson »

Thanks for the clarification, that one had been bugging me for a while!
Image
Oak37
Posts: 21
Joined: Tue Dec 04, 2007 6:21 pm
Hardware configuration: Core2Duo e6420 - Ubuntu 8.04 SMP client
Location: Ireland

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by Oak37 »

Hi,
I came across a weird issue. I had FahMon setup on my Ubuntu 8.04 box and added a third client to monitor on another computer. When I added the location of the third client FahMon crashed and FahMon now crashes as soon as it starts up, the only error it produces is 'Floating point exception' when started through the terminal.

A bit more background info if it helps: Currently my Ubuntu box connects with my WinXP box through Samba, in this case the XP box is acting as the server. On my XP box I am running one instance of the console client and one instance of the GPU client. I'm sharing both folders containing all the relevant folding files which I'm able to browse and access through my Ubuntu box. FahMon worked fine when I added the location of the Console client but when I added the location of the GPU client it crashed and refuses to start up. When I start FahMon it briefly tries to download an updated edition of psummary.html but subsequently crashes. Any ideas? I'm going to try and compile it again, see if that fixes it.

The version is 2.3.2b
Image
uncle_fungus
Site Admin
Posts: 1288
Joined: Fri Nov 30, 2007 9:37 am
Location: Oxfordshire, UK

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by uncle_fungus »

Since you're on Linux you can probably help debug this.

Compile FahMon again, make sure you do not strip the binary (by default it won't), and then launch FahMon through gdb with

Code: Select all

gdb fahmon
Then type run, hit enter and see what happens. If it crashes again, can you send me the output from gdb as this will generally contain the info about what caused the crash.
Oak37
Posts: 21
Joined: Tue Dec 04, 2007 6:21 pm
Hardware configuration: Core2Duo e6420 - Ubuntu 8.04 SMP client
Location: Ireland

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by Oak37 »

uncle_fungus wrote:Since you're on Linux you can probably help debug this.

Compile FahMon again, make sure you do not strip the binary (by default it won't), and then launch FahMon through gdb with

Code: Select all

gdb fahmon
Then type run, hit enter and see what happens. If it crashes again, can you send me the output from gdb as this will generally contain the info about what caused the crash.
Appreciate the help but it was my firewall blocking ports, I didn't think of this because it had been running for the past few days without any errors and I thought I set up the rules on both sides properly, obviously not! Thanks again.
Image
Oak37
Posts: 21
Joined: Tue Dec 04, 2007 6:21 pm
Hardware configuration: Core2Duo e6420 - Ubuntu 8.04 SMP client
Location: Ireland

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by Oak37 »

It turns out it wasn't the firewall. I compiled it again and It's repeating the same behaviour and I've tried numerous firewall options including disabling firewalls on both sides. I did run gdb though although now FahMon is hanging rather than crashing. The 'Downloading New Projects' window appears but then hangs. I ran this numerous times and got two different outputs from gdb. The first one here is when I manually terminated the program:

Code: Select all

Starting program: /usr/local/bin/fahmon 
[Thread debugging using libthread_db enabled]
[New Thread 0x7f269194b780 (LWP 3433)]
[New Thread 0x40bc4950 (LWP 3435)]
[Thread 0x40bc4950 (LWP 3435) exited]
[New Thread 0x40bc4950 (LWP 3436)]
[New Thread 0x413c5950 (LWP 3437)]
[Thread 0x40bc4950 (LWP 3436) exited]
[Thread 0x413c5950 (LWP 3437) exited]

Program terminated with signal SIGKILL, Killed.
The program no longer exists.
The second one is different but I didn't do anything differently:

Code: Select all

Starting program: /usr/local/bin/fahmon 
[Thread debugging using libthread_db enabled]
[New Thread 0x7f396e0f0780 (LWP 3544)]
[New Thread 0x40fa6950 (LWP 3545)]
[New Thread 0x417a7950 (LWP 3546)]
[Thread 0x40fa6950 (LWP 3545) exited]
[New Thread 0x40fa6950 (LWP 3547)]
[Thread 0x417a7950 (LWP 3546) exited]

Program received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0x40fa6950 (LWP 3547)]
0x000000000042b344 in FahLogAnalyzer::AnalyzeLastFrame (
    fahlogComplete=<value optimized out>) at fahlogAnalyzer.cpp:234
234					frameCount = 200 / (((endFrame1.completedSteps - endFrame3.completedSteps) * 100) / endFrame1.totalSteps);
EDIT: I've discovered the problem only occurs when I try to add the GPU client to be monitored, I'm able to monitor the CPU client with no problems.
Image
smartcat99s
Posts: 14
Joined: Sun Dec 02, 2007 7:32 pm

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by smartcat99s »

Oak37 wrote:It turns out it wasn't the firewall. I compiled it again and It's repeating the same behaviour and I've tried numerous firewall options including disabling firewalls on both sides. I did run gdb though although now FahMon is hanging rather than crashing. The 'Downloading New Projects' window appears but then hangs.
I'm hanging on Archlinux (pure x86_64) with 1 SMP client and 1 remote CPU client (cifs mounted to ~/mnt)

Here's the stack I get from svn HEAD compiled less than 30 minutes ago:

Code: Select all

(gdb) run
Starting program: /home/xraytux/projects/fahmon/src/fahmon 
[Thread debugging using libthread_db enabled]
[New Thread 0x7ffb944f9760 (LWP 21970)]
[New Thread 0x41476950 (LWP 21973)]
[New Thread 0x41c77950 (LWP 21974)]
[Thread 0x41476950 (LWP 21973) exited]
[Thread 0x41c77950 (LWP 21974) exited]

^C
Program received signal SIGINT, Interrupt.
[Switching to Thread 0x7ffb944f9760 (LWP 21970)]
0x00007ffb91d06334 in __lll_lock_wait () from /lib/libpthread.so.0
(gdb) info stack
#0  0x00007ffb91d06334 in __lll_lock_wait () from /lib/libpthread.so.0
#1  0x00007ffb91d01c10 in _L_lock_55 () from /lib/libpthread.so.0
#2  0x00007ffb91d0151e in pthread_mutex_lock () from /lib/libpthread.so.0
#3  0x00007ffb927aead9 in wxMutexInternal::Lock () from /usr/lib/libwx_baseu-2.8.so.0
#4  0x000000000045fec9 in ProjectsManager::UpdateDatabase (this=0xba4a30, forced=128, silentMode=32) at /usr/include/wx-2.8/wx/thread.h:176
#5  0x000000000044046f in MainDialog::UpdateClientInformation (this=0xbb3830, clientId=<value optimized out>) at mainDialog.cpp:475
#6  0x0000000000440a8c in MainDialog::ShowClientInformation (this=0xb1bad0, clientId=128) at mainDialog.cpp:303
#7  0x00007ffb927b0d49 in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.8.so.0
#8  0x00007ffb927b1f24 in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#9  0x00007ffb927b2017 in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.8.so.0
#10 0x00007ffb9315e0a9 in wxWindowBase::TryParent () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#11 0x00007ffb9315e0a9 in wxWindowBase::TryParent () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#12 0x00007ffb9315e0a9 in wxWindowBase::TryParent () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#13 0x00007ffb93088e0c in wxListMainWindow::SendNotify () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#14 0x00007ffb93089be2 in wxListMainWindow::HighlightLine () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#15 0x00007ffb93089cf7 in wxListMainWindow::SetItemState () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#16 0x00007ffb93089e60 in wxGenericListCtrl::SetItemState () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#17 0x00000000004312fd in ListViewClients::Sort (this=0xc71270) at /usr/include/wx-2.8/wx/listctrl.h:64
#18 0x0000000000433d50 in ListViewClients::UpdateClient (this=0xc71270, clientId=<value optimized out>) at listViewClients.cpp:751
#19 0x0000000000440bd3 in MainDialog::OnClientReloaded (this=0xbb3830, event=<value optimized out>) at mainDialog.cpp:1163
#20 0x00007ffb927b0d49 in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.8.so.0
#21 0x00007ffb927b1f24 in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#22 0x00007ffb927b2017 in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.8.so.0
#23 0x00007ffb927b11e8 in wxEvtHandler::ProcessPendingEvents () from /usr/lib/libwx_baseu-2.8.so.0
#24 0x00007ffb92721eee in wxAppConsole::ProcessPendingEvents () from /usr/lib/libwx_baseu-2.8.so.0
#25 0x00007ffb930dfdeb in wxAppBase::ProcessIdle () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#26 0x00007ffb9303f444 in wxapp_idle_callback () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#27 0x00007ffb8fbcd7cb in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#28 0x00007ffb8fbd0f9d in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#29 0x00007ffb8fbd115b in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#30 0x00007ffb911138c1 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
#31 0x00007ffb9303f745 in wxApp::Yield () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#32 0x00007ffb927b3673 in wxYieldIfNeeded () from /usr/lib/libwx_baseu-2.8.so.0
#33 0x00007ffb93183679 in wxProgressDialog::UpdateMessage () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#34 0x00007ffb931837e5 in wxProgressDialog::Update () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#35 0x000000000045d7eb in ProgressManager::SetText (this=0x7fff9c666aa0, text=@0x7fff9c666af0) at progressManager.cpp:86
#36 0x000000000045d9ad in ProgressManager::SetTextAndProgress (this=0xb1bad0, text=@0x80, progress=2446366752) at progressManager.cpp:130
#37 0x0000000000460072 in ProjectsManager::UpdateDatabase (this=0xba4a30, forced=<value optimized out>, silentMode=<value optimized out>) at projectsManager.cpp:219
#38 0x000000000044046f in MainDialog::UpdateClientInformation (this=0xbb3830, clientId=<value optimized out>) at mainDialog.cpp:475
#39 0x0000000000440a8c in MainDialog::ShowClientInformation (this=0xb1bad0, clientId=128) at mainDialog.cpp:303
#40 0x00007ffb927b0d49 in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.8.so.0
#41 0x00007ffb927b1f24 in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#42 0x00007ffb927b2017 in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.8.so.0
#43 0x00007ffb9315e0a9 in wxWindowBase::TryParent () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#44 0x00007ffb9315e0a9 in wxWindowBase::TryParent () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#45 0x00007ffb9315e0a9 in wxWindowBase::TryParent () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#46 0x00007ffb93088e0c in wxListMainWindow::SendNotify () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#47 0x00007ffb93089be2 in wxListMainWindow::HighlightLine () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#48 0x00007ffb93089cf7 in wxListMainWindow::SetItemState () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#49 0x00007ffb93089e60 in wxGenericListCtrl::SetItemState () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#50 0x00000000004312fd in ListViewClients::Sort (this=0xc71270) at /usr/include/wx-2.8/wx/listctrl.h:64
#51 0x0000000000433d50 in ListViewClients::UpdateClient (this=0xc71270, clientId=<value optimized out>) at listViewClients.cpp:751
#52 0x0000000000440bd3 in MainDialog::OnClientReloaded (this=0xbb3830, event=<value optimized out>) at mainDialog.cpp:1163
#53 0x00007ffb927b0d49 in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.8.so.0
#54 0x00007ffb927b1f24 in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.8.so.0
#55 0x00007ffb927b2017 in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.8.so.0
#56 0x00007ffb927b11e8 in wxEvtHandler::ProcessPendingEvents () from /usr/lib/libwx_baseu-2.8.so.0
#57 0x00007ffb92721eee in wxAppConsole::ProcessPendingEvents () from /usr/lib/libwx_baseu-2.8.so.0
#58 0x00007ffb930dfdeb in wxAppBase::ProcessIdle () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#59 0x00007ffb9303f444 in wxapp_idle_callback () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#60 0x00007ffb8fbcd7cb in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#61 0x00007ffb8fbd0f9d in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#62 0x00007ffb8fbd14cd in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#63 0x00007ffb91113a17 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#64 0x00007ffb93056a98 in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#65 0x00007ffb930dfc7b in wxAppBase::MainLoop () from /usr/lib/libwx_gtk2u_core-2.8.so.0
#66 0x00007ffb92756cdd in wxEntry () from /usr/lib/libwx_baseu-2.8.so.0
#67 0x000000000043b132 in main (argc=1, argv=0x80) at main.cpp:47
EDIT:

After some GDB debugging (this thing is a beast, it keeps entering the same function multiple times before finishing), it seems like it's deadlocking itself in ProjectsManager::UpdateDatabase.

Here's my GDB session log:

Code: Select all

(gdb) run
Starting program: /home/xraytux/projects/fahmon/src/fahmon 
[Thread debugging using libthread_db enabled]
[New Thread 0x7f9086c60760 (LWP 22375)]
[New Thread 0x4163c950 (LWP 22376)]
[New Thread 0x41e3d950 (LWP 22377)]
[Thread 0x4163c950 (LWP 22376) exited]
[Thread 0x41e3d950 (LWP 22377) exited]
[Switching to Thread 0x7f9086c60760 (LWP 22375)]

Breakpoint 1, ProjectsManager::UpdateDatabase (this=0x16b2d60, forced=false, silentMode=false) at projectsManager.cpp:199
199	bool ProjectsManager::UpdateDatabase(bool forced, bool silentMode)
(gdb) c
Continuing.

Breakpoint 1, ProjectsManager::UpdateDatabase (this=0x16b2d60, forced=false, silentMode=false) at projectsManager.cpp:199
199	bool ProjectsManager::UpdateDatabase(bool forced, bool silentMode)
(gdb) n
176	        { m_isOk = ( m_mutex.Lock() == wxMUTEX_NO_ERROR ); }
(gdb) n
199	bool ProjectsManager::UpdateDatabase(bool forced, bool silentMode)
(gdb) n
204		ProgressManager progressManager(silentMode);
(gdb) n
176	        { m_isOk = ( m_mutex.Lock() == wxMUTEX_NO_ERROR ); }
(gdb) n
further edit:
I killed my ~/.fahmon directory (yes, I saved it for debugging), and things are working...
Image
Trivolve
Posts: 38
Joined: Sat Mar 22, 2008 12:08 pm
Hardware configuration: Core 2 Duo E6300@3.36Ghz/Scythe Ninja Plus
Asus Commando
2x2GB Corsair XMS2 DHX @ 960Mhz 5/5/5/18
Leadtek Nvidia 8800GTS 320mb @ 621/1438/999
2x250GB Seagate 7200.10 RAID 0
Samsung 931BF
Microsoft Wireless Desktop 3000
Location: Singapore

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by Trivolve »

Hi, i was just wondering whether you could add a feature in.

I'm monitoring my FAH clients on a few computers over my wireless network, and sometimes they are off but i want to know their progress, so perhaps instead of the "Something is wrong with this client. Please check the messages (FahMon->Show/Hide Messages Window)." message, you could post the latest version of FAHlog.txt that FAHMON had accessed below that, so that i can track the last update on the computer even if it is off at the current moment. Thanks.
Team 134888 - Team Trivolve.
JWhy
Posts: 21
Joined: Thu Nov 29, 2007 9:42 pm

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by JWhy »

Hello,

I'm wondering if there is a way to select a specific language for FAHMon GUI instead of the default one (apparently based on the OS's regional options) ?

My locale is french (fr_FR) but I would like to display english messages
Is there a proper way to do it (other than deleting my /fr_FR folder, duplicating the /en_GB folder and then renaming it to fr_FR ...which seems to work just fine. ) ?

Thanks,

JY.
edit: Of course, I do not want to change my regional options :)
uncle_fungus
Site Admin
Posts: 1288
Joined: Fri Nov 30, 2007 9:37 am
Location: Oxfordshire, UK

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by uncle_fungus »

In short the answer is no, not the way I'm implementing the language settings. However I know it is possible to allow language selection in wxWidgets apps, so I'll look into it.
JWhy
Posts: 21
Joined: Thu Nov 29, 2007 9:42 pm

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by JWhy »

OK, thanks UF.

Here's what I did :
1/ Quit Fahmon
2/ Rename /fr_FR to /fr_FR.original
3/ Duplicate /en_GB
4/ Rename this copy to /fr_FR and rename the file en_GB.po to fr_FR.po
5/ Start Fahmon

and voilà, it's in English ;)

JY.
Gerby19
Posts: 13
Joined: Wed Jan 30, 2008 9:29 am
Location: Northern Germany

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by Gerby19 »

JWhy wrote:Here's what I did :
1/ Quit Fahmon
2/ Rename /fr_FR to /fr_FR.original
3/ Duplicate /en_GB
4/ Rename this copy to /fr_FR and rename the file en_GB.po to fr_FR.po
5/ Start Fahmon
Hi JY!

You don't need to make a new fr_FR out of en_GB. If FahMon doesn't find the language set up in the OS, it automatically uses English. So steps 1, 2, and 5 are enough. 8-)

Gerby
JWhy
Posts: 21
Joined: Thu Nov 29, 2007 9:42 pm

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by JWhy »

Ah , I didn't know that.
Thanks for the tip :)

JY.
uncle_fungus
Site Admin
Posts: 1288
Joined: Fri Nov 30, 2007 9:37 am
Location: Oxfordshire, UK

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by uncle_fungus »

It depends whether you want British English or US English. The default is US, which you'll get with Gerby19's method.
Russ_64
Posts: 47
Joined: Wed Dec 05, 2007 4:31 pm
Hardware configuration: Dual Xeon E5645 (12C/24T) / 24Gb DDR3 - VMware ESXi 6.7.0
FAH v7.5.1
Location: London, UK

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by Russ_64 »

Any chance that that OSX version will work on the new iPhone 3G? or maybe a port sometime in future?
ImageImageImage
uncle_fungus
Site Admin
Posts: 1288
Joined: Fri Nov 30, 2007 9:37 am
Location: Oxfordshire, UK

Re: FahMon (multi-platform app to monitor various F@h clients)

Post by uncle_fungus »

Not in the near future no, since the wxWidgets toolkit doesn't currently support the iPhone, and I'm not sure that the current FahMon interface is suited for an iPhone.
Post Reply