[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] ViewMTN seems to have trouble talking to monotone
From: |
Timothy Brownawell |
Subject: |
Re: [Monotone-devel] ViewMTN seems to have trouble talking to monotone |
Date: |
Wed, 28 Jan 2009 18:15:44 -0600 |
On Thu, 2009-01-29 at 00:58 +0100, Ludovic Brenta wrote:
> Hi, it's me again.
>
> After I announced the Ada-France ViewMTN server publicly, I received
> several reports from people getting "500 Internal Server Error"
> whenever clicking a link in the web interface. This is strange
> because in my own testing, I have never seen such errors, neither
> before nor after receiving the user reports.
>
> In the log however, I see many instances of:
>
> Traceback (most recent call last):
> File "/var/lib/monotone/net.angrygoats.viewmtn/web/webapi.py", line 304, in
> wsgifunc
> result = func()
> File "/var/lib/monotone/net.angrygoats.viewmtn/web/request.py", line 131,
> in <lambda>
> func = lambda: handle(inp, fvars)
> File "/var/lib/monotone/net.angrygoats.viewmtn/web/request.py", line 61, in
> handle
> return tocall(*([x and urllib.unquote(x) for x in args] + fna))
> File "/var/lib/monotone/net.angrygoats.viewmtn/viewmtn.py", line 123, in GET
> return handler.GET (ctxt, *other_args, **kwargs)
> File "/var/lib/monotone/net.angrygoats.viewmtn/handlers.py", line 314, in
> GET
> Changes.Branch_GET(self, ctxt, branch, from_change, to_change,
> "branchchanges.html")
> File "/var/lib/monotone/net.angrygoats.viewmtn/handlers.py", line 246, in
> Branch_GET
> last_changes = self.branch_get_last_changes(ctxt.ops, branch,
> from_change, to_change)
> File "/var/lib/monotone/net.angrygoats.viewmtn/handlers.py", line 240, in
> branch_get_last_changes
> to_change)
> File "/var/lib/monotone/net.angrygoats.viewmtn/handlers.py", line 144, in
> __get_last_changes
> heapq.heappush(revq, Changes.ComparisonRev(ops, rev))
> File "/var/lib/monotone/net.angrygoats.viewmtn/handlers.py", line 111, in
> __init__
> self.certs = list(ops.certs(self.revision))
> File "/var/lib/monotone/net.angrygoats.viewmtn/mtn.py", line 451, in certs
> for stanza in basic_io_from_stream(self.automate.run('certs',
> [revision])):
> File "/var/lib/monotone/net.angrygoats.viewmtn/mtn.py", line 355, in
> basic_io_from_stream
> for line in gen:
> File "/var/lib/monotone/net.angrygoats.viewmtn/genproxy.py", line 18, in
> next
> return self.generator.next()
> File "/var/lib/monotone/net.angrygoats.viewmtn/mtn.py", line 231, in __run
> raise MonotoneException("error code %d in automate packet." % (code_max))
> MonotoneException: error code 2 in automate packet.
It might help to make it include the packet contents in the error, to
show exactly what error monotone gave.
> I'm wondering what could cause such errors. On this machine, "mtn
> automate interface_version" reports 4.0 but I don't think the problem
> is actually tool old a version of monotone because the errors do not
> occur every time the same URL is requested. For example, the last
> time such an error occurred was on the URL /tags but I just tried it
> and it worked fine.
>
> My analysis of the log file shows that consecutive errors are most
> often separated in time by a less than 20 seconds, so perhaps what
> triggers the problem is heavy load on the machine? However I have not
> been able to receive a "500 Internal Server Error" when I rapidly
> clicked on 5-10 links in rapid succession (2-3 clicks per second).
Is viewmtn looking at the same database as a "mtn serve" process?
Monotone will give errors if you try to use a db that another process
has locked for writing (such as a server with an active connection).
--
Timothy
Free (experimental) public monotone hosting: http://mtn-host.prjek.net