aMule Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

We're back! (IN POG FORM)

Author Topic: 100% CPU load upgrading amuled from 2.2.5 to 2.2.6  (Read 5535 times)

Menion

  • Jr. Member
  • **
  • Karma: 0
  • Offline Offline
  • Posts: 95
  • Winter is coming...
100% CPU load upgrading amuled from 2.2.5 to 2.2.6
« on: December 28, 2009, 12:01:53 AM »

Hi guys, I had aMuled 2.2.5 powerPC got from Debian repository unstable, running fine on my Kurobox. Then I decided to upgrade to 2.2.6 selfcompiling it as it hasn't been released in Debian repository yet. So I downloaded all the "-dev" packages. WxBase is 2.8.10 plus all the lates libreries needed. I also downloaded gettext. Configure was ok, so I went through the compilation. The problem is that now aMule 2.2.6 is taking 100% of the CPU if I have the (only) uncompleted file from the 2.2.5 left in the Temp directory
I haven't changed anything in the .conf file and as I said I came from the 2.2.5 prefectly running to the 2.2.6 with 100% CPU load.
If I remove the part file, so basically I don't have anything neither in Temp, neither in Incoming the 2.2.6 seems to be ok.
This file is 7.4Gb big, I left amuled running for 3 hours in case it was reparsing it but the CPU is still 100% and in the logfile there is no entry about any rehashing...
The library I'm running with are exactly the same of the 2.2.5, EXCEPT for the gettext which wasn't installed by Debian with the 2.2.5 so I guess it wasn't compiled with the gettext support...
In the past I got a lot of these 100% CCPU load upgrading from version to version, but I thought it was due to some .conf file, but in this case it is 100% clear that the problem is with the file left in Temp
Any clue? Is it possible that gettext is messing it up?
Bye
Logged

Stu Redman

  • Administrator
  • Hero Member
  • *****
  • Karma: 214
  • Offline Offline
  • Posts: 3739
  • Engines screaming
Re: 100% CPU load upgrading amuled from 2.2.5 to 2.2.6
« Reply #1 on: December 28, 2009, 12:07:51 AM »

Try to compile 2.2.5 in the same environment. I guess it will behave the same.
What happens if you remove the partfile and then restart the download?
Is it working (apart from taking 100% CPU) - can you connect with remote gui?
Logged
The image of mother goddess, lying dormant in the eyes of the dead, the sheaf of the corn is broken, end the harvest, throw the dead on the pyre -- Iron Maiden, Isle of Avalon

Vollstrecker

  • Administrator
  • Hero Member
  • *****
  • Karma: 67
  • Offline Offline
  • Posts: 1546
  • Unofficial Debian Packager
    • http://vollstreckernet.de
Re: 100% CPU load upgrading amuled from 2.2.5 to 2.2.6
« Reply #2 on: December 28, 2009, 11:23:41 AM »

The gettext can't be the problem, because amule doesn't link against it. It's just used to create the localisation files. If the file you are downloading is the problem, try to move it out of your temp, and then import it. Maybe then you'll get told what the problem is.

Btw 2.2.6 get's uploaded to unstable this night, so maybe this works for you again.
« Last Edit: December 28, 2009, 11:26:05 AM by Vollstrecker »
Logged
Homefucking is killing prostitution

Menion

  • Jr. Member
  • **
  • Karma: 0
  • Offline Offline
  • Posts: 95
  • Winter is coming...
Re: 100% CPU load upgrading amuled from 2.2.5 to 2.2.6
« Reply #3 on: December 28, 2009, 12:08:26 PM »

Hi, I've compiled 2.2.5 with the same result, 100% CPU load... Then I tried to figure out when this problem happens, and I found that only after I connect to a server I start to have the 100% CPU usage. Apart from that, amuled is "working", even uploading and downloading, but it doesn't respond (or responds slowly) to amuleweb request.
If I remove the part file and restart the download it seems to be ok, but I haven't waited to download some chunks to see if the problem happens again.
I'll try the Debian one also, in the meanwhile, how could I import part file without any GUI tools?
Bye
Logged

Stu Redman

  • Administrator
  • Hero Member
  • *****
  • Karma: 214
  • Offline Offline
  • Posts: 3739
  • Engines screaming
Re: 100% CPU load upgrading amuled from 2.2.5 to 2.2.6
« Reply #4 on: December 28, 2009, 01:40:17 PM »

