Re: [WebDNA] sem_open bugfix for os x version 6.2

This WebDNA talk-list message is from

2012


It keeps the original formatting.
numero = 108243
interpreted = N
texte = --Boundary_(ID_unSsR0345oGUQOKG4mzRvw) Content-type: text/plain; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Crashes in the last hour... as load increases in the morning, and its all the WebCatalog Process...Light load it crashes about every couple hours. Rob On Jan 25, 2012, at 10:24 AM, christophe.billiottet@webdna.us wrote: > Rob, just curiosity: what formatting do you use for your drive? (thinking about Returned ENOSPC) > > About the semaphore bug, here a little more explanations: > > It was due to a poor method of generating the semaphore names. The semaphore name was generated this way: > > sprintf(mSemName, "webcat_%ld_%ld", this, times(&start)); > > The name therefore is "webcat_" + address space location of current object + current time in seconds. > > The issue is that on non-ASLR platforms the address spaces are identical each time the program runs. And since Apache starts all of the FastCGI processes at the same time, the times are also often identical. > > So basically WebDNA is trying to open semaphores at the same times with the same names. When it doesn't work, it starts spewing out all kinds of errors. After it fails to open the semaphore, it keeps trying to use it anyway and try over and over to use a semaphore it never opened > > - chris > > > On Jan 25, 2012, at 14:13, Rob wrote: > >> Donovan, >> >> There are two of us, that I know of, that are having all kinds of weird issues that a lot of times don't even relate to any website, and are willing to pay Chris for a solution as it's consuming all are time. For example, I can go to one of my sites home page one time, and it crashes WebCatalog, then the next time I go its fine. The next time I go to the Preferences in the admin, and its fine, if I go again it crashes. This is in the middle of the night with low to no traffic. >> >> I've reinstalled about three times, I've gone through all the sites and made sure there was no issues, and checked all the permissions on the db's and files etc. All of these sites run perfectly fine on my development box, which is actually Lion, and I don't get the issue in terminal, like I do in Snow Leopard. If there was one file I could replace, or even remove in Apache or something, I would do that, but there is nothing I can put my finger on. Whatever it is is related to whats happening in terminal, which shows the following when you restart WebDNA: >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> >> Rob >> >> >> On Jan 25, 2012, at 9:41 AM, Donovan Brooke wrote: >> >>> First, I wouldn't call something a bug unless I can confirm and reproduce it. Why exactly are "we" calling this a bug in 6.2? How is it reproduced? >>> >>> To answer below: >>> >>> [snip] >>> >>> Also, we don't know if there are other revisions or fixes Donovan team may have done for 6.2 that aren't in our SVN. >>>>> >>>>> I suggest you speak privately (or publicly) with Rob Forest who has the same problem with his 6.2 copy: a group of several users could club together to get it fixed. Our charge would be somewhere between $800 to $1200 >>> >>> >>> I think Chris knows that I'd be interested in a build/patch to CICADA.. not for the stated "bug" really, but for the Apache2 fixes that we made to the plugin (content type text/XML), and the SMTP auth fixes. Those should both already be done in the 6x branch and awaiting a build. >>> >>> There may be some other fixes that were made, and there may be some loose end's as well... since there was some "changes" going on with WSC policy about the time 6x was tagged and when I left. I don't know exactly what state 6.2 was tagged at, but it should be doable without too much problem. The developer would want to make sure they use the apache module with the fix on the content type. >>> >>> We were also playing around with process isolation.. much like how WebDNA7 works. WebDNA 6.2 does not have to be installed server-wide and we did have a build working that would allow multiple installs on a single server. Not sure if this was kept or not. >>> >>> Anyway... ahh, memories. :-) >>> >>> Donovan >>> >>> >>> -- >>> Donovan Brooke >>> Euca Design Center >>> www.euca.us >>> >>> --------------------------------------------------------- >>> This message is sent to you because you are subscribed to >>> the mailing list . >>> To unsubscribe, E-mail to: >>> archives: http://mail.webdna.us/list/talk@webdna.us >>> Bug Reporting: support@webdna.us >> >> --------------------------------------------------------- >> This message is sent to you because you are subscribed to >> the mailing list . >> To unsubscribe, E-mail to: >> archives: http://mail.webdna.us/list/talk@webdna.us >> Bug Reporting: support@webdna.us > > --------------------------------------------------------- > This message is sent to you because you are subscribed to > the mailing list . > To unsubscribe, E-mail to: > archives: http://mail.webdna.us/list/talk@webdna.us > Bug Reporting: support@webdna.us --Boundary_(ID_unSsR0345oGUQOKG4mzRvw) Content-type: multipart/related; boundary="Boundary_(ID_w0EPvSrW13DlqHiBiDuF+g)"; type="text/html" --Boundary_(ID_w0EPvSrW13DlqHiBiDuF+g) Content-type: text/html; CHARSET=US-ASCII Content-transfer-encoding: quoted-printable Crashes in the last hour... as load increases in the morning, and its = all the WebCatalog Process...Light load it crashes about every couple = hours.


