From: Jakub Narebski <jnareb@gmail.com>
To: git@vger.kernel.org
Cc: Eric Wong <normalperson@yhbt.net>
Subject: Re: [RFC/PATCH] git-instaweb: Add support for running gitweb via 'plackup'
Date: Wed, 19 May 2010 22:52:46 +0200 [thread overview]
Message-ID: <201005192252.49461.jnareb@gmail.com> (raw)
In-Reply-To: <1274290298-19245-1-git-send-email-jnareb@gmail.com>
On Wed, 19 May 2010, Jakub Narebski wrote:
> ---
[...]
> RFC is because when when running
>
> $ ./git-instaweb --httpd=plackup --browser=lynx
>
> I get the following error
>
> Looking up 127.0.0.1:1234
> Making HTTP connection to 127.0.0.1:1234
> Alert!: Unable to connect to remote host.
>
> lynx: Can't access startfile http://127.0.0.1:1234/
> http://127.0.0.1:1234
>
> But running 'lynx http://127.0.0.1:1234/' after this works correctly
> without problems. Running './.git/gitweb/gitweb.psgi' doesn't cause
> any problems either. WTF?
I think I know what might be happening here. The plackup / Plack::Runner
needs some time to setup and start running HTTP::Server::PSGI based web
server. When it is ready to serve requests (web pages), it prints to stderr
<server>: Accepting connections at http://<host>:<port>/
In the case of .git/gitweb/gitweb.psgi script generated by git-instaweb it
is:
HTTP::Server::PSGI: Accepting connections at http://0:1234/
But plackup / Plack::Runner is run in background (HTTP::Server::PSGI does
not support '--daemonize'), and most probably the web browser is started
before web server is not ready.
Do you have any idea on how to synchronize those two processes, the web
server and the web client (web browser), so that web browser is run only
after web server prints that it is ready to accept connection?
TIA.
> @@ -83,9 +90,9 @@ start_httpd () {
>
> # don't quote $full_httpd, there can be arguments to it (-f)
> case "$httpd" in
> - *mongoose*)
> - #The mongoose server doesn't have a daemon mode so we'll have to fork it
> - $full_httpd "$fqgitdir/gitweb/httpd.conf" &
> + *mongoose*|*plackup*)
> + #The mongoose server and plackup don't have a daemon mode so we'll have to fork it
> + $full_httpd "$fqgitdir/gitweb/httpd.conf" 2>"$fqgitdir/error_log" &
> #Save the pid before doing anything else (we'll print it later)
> pid=$!
>
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2010-05-19 20:53 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-19 17:31 [RFC/PATCH] git-instaweb: Add support for running gitweb via 'plackup' Jakub Narebski
2010-05-19 20:52 ` Jakub Narebski [this message]
2010-05-20 11:56 ` [PATCHv2 (RFC)] " Jakub Narebski
2010-05-20 21:55 ` [RFC/PATCHv3] " Jakub Narebski
2010-05-22 21:30 ` Jakub Narebski
2010-05-23 9:19 ` Eric Wong
2010-05-23 11:17 ` Jakub Narebski
2010-05-23 12:38 ` Ævar Arnfjörð Bjarmason
2010-05-25 0:11 ` Jakub Narebski
2010-05-25 9:02 ` Jakub Narebski
2010-05-23 9:31 ` [RFC/PATCH] " Eric Wong
2010-05-23 20:21 ` Jakub Narebski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201005192252.49461.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=normalperson@yhbt.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).