My crystal ball suggests "your runtime library has problems with large file support causing aMule to hash forever". But that's just a wild guess.
Logged
The image of mother goddess, lying dormant in the eyes of the dead, the sheaf of the corn is broken, end the harvest, throw the dead on the pyre -- Iron Maiden, Isle of Avalon

Menion

  • Jr. Member
  • **
  • Karma: 0
  • Offline Offline
  • Posts: 95
  • Winter is coming...
Re: 100% CPU load upgrading amuled from 2.2.5 to 2.2.6
« Reply #5 on: December 28, 2009, 01:54:25 PM »

I don't think so because I'm using exactly the same WX libraries (shared not static) the Debian 2.2.5 is using, because when I downloaded the "-dev" packages I hadn't to upgrade the libreries themself.
I tried also to run Metfileregenerator, without success...
This is my configure output:

Quote

  Configure script has finished system check.

  Configured aMule 2.2.5 for 'powerpc-unknown-linux-gnu'.

  aMule enabled options:

  **** aMule Core ****
  Prefix where aMule should be installed?                    /usr
  Should aMule be compiled with i18n support?                yes
  Should aMule be compiled in debug mode?                    yes
  Should aMule be compiled with profiling?                   no
  Should aMule be compiled with optimizations?               no
  Should aMule be compiled with UPnP support?                yes
  Should aMule be compiled with IP2country support?          no
  Should aMule monolithic application be built?              no
  Should aMule daemon version be built?                      yes
  Should aMule remote gui be built? (EXPERIMENTAL)           no
  Crypto++ library/headers style?                            installed

  **** aMule TextClient ****
  Should aMule Command Line Client be built?                 yes

  **** aMule WebServer ****
  Should aMule WebServer be built?                           yes

  **** aMule ED2K Links Handler ****
  Should aMule ED2K Links Handler be built?                  yes

  **** aMuleLinkCreator ****
  Should aMuleLinkCreator GUI version (alc) be built?        no
  Should aMuleLinkCreator for console (alcc) be built?       no

  **** aMule Statistics ****
  Should C aMule Statistics (CAS) be built?                  no
  Should aMule GUI Statistics (wxCas) be built?              no

  **** General Libraries and Tools ****
  Should ccache support be enabled?                          no
  Libraries aMule will use to build:
                                       wxWidgets             2.8.10 (,shared)
                                       crypto++              5.6.0 (installed, in /usr)
                                       libupnp               1.6.6
                                       regex                 system
                                       libintl               system
                                       libpng                1.2.41
                                       zlib                  1.2.3.3

and this is the logfile

Quote
2009-12-28 13:47:43: amule.cpp(605): Starting aMuled 2.2.5 using  v2.8.10
2009-12-28 13:47:44: ClientCreditsList.cpp(168): Creditfile loaded, 2934 clients are known
2009-12-28 13:47:44: IPFilter.cpp(109): Loading IP-filters 'ipfilter.dat' and 'ipfilter_static.dat'.
2009-12-28 13:47:44: IPFilter.cpp(334): Loaded 0 IP-ranges from '/home/menion/.aMule/ipfilter.dat'. 0 malformed lines we
re discarded.
2009-12-28 13:47:44: IPFilter.cpp(334): Loaded 0 IP-ranges from '/home/menion/.aMule/ipfilter_static.dat'. 0 malformed l
ines were discarded.
2009-12-28 13:47:44: ExternalConn.cpp(159): *** TCP socket (ECServer) listening on 0.0.0.0:4712
2009-12-28 13:47:44: MuleUDPSocket.cpp(81): Created Server UDP-Socket at port 4665
2009-12-28 13:47:44: MuleUDPSocket.cpp(81): Created Client UDP-Socket at port 4672
2009-12-28 13:47:44: UPnPBase.cpp(868): Universal Plug and Play: bound to 192.168.1.4:50000.
2009-12-28 13:47:47: UPnPBase.cpp(1225): Universal Plug and Play: Internet Gateway Device Detected.
2009-12-28 13:47:47: UPnPBase.cpp(545): Universal Plug and Play: WAN Service Detected: 'urn:schemas-upnp-org:service:WAN
PPPConnection:1'.
2009-12-28 13:47:47: UPnPBase.cpp(1529): Universal Plug and Play: Successfully retrieved SCPD Document for service urn:s
chemas-upnp-org:service:WANPPPConnection:1, absEventSubURL: http://192.168.1.1:5431/uuid:0000e0b8-20a0-00e0-c0a0-4818020
86048/WANPPPConnection:1.
2009-12-28 13:47:47: UPnPBase.cpp(1543): Universal Plug and Play: Successfully subscribed to service urn:schemas-upnp-or
g:service:WANPPPConnection:1, absEventSubURL: http://192.168.1.1:5431/uuid:0000e0b8-20a0-00e0-c0a0-481802086048/WANPPPCo
nnection:1.
2009-12-28 13:47:47: UPnPBase.cpp(562): Universal Plug and Play: Uninteresting service detected: 'urn:schemas-upnp-org:s
ervice:WANCommonInterfaceConfig:1'. Ignoring.
2009-12-28 13:47:47: UPnPBase.cpp(562): Universal Plug and Play: Uninteresting service detected: 'urn:schemas-upnp-org:s
ervice:Layer3Forwarding:1'. Ignoring.
2009-12-28 13:47:47: UPnPBase.cpp(1225): Universal Plug and Play: Internet Gateway Device Detected.
2009-12-28 13:47:47: UPnPBase.cpp(1458): Universal Plug and Play: UPNP_EVENT_RECEIVED:
    SID: uuid:31e25cca-1dd2-11b2-85e9-d1ee53cfb540
    Key: 0
    Property list:
        PossibleConnectionTypes='Unconfigured,IP_Routed,DHCP_Spoofed,PPPoE_Bridged,PPTP_Relay,L2TP_Relay,PPPoE_Relay'
        ConnectionStatus='Connected'
        ExternalIPAddress='151.15.14.208'
        PortMappingNumberOfEntries='8'
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("PortMappingNumberOfEntries"):
in a call to UpnpGetServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("ConnectionType"): in a call to
 UpnpGetServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("PossibleConnectionTypes"): in