Rob


On Jan 25, 2012, at 10:24 = AM, christophe.billiottet@webd= na.us wrote:

Rob, just curiosity: what formatting do you use for = your drive? (thinking about Returned ENOSPC)

About the semaphore = bug, here a little more explanations:

It was due to a poor method = of generating the semaphore names. The semaphore name was generated this = way:

sprintf(mSemName, "webcat_%ld_%ld", this, = times(&start));

The name therefore is "webcat_" + address = space location of current object + current time in seconds.

The = issue is that on non-ASLR platforms the address spaces are identical = each time the program runs. And since Apache starts all of the FastCGI = processes at the same time, the times are also often = identical.

So basically WebDNA is trying to open semaphores at = the same times with the same names. When it doesn't work, it starts = spewing out all kinds of errors. After it fails to open the semaphore, = it keeps trying to use it anyway and try over and over to use a = semaphore it never opened

- chris


On Jan 25, 2012, at = 14:13, Rob wrote:

Donovan,

There are two = of us, that I know of, that are having all kinds of weird issues that a = lot of times don't even relate to any website, and are willing to pay = Chris for a solution as it's consuming all are time. For example, I can = go to one of my sites home page one time, and it crashes WebCatalog, = then the next time I go its fine. The next time I go to the Preferences = in the admin, and its fine, if I go again it crashes. This is in the = middle of the night with low to no traffic.

I've = reinstalled about three times, I've gone through all the sites and made = sure there was no issues, and checked all the permissions on the db's = and files etc. All of these sites run perfectly fine on my development = box, which is actually Lion, and I don't get the issue in terminal, like = I do in Snow Leopard. If there was one file I could replace, or even = remove in Apache or something, I would do that, but there is nothing I = can put my finger on. Whatever it is is related to whats happening in = terminal, which shows the following when you restart = WebDNA:
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device

Rob


On Jan 25, = 2012, at 9:41 AM, Donovan Brooke wrote:

First, I wouldn't call something a bug unless I can = confirm and reproduce it. Why exactly are "we" calling this a bug in = 6.2? How is it reproduced?

To answer = below:

[snip]

Also, we don't know if there are = other revisions or fixes Donovan team may have done for 6.2 that aren't = in our SVN.

I suggest you speak privately = (or publicly) with Rob Forest who has the same problem with his 6.2 = copy: a group of several users could club together to get it fixed. Our = charge would be somewhere between $800 to = $1200


I think Chris knows that I'd be = interested in a build/patch to CICADA.. not for the stated "bug" really, = but for the Apache2 fixes that we made to the plugin (content type = text/XML), and the SMTP auth fixes. Those should both already be done in = the 6x branch and awaiting a = build.

There may be some other fixes = that were made, and there may be some loose end's as well... since there = was some "changes" going on with WSC policy about the time 6x was tagged = and when I left. I don't know exactly what state 6.2 was tagged at, but = it should be doable without too much problem. The developer would want = to make sure they use the apache module with the fix on the content = type.

We were also playing around with = process isolation.. much like how WebDNA7 works. WebDNA 6.2 does not = have to be installed server-wide and we did have a build working that = would allow multiple installs on a single server. Not sure if this was = kept or not.

Anyway... ahh, memories. = :-)

Donovan


