From: Andrew <bur...@gm...> - 2010-05-03 16:46:13
|
Hi! It seems, that yaws 1.88 do not restarts. And that could be a stability problem. What I am doing: Starting yaws, the command line is: yaws --daemon --heart --heart-restart=0,0 Next I kill beam process. kill <beam process ID> But that kills the heart process, instead of beam process restarting. Result is yaws death. I tried different --heart-restart=C,T, but yaws never restarts. I remeber, that old version restarted well. How to force restarts of new yaws? Or I'm doing something wrong? Andrew |
From: Steve V. <vi...@ie...> - 2010-05-03 19:12:16
|
On Mon, May 3, 2010 at 12:46 PM, Andrew <bur...@gm...> wrote: > Hi! > It seems, that yaws 1.88 do not restarts. And that could be a stability > problem. > > What I am doing: > > Starting yaws, the command line is: > yaws --daemon --heart --heart-restart=0,0 > > Next I kill beam process. > kill <beam process ID> > > But that kills the heart process, instead of beam process restarting. > Result is yaws death. I tried different --heart-restart=C,T, but yaws > never restarts. I remeber, that old version restarted well. How to force > restarts of new yaws? Or I'm doing something wrong? Works for me on OS X. What platform are you on? --steve |
From: Andrew <bur...@gm...> - 2010-05-04 08:58:31
|
Thanks all for reply! The problem relates to additional parameter --erlarg . (I thought it is irrelevant, but I was wrong). Without --erlarg its works perfectly. But yaws does not restart with --erlarg this does not work: yaws --daemon --heart --heart-restart=0,0 --erlarg "-env SOME_PATH /home/user1" and this works perfect: yaws --daemon --heart --heart-restart=0,0 Sorry, I gave incomplete information before. Andrew |
From: Daniel F. <fly...@go...> - 2010-05-10 07:45:33
|
2010/5/10 Steve Vinoski <vi...@ie...> > On Sun, May 9, 2010 at 6:55 PM, Daniel Fahlke <fly...@go...> > wrote: > > > > wouldn't help it to escape this quotes with an \ if someone want to use > > them? > > > > for example > > --erlargs "-env NAME O\'Keeffe" > > Sure, that would work. But you'd have to know the implementation > details to know that you need to quote that single quote. If you don't > quote it, you get a message about a shell syntax error that isn't at > all helpful or clear about where the problem is. > > Again, my main point here is just a warning that the change I've > pushed intentionally does not attempt to handle all possible quoted > multi-word arguments, and I think that's fine because it's very likely > an extremely rare use case. > > --steve > I see two ways we could go there. First, we add an notice in the manual. The second, we add an escape function for $arg, because we know that only single quotes may cause Problems. |
From: Steve V. <vi...@ie...> - 2010-05-11 05:56:54
|
On Mon, May 10, 2010 at 3:45 AM, Daniel Fahlke <fly...@go...> wrote: > > I see two ways we could go there. > First, we add an notice in the manual. > The second, we add an escape function for $arg, because we know that only > single quotes may cause Problems. Definitely not going to add an escape function, as it's just extra work for no benefit since the likelihood of anyone ever wanting to pass an environment variable name or value containing a single quote to erl via -env is practically nil. I changed the yaws man page to document the need for extra quoting for this case. --steve |
From: Claes W. <kl...@ta...> - 2010-05-06 21:03:52
|
On 05/04/2010 10:58 AM, Andrew wrote: > Thanks all for reply! > > The problem relates to additional parameter --erlarg . > (I thought it is irrelevant, but I was wrong). > Without --erlarg its works perfectly. But yaws does not restart with > --erlarg > > this does not work: > yaws --daemon --heart --heart-restart=0,0 --erlarg "-env SOME_PATH > /home/user1" > > and this works perfect: > yaws --daemon --heart --heart-restart=0,0 > Ok, clearly a bug, we'll look into it. Thanks for reporting, /klacke |
From: Claes W. <kl...@ta...> - 2010-05-03 22:10:53
|
On 05/03/2010 09:12 PM, Steve Vinoski wrote: > On Mon, May 3, 2010 at 12:46 PM, Andrew<bur...@gm...> wrote: >> Hi! >> It seems, that yaws 1.88 do not restarts. And that could be a stability >> problem. >> >> What I am doing: >> >> Starting yaws, the command line is: >> yaws --daemon --heart --heart-restart=0,0 >> >> Next I kill beam process. >> kill<beam process ID> >> >> But that kills the heart process, instead of beam process restarting. >> Result is yaws death. I tried different --heart-restart=C,T, but yaws >> never restarts. I remeber, that old version restarted well. How to force >> restarts of new yaws? Or I'm doing something wrong? > > Works for me on OS X. What platform are you on? Works perfect for me too, Ubuntu Lucid Lynx. /klacke |
From: Andrew Y. <bur...@gm...> - 2010-05-09 21:01:48
|
It works very well! Andrew. > Hi Andrew, > > Below find a patch against github HEAD that works for me on Linux and > OS X. I'll wait to push it until I hear from you that it works for you > too. > > --steve > > > > diff --git a/scripts/yaws.template b/scripts/yaws.template > index 53b32e9..8874046 100755 > --- a/scripts/yaws.template > +++ b/scripts/yaws.template > @@ -136,7 +136,17 @@ if [ "$HEART" = true ]; then > fi > fi > fi > -HEART_COMMAND="$ENV_PGM HEART=true YAWS_HEART_RESTARTS=$restarts > YAWS_HEART_START=$starttime $program "${1+"$@"} > +HEART_COMMAND="$ENV_PGM HEART=true YAWS_HEART_RESTARTS=$restarts > YAWS_HEART_START=$starttime $program" > +# This loop quotes arguments containing whitespace so they can be passed > +# properly to the next heart restart > +for arg in "$@"; do > + ws=`( set X $arg ; echo $# )` > + if [ "$ws" -gt 2 ]; then > + HEART_COMMAND="$HEART_COMMAND '$arg'" > + else > + HEART_COMMAND="$HEART_COMMAND $arg" > + fi > +done > export HEART_COMMAND > > while [ $# -gt 0 ] > |
From: Steve V. <vi...@ie...> - 2010-05-10 03:29:29
|
On Sun, May 9, 2010 at 6:55 PM, Daniel Fahlke <fly...@go...> wrote: > > wouldn't help it to escape this quotes with an \ if someone want to use > them? > > for example > --erlargs "-env NAME O\'Keeffe" Sure, that would work. But you'd have to know the implementation details to know that you need to quote that single quote. If you don't quote it, you get a message about a shell syntax error that isn't at all helpful or clear about where the problem is. Again, my main point here is just a warning that the change I've pushed intentionally does not attempt to handle all possible quoted multi-word arguments, and I think that's fine because it's very likely an extremely rare use case. --steve |
From: Claes W. <kl...@ta...> - 2010-05-08 20:42:49
|
On 05/06/2010 11:03 PM, Claes Wikstrom wrote: > On 05/04/2010 10:58 AM, Andrew wrote: >> Thanks all for reply! >> >> The problem relates to additional parameter --erlarg . >> (I thought it is irrelevant, but I was wrong). >> Without --erlarg its works perfectly. But yaws does not restart with >> --erlarg >> >> this does not work: >> yaws --daemon --heart --heart-restart=0,0 --erlarg "-env SOME_PATH >> /home/user1" >> >> and this works perfect: >> yaws --daemon --heart --heart-restart=0,0 >> > > Ok, clearly a bug, we'll look into it. > Did a bit of debugging here, first off a trick that some of you may need in future debugging sessions, I added: exec 3>&1 4>&2 >$HOME/tmp/cap.$$ 2>&1 To the top of the yaws script, thus redirecting script output from within the script itself It turns out that the quotes are dropped on the second invocation, thus yaws --daemon --heart --heart-restart=0,0 --erlarg "-env SOME_PATH /home/user1" becomes, yaws --daemon --heart --heart-restart=0,0 --erlarg -env SOME_PATH /home/user1 making yaws reject the command line. I see no real good way out of this, maybe some clever /bin/sh wizard on the list knows better. I'm dropping this, you'll have to solve this some other way. Sorry, /klacke |
From: Steve V. <vi...@ie...> - 2010-05-08 21:17:56
|
On Sat, May 8, 2010 at 4:42 PM, Claes Wikstrom <kl...@ta...> wrote: > On 05/06/2010 11:03 PM, Claes Wikstrom wrote: >> On 05/04/2010 10:58 AM, Andrew wrote: >>> Thanks all for reply! >>> >>> The problem relates to additional parameter --erlarg . >>> (I thought it is irrelevant, but I was wrong). >>> Without --erlarg its works perfectly. But yaws does not restart with >>> --erlarg >>> >>> this does not work: >>> yaws --daemon --heart --heart-restart=0,0 --erlarg "-env SOME_PATH >>> /home/user1" >>> >>> and this works perfect: >>> yaws --daemon --heart --heart-restart=0,0 >>> >> >> Ok, clearly a bug, we'll look into it. >> > > Did a bit of debugging here, first off a trick that some of you > may need in future debugging sessions, I added: > > > exec 3>&1 4>&2 >$HOME/tmp/cap.$$ 2>&1 > > To the top of the yaws script, thus redirecting script output from > within the script itself > > It turns out that the quotes are dropped on the second invocation, thus > > yaws --daemon --heart --heart-restart=0,0 --erlarg "-env SOME_PATH /home/user1" > > becomes, > > yaws --daemon --heart --heart-restart=0,0 --erlarg -env SOME_PATH /home/user1 > > making yaws reject the command line. > > I see no real good way out of this, maybe some clever /bin/sh wizard on > the list knows better. I'm dropping this, you'll have to solve this some other > way. This is good debug info, so I'll try to pick up the debugging from here. --steve |
From: Claes W. <kl...@ta...> - 2010-05-09 21:15:04
|
On 05/08/2010 11:17 PM, Steve Vinoski wrote: > > > This is good debug info, so I'll try to pick up the debugging from here. > But it's not really a yaws issue any longer, it's erl -heart and quoted args that don't work too well together. Solving it is hard/impossible at least with the same set of flags. /klacke |
From: Claes W. <kl...@ta...> - 2010-05-09 21:17:30
|
On 05/09/2010 11:01 PM, Andrew Yanovsky wrote: > It works very well! > Andrew. > Well what do you know, that's just what I called for, a /bin/sh wizard. Hats off! /klacke |
From: Andrew Y. <bur...@gm...> - 2010-05-09 21:40:21
|
I see, he is! Hats off to Steve Vinoski! > > Well what do you know, that's just what I called for, a /bin/sh > wizard. Hats off! > > /klacke > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Erlyaws-list mailing list > Erl...@li... > https://lists.sourceforge.net/lists/listinfo/erlyaws-list > |
From: Steve V. <vi...@ie...> - 2010-05-09 22:08:17
|
OK, thanks for checking it; I've now pushed it up to github. This solution will work for the case you provided, which is very very much the normal case, but if anyone ever wanted to pass something like --erlargs "-env NAME O'Keeffe" where the name or value contains a single quote, it will still fail. This case and the case where either name or value contains a double quote are also fixable, but I figured they'd be so rare they're not worth cluttering the code to handle them. --steve On Sun, May 9, 2010 at 5:40 PM, Andrew Yanovsky <bur...@gm...> wrote: > I see, he is! Hats off to Steve Vinoski! > >> >> Well what do you know, that's just what I called for, a /bin/sh >> wizard. Hats off! >> >> /klacke >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> Erlyaws-list mailing list >> Erl...@li... >> https://lists.sourceforge.net/lists/listinfo/erlyaws-list > > > ------------------------------------------------------------------------------ > > > _______________________________________________ > Erlyaws-list mailing list > Erl...@li... > https://lists.sourceforge.net/lists/listinfo/erlyaws-list > > |
From: Daniel F. <fly...@go...> - 2010-05-09 22:55:10
|
2010/5/10 Steve Vinoski <vi...@ie...> > OK, thanks for checking it; I've now pushed it up to github. This > solution will work for the case you provided, which is very very much > the normal case, but if anyone ever wanted to pass something like > > --erlargs "-env NAME O'Keeffe" > > where the name or value contains a single quote, it will still fail. > This case and the case where either name or value contains a double > quote are also fixable, but I figured they'd be so rare they're not > worth cluttering the code to handle them. > > --steve > > On Sun, May 9, 2010 at 5:40 PM, Andrew Yanovsky <bur...@gm...> > wrote: > > I see, he is! Hats off to Steve Vinoski! > > > >> > >> Well what do you know, that's just what I called for, a /bin/sh > >> wizard. Hats off! > >> > >> /klacke > >> > >> > >> > ------------------------------------------------------------------------------ > >> > >> _______________________________________________ > >> Erlyaws-list mailing list > >> Erl...@li... > >> https://lists.sourceforge.net/lists/listinfo/erlyaws-list > > > > > > > ------------------------------------------------------------------------------ > > > > > > _______________________________________________ > > Erlyaws-list mailing list > > Erl...@li... > > https://lists.sourceforge.net/lists/listinfo/erlyaws-list > > > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Erlyaws-list mailing list > Erl...@li... > https://lists.sourceforge.net/lists/listinfo/erlyaws-list > wouldn't help it to escape this quotes with an \ if someone want to use them? for example --erlargs "-env NAME O\'Keeffe" |