Apache-childeren lijken continue te crashen.

Pagina: 1
Acties:

  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
Ik heb een probleem wat waarschijnlijk al langer speelt en ik kom er niet meer uit (softwarematig dan).

Ik heb een Pentium(R) D CPU 3.20GHz (duocore) 64 bit Ubuntu installatie.
Ik draai Apache 2 met php 5.2.1
Ik heb hier meerdere virtual hosts op te draaien.

Nu had ik al sinds het begin van de server het webmail pakket roundcube-webmail geinstalleerd, als ik dan wil inloggen, moest ik soms 2-5 keer refreshen van een blanco pagina voordat het login-scherm tevoorschijn komt.
Ik dacht toen dat het pakket eventueel nog wat buggy was, ik kwam het ook wel tegen op google omtrent dit pakket. Dit vond ik geen probleem verders.

Nu is het sinds kort ook op mijn eigen geprogrammeerde websites en soms moet men wel tot 10-12 keer refreshen voordat er beeld komt.

Ik heb afgelopen week gigantisch veel gezocht want uiteraard twijfelde ik aan mijn eigen script-werk, er valt ook veel te vinden op php5 met segfaults.

Om nu vast te stellen wat de oorzaak is heb ik geprobeerd met een debugger dingen na te gaan, maar ervaring heb ik er niet mee. Ik had op google gevonden dat je dat met:

code:
1
strace -f -p <bestaand pidnummer>


kon doen, daar komt uit op het einde:

code:
1
2
3
4
5
6
7
8
9
10
11
[pid 18878] open("/var/lib/php5/sess_61d58fbce829c697dc7c65c24655b7cf", O_RDWR|O_CREAT, 0600) = 12
[pid 18878] flock(12, LOCK_EX)          = 0
[pid 18878] fcntl(12, F_SETFD, FD_CLOEXEC) = 0
[pid 18878] fstat(12, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
[pid 18878] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 18878] chdir("/etc/apache2")       = 0
[pid 18878] rt_sigaction(SIGSEGV, {SIG_DFL}, {SIG_DFL}, 8) = 0
[pid 18878] kill(18878, SIGSEGV)        = 0
[pid 18878] rt_sigreturn(0x49be)        = -1180436528
[pid 18878] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
Process 18878 detached


Daar kun je aan herleiden dat hij crashed na het openen van een sessie file. Als je hier weer op google zoekt dan vind je van alles zoals:

http://aspn.activestate.c...l/Message/php-dev/3674332

Dit zou bijvoorbeeld een invalide session save path zijn. Ik heb zelf een standaard save path (/var/lib/php5). Ook de rechten staan bijvoorbeeld goed, ik draai de webserver onder www-data en zo staan de sessiebestanden ook (-rw-------).

Het opnieuw installeren van php5 heeft ook niet geholpen...

Ik heb nu net uit pure wanhoop eens geprobeerd van 1 website de sessies in een eigen map op te slaan. Dit wacht ik nog even af...

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 02:55
Heb je iets meer informatie?

Welke apache mpm gebruik je, zelf gecompileerd of uit distro pakketjes, etc.

  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 19:27

leuk_he

1. Controleer de kabel!

de error code die de open terug geeft =12 , "error no memory. in errno.h"

Ik weet niet of dat helpt..


nopem dat id de fd... sorry.

[ Voor 15% gewijzigd door leuk_he op 10-11-2008 10:34 ]

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
Sorry hier inderdaad nog wat aanvullende informatie:

Ik draai linux Ubuntu (upgrade van een 6.x serie) 7.04 64 bit (Linux server 2.6.15-26-amd64-server)

Alles komt uit de apt-get, later heb ik nog eens php5 vanaf de source gecompiled vanwege dit probleem, maar ook vanwege php5-gd (shared-gd uitgezet vanwege restricties) Er was geen verschil na deze versie.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
##
## Server-Pool Size Regulation (MPM specific)
## 

# prefork MPM
# StartServers ......... number of server processes to start
# MinSpareServers ...... minimum number of server processes which are kept spare
# MaxSpareServers ...... maximum number of server processes which are kept spare
# MaxClients ........... maximum number of server processes allowed to start
# MaxRequestsPerChild .. maximum number of requests a server process serves
<IfModule prefork.c>
MaxClients          60
</IfModule>