-- =
Donovan Brooke
Euca Design = Center
www.euca.us
<= blockquote type=3D"cite">

---------------------------------------------------------
This message is sent to you because you are subscribed = to
the mailing list <talk@webdna.us>.
To = unsubscribe, E-mail to: <talk-leave@webdna.us>
archives: http://mail.webdna.us/l= ist/talk@webdna.us
Bug Reporting: support@webdna.us

---------------------------------------------------------
This message is sent to you = because you are subscribed to
the mailing list <talk@webdna.us>.
To unsubscribe, E-mail to: <talk-leave@webdna.us>
archives: http://mail.webdna.us/l= ist/talk@webdna.us
Bug = Reporting: support@webdna.us
---------------------------------------------------------
This = message is sent to you because you are subscribed to
the mailing list = <talk@webdna.us>.
To = unsubscribe, E-mail to: <talk-leave@webdna.us>
archi= ves: http://mail.webdna.us/l= ist/talk@webdna.us
Bug Reporting: support@webdna.us

= --Boundary_(ID_w0EPvSrW13DlqHiBiDuF+g) Content-id: <2F5C11B1-F1CF-4A99-82C6-A67605C64E0C> Content-type: image/png; x-unix-mode=0666; name=PastedGraphic-1.png Content-transfer-encoding: base64 Content-disposition: inline; filename=PastedGraphic-1.png iVBORw0KGgoAAAANSUhEUgAAAPYAAAB8CAIAAADVW9ohAAAXfWlDQ1BJQ0MgUHJvZmlsZQAAeAGt WXVcFF33vzObLEt3d3eXdHenICxLN0uIWIiIhIKgIAKiIIJICShlUAIiBhjYhAJSIioIAspvQH3e 54/3/e83+9mZ7575nnPPvefOmXvuAsBxnRQVFQbTAxAeEUtxMDXgd3P34Me9BRAgIB9poEkix0Tp 29lZgf95fB9B2MjxVGbb1v+k/fcbDH7+MWQAIDvktq9fDDkcwdcBgJvJUZRYANDb9oT3xkZt41MI ZqYgDiK4fBsH/sat29j3N36ww3FyMEQ44wDgiSQSJRAA4gIi548nByJ2aIgAYBkj/IIjAGDiR7AO OYjkBwCHD8KRDg+P3MYnECzu+y87gf/CJJLvPzZJpMB/8O++IJpIw0bBMVFhpH07P/4/T+Fhcch4 7RysyJkYFWvggFzZkXFjD441d0IwM4Llg+LMnP9go8QgJ9dtLiJ3i/C1sUUwI4L9yDGGyFgCxA4U HxppuW1nm3PCz9/IGMHIrIAKYuId/+IriUGGNn84biEki+2Y0SKcVhIFQb/b7YuKtdv2Ydvm64gw G6s/eCmAYrJtH5HDWP8YY0cEIz7A3LEUp2054jMsGxBsYo5gpF3YICpsZ85tcxwocQ7bfRFGsJ9/ hPNf3TQ/kpElIudG5IXAChgCI8CPnCNBGPKlgGDgh1z/ysn/kjuCRPAJRAB/EINo7DC8g5MpfzEw ASREPxC5L/NH32BH4g/iEa2ff3mPFloW/uI/Or7/aJiAyR0bfyzIV8vPym/+ZfPT/fULa4w1wpph TbASfyVIS797QdnxzxLpjT+IQ2z5I23/9effvYr7h/Fv6e8xcNjRCkUYwX/bBi47ngX/Y8vyn5H5 MxZoUbQiWgVtgNZG66A1AD+aFc0JZNDKaHW0PloXrYXc0/jXOP/R+uO/DAjYGav4He9DwTTiOfJU x/onxCKxAoaRUfsowYFBsfz6SLbwl+Y3jyDLSvMryisogu3cs80B4JvDTk6BWB//R+b/BgBNEwCo yv8jCxoEoKYaAM7S/8jE5ZHnlw6AuhlyHCX+tz309gWDZDQ6ZKZxAF4gBMSR/isCVaAF9IAxsAC2 wAm4gz2ADIIQfylgLzgAjoBUkAlOgTxQCC6AS+AKqAWNoAXcAl2gDwyCIfAcvAHjYArMgyXwHWxA EISDaCAmiAPig0QgKUgRUod0IGPICnKA3CEfKBCKgOKgA9BRKBPKhQqhUqgKaoDaoC5oABqGXkET 0Cz0FVqHUTARZoZ5YFFYDlaH9WFL2An2ggPhaDgRToGz4AK4DK6Bm+EueBB+Do/D8/AKCqCoUawo AZQMSh1liLJFeaACUBTUIVQGKh9VhqpDtaP6UU9R46gF1A80Fs2E5kfLILE0Qzujyeho9CH0CXQh +gq6GX0X/RQ9gV5C/8LQYLgxUhhNjDnGDROI2YtJxeRjKjA3ML2Y55gpzHcsFsuKFcOqIfPXHRuC 3Y89gT2Prcd2YoexH7ArOByOAyeF08bZ4ki4WFwq7hyuBteBe4Kbwq3hqfF8eEW8Cd4DH4FPxufj r+Lv4J/gP+I3qOipRKg0qWyp/Kj2UWVTlVO1Uz2mmqLaIDAQxAjaBCdCCOEIoYBQR+glvCV8o6am FqTWoLanDqZOoi6gvkZ9j3qC+geRkShJNCR6EuOIWcRKYifxFfEbDQ2NKI0ejQdNLE0WTRVND80o zRotE60srTmtH+1h2iLaZtontIt0VHQidPp0e+gS6fLpmuge0y3QU9GL0hvSk+gP0RfRt9G/oF9h YGJQYLBlCGc4wXCVYYBhhhHHKMpozOjHmMJ4ibGH8QMTikmIyZCJzHSUqZypl2mKGcssxmzOHMKc yVzL/Ih5iYWRRZnFhSWBpYjlNss4K4pVlNWcNYw1m7WRdYR1nY2HTZ/Nny2drY7tCdsqOxe7Hrs/ ewZ7Pftz9nUOfg5jjlCOHI4WjnecaE5JTnvOvZwlnL2cC1zMXFpcZK4Mrkau19wwtyS3A/d+7kvc D7hXeHh5THmieM7x9PAs8LLy6vGG8J7hvcM7y8fEp8MXzHeGr4Nvjp+FX58/jL+A/y7/kgC3gJlA nECpwCOBDUExQWfBZMF6wXdCBCF1oQChM0LdQkvCfMLWwgeEq4Vfi1CJqIsEiZwV6RdZFRUTdRU9 LtoiOiPGLmYulihWLfZWnEZcVzxavEz8mQRWQl0iVOK8xJAkLKkiGSRZJPlYCpZSlQqWOi81LI2R 1pCOkC6TfiFDlNGXiZeplpmQZZW1kk2WbZFdlBOW85DLkeuX+yWvIh8mXy7/RoFRwUIhWaFd4aui pCJZsUjxmRKNkonSYaVWpS/KUsr+yiXKL1WYVKxVjqt0q/xUVVOlqNapzqoJq/moFau9UGdWt1M/ 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 cH0AAAAASUVORK5CYII= --Boundary_(ID_w0EPvSrW13DlqHiBiDuF+g)-- --Boundary_(ID_unSsR0345oGUQOKG4mzRvw)-- Associated Messages, from the most recent to the oldest:

    
  1. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Donovan Brooke 2012)
  2. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  3. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  4. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Govinda 2012)
  5. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  6. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Daniel Meola 2012)
  7. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Donovan Brooke 2012)
  8. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  9. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  10. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Donovan Brooke 2012)
  11. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Govinda 2012)
  12. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  13. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Donovan Brooke 2012)
  14. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Robert Minor 2012)
  15. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  16. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Donovan Brooke 2012)
  17. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  18. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  19. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  20. Re: [WebDNA] sem_open bugfix for os x version 6.2 (christophe.billiottet@webdna.us 2012)
  21. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  22. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Donovan Brooke 2012)
  23. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Thierry Almy 2012)
  24. Re: [WebDNA] sem_open bugfix for os x version 6.2 (Rob 2012)
  25. [WebDNA] sem_open bugfix for os x version 6.2 (Thierry Almy 2012)
