egghelp.org community Forum Index
[ egghelp.org home | forum home ]
egghelp.org community
Discussion of eggdrop bots, shell accounts and tcl scripts.
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

too many open files

 
Post new topic   Reply to topic    egghelp.org community Forum Index -> Eggdrop Help
View previous topic :: View next topic  
Author Message
devilsoulblack
Halfop


Joined: 19 Nov 2003
Posts: 62
Location: Chile

PostPosted: Fri Sep 24, 2010 9:38 pm    Post subject: too many open files Reply with quote

this happen every day once on a day

that file have chmod 777

Code:

[12:00] Writing channel file...
[12:04] Checking for idle: #ec #quito
[12:09] Checking for idle: #ec #quito
[12:14] Checking for idle: #ec #quito
[12:19] Checking for idle: #ec #quito
[12:24] Checking for idle: #ec #quito
[12:29] Checking for idle: #ec #quito
[12:34] Checking for idle: #ec #quito
[12:39] Checking for idle: #ec #quito
[12:44] Checking for idle: #ec #quito
[12:49] Checking for idle: #ec #quito
[12:54] Checking for idle: #ec #quito
[12:59] Checking for idle: #ec #quito
[12:59] DEOP (#ec): Acanet - Idle: 64 minutes
[12:59] DEOP (#quito): Acanet - Idle: 64 minutes
[13:00] Writing user file...
[13:00] Writing channel file...
[13:04] Checking for idle: #ec #quito
[13:09] Checking for idle: #ec #quito
[13:14] Checking for idle: #ec #quito
[13:19] Checking for idle: #ec #quito
[13:24] Checking for idle: #ec #quito
[13:25] Tcl error [joincounter]: couldn't open "./scripts/#ec.jcount.txt": too many open files
[13:25] Tcl error [record:seened]: couldn't open "bellota.seenrecord.db": too many open files
[13:25] Tcl error [record:join]: couldn't open "bellota.BlackSeen.db": too many open files
[13:26] Tcl error in script for 'timer10305':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10304':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10303':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10302':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10301':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10300':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10299':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10298':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10297':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10296':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10295':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10294':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10293':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10292':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:26] Tcl error in script for 'timer10291':
[13:26] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10328':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10327':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10326':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10325':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10324':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10323':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10322':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10321':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10320':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10319':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10318':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10317':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10316':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10315':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10314':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10313':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10312':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10311':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10310':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10309':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10307':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:27] Tcl error in script for 'timer10306':
[13:27] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:28] Tcl error in script for 'timer10339':
[13:28] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:28] Tcl error in script for 'timer10338':
[13:28] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:28] Tcl error in script for 'timer10337':
[13:28] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:28] Tcl error in script for 'timer10336':
[13:28] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:28] Tcl error in script for 'timer10335':
[13:28] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:28] Tcl error in script for 'timer10334':
[13:28] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:28] Tcl error in script for 'timer10333':
[13:28] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:28] Tcl error in script for 'timer10332':
[13:28] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:28] Tcl error in script for 'timer10331':
[13:28] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:28] Tcl error in script for 'timer10330':
[13:28] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:28] Tcl error in script for 'timer10329':
[13:28] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10357':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10356':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10355':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10354':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10353':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10352':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10351':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10350':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10349':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10348':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10347':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10346':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Checking for idle: #ec #quito
[13:29] Tcl error in script for 'timer10344':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10343':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10342':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10341':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:29] Tcl error in script for 'timer10340':
[13:29] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10375':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10374':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10372':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10371':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10370':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10369':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10368':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10367':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10366':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10365':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10364':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10363':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10362':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10361':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10360':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10359':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:30] Tcl error in script for 'timer10358':
[13:30] couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:32] Tcl error [nicklist:make]: couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:32] Tcl error [joins]: couldn't open "greet(#ec).txt": too many open files
[13:32] Tcl error [joincounter]: couldn't open "./scripts/#ec.jcount.txt": too many open files
[13:32] Tcl error [record:seened]: couldn't open "bellota.seenrecord.db": too many open files
[13:32] Tcl error [record:join]: couldn't open "bellota.BlackSeen.db": too many open files
[13:34] Checking for idle: #ec #quito
[13:34] Tcl error [nicklist:make]: couldn't open "/home/felposa/stats/orenses/nicklist.txt": too many open files
[13:34] Tcl error [joins]: couldn't open "greet(#ec).txt": too many open files
[13:34] Tcl error [joincounter]: couldn't open "./scripts/#ec.jcount.txt": too many open files
[13:34] Tcl error [record:seened]: couldn't open "bellota.seenrecord.db": too many open files
[13:34] Tcl error [record:join]: couldn't open "bellota.BlackSeen.db": too many open files