a call to UpnpGetServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("ConnectionStatus"): in a call
to UpnpGetServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("Uptime"): in a call to UpnpGet
ServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("LastConnectionError"): in a ca
ll to UpnpGetServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("RSIPAvailable"): in a call to
UpnpGetServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("NATEnabled"): in a call to Upn
pGetServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("ExternalIPAddress"): in a call
 to UpnpGetServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("PortMappingNumberOfEntries"):
in a call to UpnpGetServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("PortMappingLeaseDuration"): in
 a call to UpnpGetServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: UPnPBase.cpp(139): Universal Plug and Play: Error: GetStateVariable("PortMappingNumberOfEntries"):
in a call to UpnpGetServiceVarStatus: Error code :'401', Error description :'Invalid Action'.
2009-12-28 13:47:47: ServerList.cpp(84): Loading server.met file: /home/menion/.aMule/server.met
2009-12-28 13:47:47: ServerList.cpp(169): 147 servers in server.met found
2009-12-28 13:47:50: DownloadQueue.cpp(171): Found 1 part file
2009-12-28 13:47:50: SharedFileList.cpp(352): Found 1 known shared file
2009-12-28 13:47:51: amule.cpp(846): web server running on pid 2921
2009-12-28 13:47:51: Logger.cpp(275): Deleted stale lock file '/home/menion/.aMule/muleLock'.
2009-12-28 13:47:51: ExternalConn.cpp(217): New external connection accepted
2009-12-28 13:47:51: ExternalConn.cpp(251): Connecting client: aMuleweb 2.2.5
2009-12-28 13:47:51: ExternalConn.cpp(306): Access granted.
2009-12-28 13:47:51: ThreadScheduler.cpp(308): ThreadScheduler: Completed task 'AICH Syncronizing', 0 tasks remaining.
2009-12-28 13:49:12: ServerSocket.cpp(754): Connecting to eDonkeyServer No2 (129.47.160.193 - 129.47.160.193:4661)
2009-12-28 13:49:12: ServerConnect.cpp(190): Connected to eDonkeyServer No2 (129.47.160.193:4661)
2009-12-28 13:49:14: ServerConnect.cpp(263): Connection established on: eDonkeyServer No2
2009-12-28 13:49:14: Connected to eDonkeyServer No2 with HighID
2009-12-28 13:49:14: ServerSocket.cpp(417): New clientid is 3490582423
2009-12-28 13:49:14: ServerMessage: server version 17.16 (lugdunum)
2009-12-28 13:49:14: ServerMessage: -
Logged

Menion

  • Jr. Member
  • **
  • Karma: 0
  • Offline Offline
  • Posts: 95
  • Winter is coming...