--Boundary_(ID_unSsR0345oGUQOKG4mzRvw) Content-type: text/plain; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Crashes in the last hour... as load increases in the morning, and its all the WebCatalog Process...Light load it crashes about every couple hours. Rob On Jan 25, 2012, at 10:24 AM, christophe.billiottet@webdna.us wrote: > Rob, just curiosity: what formatting do you use for your drive? (thinking about Returned ENOSPC) > > About the semaphore bug, here a little more explanations: > > It was due to a poor method of generating the semaphore names. The semaphore name was generated this way: > > sprintf(mSemName, "webcat_%ld_%ld", this, times(&start)); > > The name therefore is "webcat_" + address space location of current object + current time in seconds. > > The issue is that on non-ASLR platforms the address spaces are identical each time the program runs. And since Apache starts all of the FastCGI processes at the same time, the times are also often identical. > > So basically WebDNA is trying to open semaphores at the same times with the same names. When it doesn't work, it starts spewing out all kinds of errors. After it fails to open the semaphore, it keeps trying to use it anyway and try over and over to use a semaphore it never opened > > - chris > > > On Jan 25, 2012, at 14:13, Rob wrote: > >> Donovan, >> >> There are two of us, that I know of, that are having all kinds of weird issues that a lot of times don't even relate to any website, and are willing to pay Chris for a solution as it's consuming all are time. For example, I can go to one of my sites home page one time, and it crashes WebCatalog, then the next time I go its fine. The next time I go to the Preferences in the admin, and its fine, if I go again it crashes. This is in the middle of the night with low to no traffic. >> >> I've reinstalled about three times, I've gone through all the sites and made sure there was no issues, and checked all the permissions on the db's and files etc. All of these sites run perfectly fine on my development box, which is actually Lion, and I don't get the issue in terminal, like I do in Snow Leopard. If there was one file I could replace, or even remove in Apache or something, I would do that, but there is nothing I can put my finger on. Whatever it is is related to whats happening in terminal, which shows the following when you restart WebDNA: >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> sem_open failed: returned ENOSPC: No space left on device >> >> Rob >> >> >> On Jan 25, 2012, at 9:41 AM, Donovan Brooke wrote: >> >>> First, I wouldn't call something a bug unless I can confirm and reproduce it. Why exactly are "we" calling this a bug in 6.2? How is it reproduced? >>> >>> To answer below: >>> >>> [snip] >>> >>> Also, we don't know if there are other revisions or fixes Donovan team may have done for 6.2 that aren't in our SVN. >>>>> >>>>> I suggest you speak privately (or publicly) with Rob Forest who has the same problem with his 6.2 copy: a group of several users could club together to get it fixed. Our charge would be somewhere between $800 to $1200 >>> >>> >>> I think Chris knows that I'd be interested in a build/patch to CICADA.. not for the stated "bug" really, but for the Apache2 fixes that we made to the plugin (content type text/XML), and the SMTP auth fixes. Those should both already be done in the 6x branch and awaiting a build. >>> >>> There may be some other fixes that were made, and there may be some loose end's as well... since there was some "changes" going on with WSC policy about the time 6x was tagged and when I left. I don't know exactly what state 6.2 was tagged at, but it should be doable without too much problem. The developer would want to make sure they use the apache module with the fix on the content type. >>> >>> We were also playing around with process isolation.. much like how WebDNA7 works. WebDNA 6.2 does not have to be installed server-wide and we did have a build working that would allow multiple installs on a single server. Not sure if this was kept or not. >>> >>> Anyway... ahh, memories. :-) >>> >>> Donovan >>> >>> >>> -- >>> Donovan Brooke >>> Euca Design Center >>> www.euca.us >>> >>> --------------------------------------------------------- >>> This message is sent to you because you are subscribed to >>> the mailing list . >>> To unsubscribe, E-mail to: >>> archives: http://mail.webdna.us/list/talk@webdna.us >>> Bug Reporting: support@webdna.us >> >> --------------------------------------------------------- >> This message is sent to you because you are subscribed to >> the mailing list . >> To unsubscribe, E-mail to: >> archives: http://mail.webdna.us/list/talk@webdna.us >> Bug Reporting: support@webdna.us > > --------------------------------------------------------- > This message is sent to you because you are subscribed to > the mailing list . > To unsubscribe, E-mail to: > archives: http://mail.webdna.us/list/talk@webdna.us > Bug Reporting: support@webdna.us --Boundary_(ID_unSsR0345oGUQOKG4mzRvw) Content-type: multipart/related; boundary="Boundary_(ID_w0EPvSrW13DlqHiBiDuF+g)"; type="text/html" --Boundary_(ID_w0EPvSrW13DlqHiBiDuF+g) Content-type: text/html; CHARSET=US-ASCII Content-transfer-encoding: quoted-printable Crashes in the last hour... as load increases in the morning, and its = all the WebCatalog Process...Light load it crashes about every couple = hours.