any idea what ist the reason happen this ?
_________________
---------
Add [SOLVED] to the thread title if your issue has been.
Search - FAQ
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
nml375
Revered One


Joined: 04 Aug 2006
Posts: 2857

PostPosted: Sat Sep 25, 2010 7:33 am    Post subject: Reply with quote

Simply put, you are running low on file descriptors (aka channels), thus you can't create any further until others are free'd.

Usually, this limit is set rather high (1024 channels per process), so I'd suspect that you are using a poorly written script with file descriptor leaks (files opened for reading - but never closed, using the http-package without the neded cleanup, etc).

You could also use the ulimit binary from your shell to investigate the actual cap on file descriptors/channels.
_________________
NML_375, idling at #eggdrop@IrcNET
Back to top
View user's profile Send private message
devilsoulblack
Halfop


Joined: 19 Nov 2003
Posts: 62
Location: Chile

PostPosted: Sat Sep 25, 2010 4:52 pm    Post subject: Reply with quote

nml375 wrote:
Simply put, you are running low on file descriptors (aka channels), thus you can't create any further until others are free'd.

Usually, this limit is set rather high (1024 channels per process), so I'd suspect that you are using a poorly written script with file descriptor leaks (files opened for reading - but never closed, using the http-package without the neded cleanup, etc).

You could also use the ulimit binary from your shell to investigate the actual cap on file descriptors/channels.


i think this ist the tcl make that issues

Code:

# *********************************************************************************************
# Write Channel Nicklist 2 File -- By SpOoK
#
# Used to retrive the channels nicklist so it can be displayed on a webpaged
# Change set channel "#yourchanel" to reflect the channel you want to output the nicklist for.
#
# To set the update time change the value after "timer x make". There are 2 instances of this.
# default update time is now 5 mins
#
# Revisions:
# v1.1 - Added bind controls, nicklist is now generated upon join/kick or nick change.
#      - Nicklist is now sorted alphabetically for oped/voiced/normal users
# v1.0 - Initial Release
# **********************************************************************************************

set ver "1.1"
set dumpfile "/home/felposa/stats/orenses/nicklist.txt"
set channel "#EC"

# Bind Events we want to catch...
# Note: Remove the following 6 lines for timer only update. Reccomended for larger channels.
bind sign - "$channel %" nicklist:make
bind part - "$channel %" nicklist:make
bind splt - "$channel %" nicklist:make
bind join - "$channel %" nicklist:make
bind kick - "$channel %" nicklist:make
bind nick - "$channel %" nicklist:make

if {![info exists nicklist_running]} {   
    timer 5 nicklist:make                     
    set nicklist_running 1                 
  }                                   

proc nicklist:make {args} {

global dumpfile channel botnick

set nicklist [chanlist $channel]
set nicklist [lsort -dictionary [lrange $nicklist 0 end]]

set templist ""
set oplist ""
set voicelist ""
set userlist ""

set outputfile [open $dumpfile w]

foreach user $nicklist {
    if {([isop $user $channel])} {
       lappend oplist $user
       } elseif {([isvoice $user $channel])} {
       lappend voicelist $user
       } else {
       lappend userlist $user
   }
}


foreach chanlistnicks "\{$oplist\} \{$voicelist\} \{$userlist\}" {
            foreach usernick $chanlistnicks {
                if {[isop $usernick $channel]} {set control "@"} {set control ""}
                if {[isvoice $usernick $channel]} {set control "+"}
                    puts $outputfile $control$usernick
  }
}

close $outputfile

#putlog "Saving $channel NickList..."
timer 5 nicklist:make
return 1
}

putlog "Write Channel Nicklist to File v$ver by SpOoK loaded."

_________________
---------
Add [SOLVED] to the thread title if your issue has been.
Search - FAQ
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
speechles
Revered One


Joined: 26 Aug 2006
Posts: 1398
Location: emerald triangle, california (coastal redwoods)

PostPosted: Sat Sep 25, 2010 6:38 pm    Post subject: Reply with quote

Here's a better version indented properly:
Code:
set ver "1.1"
set dumpfile "/home/felposa/stats/orenses/nicklist.txt"
set channel "#EC"