# pthread MPM
# StartServers ......... initial  number of server processes to start
# MaxClients ........... maximum  number of server processes allowed to start
# MinSpareThreads ...... minimum  number of worker threads which are kept spare
# MaxSpareThreads ...... maximum  number of worker threads which are kept spare
# ThreadsPerChild ...... constant number of worker threads in each server process
# MaxRequestsPerChild .. maximum  number of requests a server process serves
<IfModule worker.c>
StartServers         2
MaxClients         150 
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

# perchild MPM
# NumServers ........... constant number of server processes
# StartThreads ......... initial  number of worker threads in each server process
# MinSpareThreads ...... minimum  number of worker threads which are kept spare
# MaxSpareThreads ...... maximum  number of worker threads which are kept spare
# MaxThreadsPerChild ... maximum  number of worker threads in each server process
# MaxRequestsPerChild .. maximum  number of connections per server process (then it dies)
<IfModule perchild.c>
NumServers           5
StartThreads         5
MinSpareThreads      5
MaxSpareThreads     10
MaxThreadsPerChild  20
MaxRequestsPerChild  0
AcceptMutex fcntl
</IfModule>


EDIT:

ik had domein X op een eigen phpsessie dir gezet, pagina laden gaf blank page (is segfault) na 12 keer herladen zijn er ook 12 sessie bestanden aangemaakt in de sessie map. Als je eenmaal de website er wél voor krijgt is het goed...

Deze inlog code met sessies is niet eens van mezelf, en op een andere server maak ik er al jaren gebruik van zonder deze problemen...

[ Voor 7% gewijzigd door M4RTiN op 10-11-2008 10:52 ]


  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 02:55
Let wel op dat code die al jaren werkt met PHP4 niet per se goed hoeft te werken met PHP5. Ik weet van Roundcube dat de laatste versies PHP5 vereisen, als je een beetje recente roundcube gebruikt moet dat gewoon werken met PHP5.

  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
Dat snap ik zeker, alleen ik vind een segfault wel heel erg crú, daar komt bij dat ik net ondervind dat phpmadmin er ook last van heeft. 5 keer refreshen totdat ik beeld heb, daarna is het goed.

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 02:55
Gebruik je ook dingen als Zend optimizer of bepaalde andere optimizers?

  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
Heel slim, daar had ik ook al segfaults op gevonden op google, maar ik gebruik ze zelf niet nee.

Ik heb trouwens nu voor wat website's in kwestie de php sessie dir en de error.log van apache appart opgeslagen. De segfault melding komt nog steeds in de 'main' error.log voor. Klopt het dat segfaults niet per virtual hosts wordt bewaard?

[ Voor 150% gewijzigd door M4RTiN op 10-11-2008 15:05 ]


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 17:26

Kees

Serveradmin / BOFH / DoC
Nee, segfaults zijn niet echt vhost gebonden want ze knallen een child van het main process echt helemaal af. Ik weet niet hoe druk je site is, maar het kan heel erg veel oorzaken hebben. Met tweakers heb ik er afentoe ook last van, dan kan het aan ZO liggen, dan weer aan eaccelerator, dan weer aan memcache, dan weer aan een brak script, etc etc, het kan ontzettend veel oorzaken hebben en dat is het vervelende hieraan.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 19:15
Misschien helpt het kijken met de mod_status module (met ExtendedStatus On)?

[ Voor 3% gewijzigd door gertvdijk op 10-11-2008 18:24 ]

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
Ik heb wat gevonden, een topic wat precies mijn probleem beschrijft en exact overeen komt met mijn server (64 bit) de oplossing zou zijn naar 5.2.5 upgraden. Het gaat om welliswaar Gentoo, maar ik heb de indruk dat dat niet zoveel uitmaakt.

(http://bugs.gentoo.org/show_bug.cgi?id=187120)
5.2.4_pre working fine on my two amd64-servers (which had the segfault before).
So I vote for merging into portage asap.
Ik zal even kijken hoe ik in mijn ubuntu de nieuwste php kan verkrijgen!

  • M4RTiN
  • Registratie: Augustus 2000
  • Laatst online: 24-11-2024
Probleem lijkt nu te verholpen zijn met een nieuwere PHP versie door middel van totaal-upgrade Ubuntu.

Heel erg bedankt voor alle bijdrages!
Pagina: 1