Rob


On Jan 25, 2012, at 10:24 = AM, christophe.billiottet@webd= na.us wrote:

Rob, just curiosity: what formatting do you use for = your drive? (thinking about Returned ENOSPC)

About the semaphore = bug, here a little more explanations:

It was due to a poor method = of generating the semaphore names. The semaphore name was generated this = way:

sprintf(mSemName, "webcat_%ld_%ld", this, = times(&start));

The name therefore is "webcat_" + address = space location of current object + current time in seconds.

The = issue is that on non-ASLR platforms the address spaces are identical = each time the program runs. And since Apache starts all of the FastCGI = processes at the same time, the times are also often = identical.

So basically WebDNA is trying to open semaphores at = the same times with the same names. When it doesn't work, it starts = spewing out all kinds of errors. After it fails to open the semaphore, = it keeps trying to use it anyway and try over and over to use a = semaphore it never opened

- chris


On Jan 25, 2012, at = 14:13, Rob wrote:

Donovan,

There are two = of us, that I know of, that are having all kinds of weird issues that a = lot of times don't even relate to any website, and are willing to pay = Chris for a solution as it's consuming all are time. For example, I can = go to one of my sites home page one time, and it crashes WebCatalog, = then the next time I go its fine. The next time I go to the Preferences = in the admin, and its fine, if I go again it crashes. This is in the = middle of the night with low to no traffic.