Re: 100% CPU load upgrading amuled from 2.2.5 to 2.2.6
« Reply #6 on: December 28, 2009, 02:15:13 PM »

I can debug it to check where is running all the time, the problem is that I'm completly unfamiliar with gdb and I need an help:

After I run the amuled within gdb, how I can take back the control of the shell? Now It is taken by amuled itself and I can't issue any gdb command

Well, I figured it out, this is the backtrace I got

#0  0x0f65e370 in __gnu_debug::_Safe_iterator_base::_M_detach() () from /usr/lib/libstdc++.so.6
#1  0x1002a6d0 in ~_Safe_iterator_base (this=0xbfb9429c, __in_chrg=<value optimized out>)
    at /usr/include/c++/4.4/debug/safe_base.h:105
#2  0x10175d0c in ~_Safe_iterator (this=0xbfb9429c, __in_chrg=<value optimized out>)
    at /usr/include/c++/4.4/debug/safe_iterator.h:64
#3  0x1034fe30 in CPartFile::IsComplete (this=0x10946b68, start=3677184000, end=3686911999) at PartFile.cpp:4026
#4  0x1033d640 in CPartFile::WritePartStatus (this=0x10946b68, file=0xbfb943c0) at PartFile.cpp:1434
#5  0x100d3260 in CUpDownClient::SendFileRequest (this=0x109f9e48) at DownloadClient.cpp:234
#6  0x1005a474 in CUpDownClient::ConnectionEstablished (this=0x109f9e48) at BaseClient.cpp:1646
#7  0x10058b7c in CUpDownClient::TryToConnect (this=0x109f9e48, bIgnoreMaxCon=false) at BaseClient.cpp:1438
#8  0x100d2bc4 in CUpDownClient::AskForDownload (this=0x109f9e48) at DownloadClient.cpp:157
#9  0x1033e054 in CPartFile::Process (this=0x10946b68, reducedownload=0, m_icounter=10 '\n') at PartFile.cpp:1568
#10 0x100ed328 in CDownloadQueue::Process (this=0x109110e8) at DownloadQueue.cpp:401
#11 0x1003e5d0 in CamuleApp::OnCoreTimer (this=0x107a9cd8) at amule.cpp:1441
#12 0x0f799e1c in wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const ()
   from /usr/lib/libwx_baseu-2.8.so.0
#13 0x0f855104 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
   from /usr/lib/libwx_baseu-2.8.so.0
#14 0x0f856870 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from /usr/lib/libwx_baseu-2.8.so.0
#15 0x0f856a30 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
#16 0x0f855828 in wxEvtHandler::ProcessPendingEvents() () from /usr/lib/libwx_baseu-2.8.so.0
#17 0x0f79a2ec in wxAppConsole::ProcessPendingEvents() () from /usr/lib/libwx_baseu-2.8.so.0
#18 0x10027dc8 in CamuleDaemonApp::OnRun (this=0x107a9cd8) at amuled.cpp:649
#19 0x0f7df8a8 in wxEntry(int&, wchar_t**) () from /usr/lib/libwx_baseu-2.8.so.0
#20 0x0f7dfb48 in wxEntry(int&, char**) () from /usr/lib/libwx_baseu-2.8.so.0
#21 0x100253f8 in main (argc=1, argv=0xbfb94d84) at amuled.cpp:171


« Last Edit: December 28, 2009, 02:29:35 PM by Menion »
Logged

Stu Redman

  • Administrator
  • Hero Member
  • *****
  • Karma: 214
  • Offline Offline
  • Posts: 3739
  • Engines screaming
Re: 100% CPU load upgrading amuled from 2.2.5 to 2.2.6
« Reply #7 on: December 28, 2009, 02:41:10 PM »

You should always configure with optimization, maybe that was the difference to your running 2.2.5 . CPartFile::WritePartStatus is very inefficient in 2.2 for large files with many gaps (as your big download might well have).
Logged
The image of mother goddess, lying dormant in the eyes of the dead, the sheaf of the corn is broken, end the harvest, throw the dead on the pyre -- Iron Maiden, Isle of Avalon

Menion

  • Jr. Member
  • **
  • Karma: 0
  • Offline Offline
  • Posts: 95
  • Winter is coming...
Re: 100% CPU load upgrading amuled from 2.2.5 to 2.2.6
« Reply #8 on: December 28, 2009, 05:06:59 PM »

I added "--disable-debug --enable-optimize" and now it works :)
Thank you all for the support, I would recommend to add this in the wiki
Bye
Logged