Skip to main content
Participant
December 8, 2006
Question

Assert Failed TCProcess

  • December 8, 2006
  • 3 replies
  • 376 views
Our FMS2 stopped responding to incoming requests today. Looking in all the edge.*.log files, they are flooded with this line:

Assert failed in /util/TCProcess.cpp line 609

any ideas what this is about? I had to restart FMS to get it to accept connections again.

Linux: 2.6.17-1.2142_FC4smp
    This topic is closed to new replies. Start a new post to keep the conversation going.

    3 replies

    December 11, 2006
    Your FMS will create a connection when it's ordered to do so.

    Unfortunately sometimes connections can timeout and stay there forever ; keeping valuable resources busy. In my humble opinion FMS is leaking memory and connections in many parts of perfectly correct user-code. To prevent FMS from leaking you should make sure you clearup, close and delete objects that are related to external scripts as often as possible. This will improve the stability of your server(s).
    dr_macAuthor
    Participant
    December 11, 2006
    yes. our apps are heavy use with AMFPHP to handle all our database<->flash interaction. But we run an apache process on each FMS server for localhost access only. Meaning the local FMS apps contact localhost to access/instance AMFPHP.

    It was my understanding that this connection gets instanced only once when the app loads. Am I wrong?

    thanks.
    December 10, 2006
    It happens sometimes on our FMS too. So it's certainly not some specific error in your application(s). Some ppl recommended to set the application variable "reuse" from true to false (check your xml configfiles) but in our case it didn't help us a bit.

    Some suggested that the amount of tcp-connections / sockets on the server would be "full" but that would need about 60.000+ connections and guess what ; netstat didn't show more than 200 at a time (in our case).

    Does you app use a lot of external scripting (e.g. calling external xml-files or scripts?) Do you clear those outgoing objects ? You can by issuing "obj = null;" and then "delete obj;" but be warned for circular references (closures) ; in those cases you think you deleted an object but in fact it's still in memory and -maybe- reserving an tcp-slot so in the end the FMS might run out of free sockets. This is however more a conspiracy-plot-theory than scientific based reverse-engineering :)