I've = reinstalled about three times, I've gone through all the sites and made = sure there was no issues, and checked all the permissions on the db's = and files etc. All of these sites run perfectly fine on my development = box, which is actually Lion, and I don't get the issue in terminal, like = I do in Snow Leopard. If there was one file I could replace, or even = remove in Apache or something, I would do that, but there is nothing I = can put my finger on. Whatever it is is related to whats happening in = terminal, which shows the following when you restart = WebDNA:
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device
sem_open failed: = returned ENOSPC: No space left on device
sem_open failed: returned ENOSPC: No space left on = device

Rob


On Jan 25, = 2012, at 9:41 AM, Donovan Brooke wrote:

First, I wouldn't call something a bug unless I can = confirm and reproduce it. Why exactly are "we" calling this a bug in = 6.2? How is it reproduced?

To answer = below:

[snip]

Also, we don't know if there are = other revisions or fixes Donovan team may have done for 6.2 that aren't = in our SVN.

I suggest you speak privately = (or publicly) with Rob Forest who has the same problem with his 6.2 = copy: a group of several users could club together to get it fixed. Our = charge would be somewhere between $800 to = $1200


I think Chris knows that I'd be = interested in a build/patch to CICADA.. not for the stated "bug" really, = but for the Apache2 fixes that we made to the plugin (content type = text/XML), and the SMTP auth fixes. Those should both already be done in = the 6x branch and awaiting a = build.

There may be some other fixes = that were made, and there may be some loose end's as well... since there = was some "changes" going on with WSC policy about the time 6x was tagged = and when I left. I don't know exactly what state 6.2 was tagged at, but = it should be doable without too much problem. The developer would want = to make sure they use the apache module with the fix on the content = type.

We were also playing around with = process isolation.. much like how WebDNA7 works. WebDNA 6.2 does not = have to be installed server-wide and we did have a build working that = would allow multiple installs on a single server. Not sure if this was = kept or not.

