Problem/Motivation
This is OK in HEAD, but it causes an infinite loop/OOM once #2689561: CPS sessions can be lost within a browser tab is applied.
cps_changeset_load() does a dsm() if the current changeset is archived, with a helpful link to restore the changeset.
#2689561: CPS sessions can be lost within a browser tab adds a hook_url_outbound_alter(), which loads a changeset.
The result of the two is this - (got here after bisecting where it OOMed):
- drupal_add_js() calls url() with no arguments
- url() calls out to hook_url_outbound_alter()
- cps_url_outbound_alter() calls cps_changeset_load()
- cps_changeset_load(), when the changeset is archived, calls url()
- whoops.
Proposed resolution
Don't bother with the helpful link, assume that people know how to restore changesets if they're viewing one that's old enough to be archived.
Remaining tasks
User interface changes
API changes
Data model changes
| Comment | File | Size | Author |
|---|---|---|---|
| #7 | 2723283.patch | 947 bytes | catch |
| #5 | 2723283.patch | 956 bytes | catch |
| #4 | 2723283.patch | 957 bytes | catch |
| #2 | 2723283.patch | 956 bytes | catch |
Comments
Comment #2
catchComment #4
catchComment #5
catchComment #6
David_Rothstein commentedThis looks good but there's an extra
array()in there (which should not be one of the parameters passed to drupal_set_message()).Comment #7
catchOh dear.
Comment #8
David_Rothstein commentedComment #10
hadsie commented