Summary | session table deadlock with remote calendars |
Queue | Kronolith |
Queue Version | 2.1.4 |
Type | Bug |
State | Resolved |
Priority | 2. Medium |
Owners | Horde Developers (at) |
Requester | morgan (at) orst (dot) edu |
Created | 03/12/2007 (6712 days ago) |
Due | |
Updated | 08/06/2007 (6565 days ago) |
Assigned | 04/04/2007 (6689 days ago) |
Resolved | 07/18/2007 (6584 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
longer read my calendar and it is also impossible to read the ics
file using a web browser.
to do with Secret::read()). It's fixed now, so I've put back the
$session_control = 'none' code.
read my calendar and it is also impossible to read the ics file using
a web browser.
When I remove the line "$session_control = 'none';" from ics.php, it
works again.
State ⇒ Resolved
clients don't stick.
do with Secret::read()). It's fixed now, so I've put back the
$session_control = 'none' code.
ics.php? If we can't fix that, either we can do that work to close
clients don't stick. It's sufficient to have a read-only but that
would still lock the session if I'm not mistaken.
a lock on the
session table at this point anyways?
calendar lookups. A more complicated answer is that we do a _lot_ of
caching in the session, and it'd take a lot of careful work to make
sure that we do everything we need to the session, including all
possible preferences changes, then close the session (or write close,
anyway), and only then list events.
Jan, do you remember what about remote calendars needs a session in
ics.php? If we can't fix that, either we can do that work to close the
session before listing events, we can try to recognize shares on the
same server and translate them internally. If I understand the problem
right we can't really pin this on table-level locking since at best a
user would still be able to lock their own session up, right?
and using remote shares on the same horde server (why?), while this
is a bug, I'm not sure it's worth figuring out a way around it...
is silly. However, since a user can effectively hang the Horde server
if they do this, should there be some sort of warning or protection?
Actually, why is the page fetching the remote calendar still holding a
lock on the session table at this point anyways?
and using remote shares on the same horde server (why?), while this is
a bug, I'm not sure it's worth figuring out a way around it...
Assigned to
State ⇒ Assigned
don't break remote calendars:
http://lists.horde.org/archives/cvs/Week-of-Mon-20070312/065963.html
Thanks!
State ⇒ Feedback
break remote calendars:
http://lists.horde.org/archives/cvs/Week-of-Mon-20070312/065963.html
Priority ⇒ 2. Medium
State ⇒ Unconfirmed
Queue ⇒ Kronolith
Summary ⇒ session table deadlock with remote calendars
Type ⇒ Bug
in Horde, it is possible to create a race/deadlock condition on the
session table when viewing a remote calendar that is hosted on your
server.
To reproduce this problem, add your own calendar (such as
https://example.com/kronolith/ics.php?c=bob@example.com) as a remote
calendar in Kronolith's Options. Click on "Today" and then select the
remote calendar from the "Select calendars to display:" drop-down list.
At this point, two separate Apache processes will be holding a lock on
the session table, and any new pages requiring access to the session
table will hang.