# Bind Events we want to catch...
# Note: Remove the following 7 lines for timer only update. Reccomended for larger channels.
bind sign - "$channel %" nicklist:make
bind part - "$channel %" nicklist:make
bind splt - "$channel %" nicklist:make
bind join - "$channel %" nicklist:make
bind kick - "$channel %" nicklist:make
bind nick - "$channel %" nicklist:make
bind mode - "$channel %" nicklist:make

if {![info exists nicklist_running]} {   
   timer 5 nicklist:make                     
   set nicklist_running 1                 
}                                   

proc nicklist:make {args} {

   global dumpfile channel botnick

   set nicklist [chanlist $channel]
   set nicklist [lsort -dictionary $nicklist]

   set oplist [list]
   set voicelist [list]
   set userlist [list]

   set outputfile [open $dumpfile w]

   foreach user $nicklist {
      if {([isop $user $channel])} {
         lappend oplist "@$user"
      } elseif {([isvoice $user $channel])} {
         lappend voicelist "+$user"
      } else {
         lappend userlist $user
      }
   }


   set chanlistnicks [concat $oplist $voicelist $userlist]
   puts $outputfile [join $chanlistnicks "\n"]

   close $outputfile
   
   putlog "Saved $channel NickList..."
   timer 5 nicklist:make
}

putlog "Write Channel Nicklist to File v$ver by SpOoK loaded."

_________________
speechles' eggdrop tcl archive
Back to top
View user's profile Send private message
thommey
Halfop


Joined: 01 Apr 2008
Posts: 73

PostPosted: Sat Sep 25, 2010 8:18 pm    Post subject: Reply with quote

That script doesn't look like it's leaking file handles. But it also shows in your logfile more than once every 5 minutes which shouldn't happen. Did you try to ".restart" the bot? Do you have this script loaded multiple times? Copied to handle multiple channels maybe?

If you're desperate to find what's leaking file handles, load this script:
Code:

bind dcc n fileinfo tellfileinfo
proc tellfileinfo {hand idx text} {
    if {$text eq ""} {
        foreach f [file channels] {
            if {![string match file* $f]} { continue }
            catch {tellfileinfo $hand $idx $f}
        }
    } else {
        set f $text
        putdcc $idx "Filesock $f -> [file normalize [handle2file $f]]. Opened by \[[handle2opener $f]\]"
    }
}

if {![info exists ::opentrace]} {
    # add the 2 traces. one to 'open', one to 'close'.
    trace add execution open leave tracer_open
    trace add execution close leave tracer_close
    set ::opentrace 1
}

#procedure to lookup <socket> to <filename> (or commandname if piped)
# Usage: handle2file fileXXXX
# Example: "handle2file [open randomfile w]" should return "randomfile"
# (close the file afterwards :)
proc handle2file {handle} {
    if {![info exists ::openfiles($handle)]} {
        error "File handle not found"
    } else {
        return [lindex $::openfiles($handle) 0]
    }
}

#procedure to lookup <socket> to <procedure which initially called open>
proc handle2opener {handle} {
    if {![info exists ::openfiles($handle)]} {
        error "File handle not found"
    } else {
        return [lindex $::openfiles($handle) 1]
    }
}

# tracer_open "open <filename> ?mode?" 0/1 "file..." leave
proc tracer_open {cmdstr rescode resstr op} {
    # there was an error, file wasn't really opened
    if {$rescode} { return }
    # check if it was a filesocket
    if {[string match file* $resstr]} {
        # add handle with corresponding filename to array
        if {[catch {info level -1} caller]} { set caller -global- }
        set ::openfiles($resstr) [list [lindex [split $cmdstr] 1] $caller]
    }
}

# tracer_close "close <handle>" 0/1 "" leave
proc tracer_close {cmdstr rescode resstr op} {
    set handle [lindex [split $cmdstr] 1]
    # there was an error or I don't know about that handle
    if {$rescode || ![info exists ::openfiles($handle)]} { return }
    # remove handle from array
    unset ::openfiles($handle)
}

, restart the bot, wait some time, and check .fileinfo every now and then to see which tcl procedure is opening which file and not closing it.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    egghelp.org community Forum Index -> Eggdrop Help All times are GMT - 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Forum hosting provided by Reverse.net

Powered by phpBB © 2001, 2005 phpBB Group
subGreen style by ktauber