Anyway... ahh, memories. = :-)

Donovan


-- =
Donovan Brooke
Euca Design = Center
www.euca.us
<= blockquote type=3D"cite">

---------------------------------------------------------
This message is sent to you because you are subscribed = to
the mailing list <talk@webdna.us>.
To = unsubscribe, E-mail to: <talk-leave@webdna.us>
archives: http://mail.webdna.us/l= ist/talk@webdna.us
Bug Reporting: support@webdna.us

---------------------------------------------------------
This message is sent to you = because you are subscribed to
the mailing list <talk@webdna.us>.
To unsubscribe, E-mail to: <talk-leave@webdna.us>
archives: http://mail.webdna.us/l= ist/talk@webdna.us
Bug = Reporting: support@webdna.us
---------------------------------------------------------
This = message is sent to you because you are subscribed to
the mailing list = <talk@webdna.us>.
To = unsubscribe, E-mail to: <talk-leave@webdna.us>
archi= ves: http://mail.webdna.us/l= ist/talk@webdna.us
Bug Reporting: support@webdna.us

= --Boundary_(ID_w0EPvSrW13DlqHiBiDuF+g) Content-id: <2F5C11B1-F1CF-4A99-82C6-A67605C64E0C> Content-type: image/png; x-unix-mode=0666; name=PastedGraphic-1.png Content-transfer-encoding: base64 Content-disposition: inline; filename=PastedGraphic-1.png iVBORw0KGgoAAAANSUhEUgAAAPYAAAB8CAIAAADVW9ohAAAXfWlDQ1BJQ0MgUHJvZmlsZQAAeAGt WXVcFF33vzObLEt3d3eXdHenICxLN0uIWIiIhIKgIAKiIIJICShlUAIiBhjYhAJSIioIAspvQH3e 54/3/e83+9mZ7575nnPPvefOmXvuAsBxnRQVFQbTAxAeEUtxMDXgd3P34Me9BRAgIB9poEkix0Tp 29lZgf95fB9B2MjxVGbb1v+k/fcbDH7+MWQAIDvktq9fDDkcwdcBgJvJUZRYANDb9oT3xkZt41MI ZqYgDiK4fBsH/sat29j3N36ww3FyMEQ44wDgiSQSJRAA4gIi548nByJ2aIgAYBkj/IIjAGDiR7AO OYjkBwCHD8KRDg+P3MYnECzu+y87gf/CJJLvPzZJpMB/8O++IJpIw0bBMVFhpH07P/4/T+Fhcch4 7RysyJkYFWvggFzZkXFjD441d0IwM4Llg+LMnP9go8QgJ9dtLiJ3i/C1sUUwI4L9yDGGyFgCxA4U HxppuW1nm3PCz9/IGMHIrIAKYuId/+IriUGGNn84biEki+2Y0SKcVhIFQb/b7YuKtdv2Ydvm64gw G6s/eCmAYrJtH5HDWP8YY0cEIz7A3LEUp2054jMsGxBsYo5gpF3YICpsZ85tcxwocQ7bfRFGsJ9/ hPNf3TQ/kpElIudG5IXAChgCI8CPnCNBGPKlgGDgh1z/ysn/kjuCRPAJRAB/EINo7DC8g5MpfzEw ASREPxC5L/NH32BH4g/iEa2ff3mPFloW/uI/Or7/aJiAyR0bfyzIV8vPym/+ZfPT/fULa4w1wpph TbASfyVIS797QdnxzxLpjT+IQ2z5I23/9effvYr7h/Fv6e8xcNjRCkUYwX/bBi47ngX/Y8vyn5H5 MxZoUbQiWgVtgNZG66A1AD+aFc0JZNDKaHW0PloXrYXc0/jXOP/R+uO/DAjYGav4He9DwTTiOfJU x/onxCKxAoaRUfsowYFBsfz6SLbwl+Y3jyDLSvMryisogu3cs80B4JvDTk6BWB//R+b/BgBNEwCo yv8jCxoEoKYaAM7S/8jE5ZHnlw6AuhlyHCX+tz309gWDZDQ6ZKZxAF4gBMSR/isCVaAF9IAxsAC2 wAm4gz2ADIIQfylgLzgAjoBUkAlOgTxQCC6AS+AKqAWNoAXcAl2gDwyCIfAcvAHjYArMgyXwHWxA EISDaCAmiAPig0QgKUgRUod0IGPICnKA3CEfKBCKgOKgA9BRKBPKhQqhUqgKaoDaoC5oABqGXkET 0Cz0FVqHUTARZoZ5YFFYDlaH9WFL2An2ggPhaDgRToGz4AK4DK6Bm+EueBB+Do/D8/AKCqCoUawo AZQMSh1liLJFeaACUBTUIVQGKh9VhqpDtaP6UU9R46gF1A80Fs2E5kfLILE0Qzujyeho9CH0CXQh +gq6GX0X/RQ9gV5C/8LQYLgxUhhNjDnGDROI2YtJxeRjKjA3ML2Y55gpzHcsFsuKFcOqIfPXHRuC 3Y89gT2Prcd2YoexH7ArOByOAyeF08bZ4ki4WFwq7hyuBteBe4Kbwq3hqfF8eEW8Cd4DH4FPxufj r+Lv4J/gP+I3qOipRKg0qWyp/Kj2UWVTlVO1Uz2mmqLaIDAQxAjaBCdCCOEIoYBQR+glvCV8o6am FqTWoLanDqZOoi6gvkZ9j3qC+geRkShJNCR6EuOIWcRKYifxFfEbDQ2NKI0ejQdNLE0WTRVND80o zRotE60srTmtH+1h2iLaZtontIt0VHQidPp0e+gS6fLpmuge0y3QU9GL0hvSk+gP0RfRt9G/oF9h YGJQYLBlCGc4wXCVYYBhhhHHKMpozOjHmMJ4ibGH8QMTikmIyZCJzHSUqZypl2mKGcssxmzOHMKc yVzL/Ih5iYWRRZnFhSWBpYjlNss4K4pVlNWcNYw1m7WRdYR1nY2HTZ/Nny2drY7tCdsqOxe7Hrs/ ewZ7Pftz9nUOfg5jjlCOHI4WjnecaE5JTnvOvZwlnL2cC1zMXFpcZK4Mrkau19wwtyS3A/d+7kvc D7hXeHh5THmieM7x9PAs8LLy6vGG8J7hvcM7y8fEp8MXzHeGr4Nvjp+FX58/jL+A/y7/kgC3gJlA nECpwCOBDUExQWfBZMF6wXdCBCF1oQChM0LdQkvCfMLWwgeEq4Vfi1CJqIsEiZwV6RdZFRUTdRU9 LtoiOiPGLmYulihWLfZWnEZcVzxavEz8mQRWQl0iVOK8xJAkLKkiGSRZJPlYCpZSlQqWOi81LI2R 1pCOkC6TfiFDlNGXiZeplpmQZZW1kk2WbZFdlBOW85DLkeuX+yWvIh8mXy7/RoFRwUIhWaFd4aui pCJZsUjxmRKNkonSYaVWpS/KUsr+yiXKL1WYVKxVjqt0q/xUVVOlqNapzqoJq/moFau9UGdWt1M/ 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 cH0AAAAASUVORK5CYII= --Boundary_(ID_w0EPvSrW13DlqHiBiDuF+g)-- --Boundary_(ID_unSsR0345oGUQOKG4mzRvw)-- Rob

DOWNLOAD WEBDNA NOW!

Top Articles:

Talk List

The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...

Related Readings:

Roundup (2001) Forum - Test Request (2005) Sendmail (1997) Authenticate (1997) Configuring E-mail (1997) Need relative path explanation (1997) WebCatalog 2.0 & WebDNA docs in HTML ... (1997) Case sensitivity and [showif] (1999) Surprise x and y post args (1998) I have observed and I am gone. (1998) Macauth: Dates and No Scripting... (1997) Error: this shopping cart has already been submittedm (2004) Search syntax question (1998) Searching for Email Address (2004) Web Catalog 2 demo (1997) Secure server question (1997) [WebDNA] Add to cart (2014) FW: WebDNA-Talk searchable? (1997) Retrieving binary from SQL (2005) eq (2000)