Because the update function that deletes it looks like this:

function system_update_7036() {
  // Get existing roles that can 'administer site configuration'.
  $rids = db_query("SELECT rid FROM {role_permission} WHERE permission = :perm", array(':perm' => 'administer site configuration'))->fetchCol();
  // None found.
  if (empty($rids)) {
    return;
  }

// ... do other stuff ...

  // Remove obsolete variable 'site_offline_message'. See
  // update_fix_d7_requirements().
  variable_del('site_offline_message');
}

So if you hit the early return, the code that deletes the stale variable never gets run.

Should be a simple fix - just move that code out of this update function and into a new one. I'm holding off on writing a patch for now, though, since this is likely to conflict with #984358: Upgrade from 6.x to 7.x always pulls your site out of maintenance mode immediately which is already well on its way to being committed.

Comments

David_Rothstein’s picture

Status: Active » Needs review
StatusFileSize
new1.67 KB
Tor Arne Thune’s picture

Component: update system » ajax system
Issue tags: +Quick fix
StatusFileSize
new1.33 KB

Still a valid issue and a quick fix! Re-rolling.

Tor Arne Thune’s picture

Component: ajax system » database update system
aspilicious’s picture

Status: Needs review » Reviewed & tested by the community
webchick’s picture

Status: Reviewed & tested by the community » Fixed

Nice catch.

Committed and pushed to 7.x. Thanks!

Status: Fixed » Closed (fixed)
Issue tags: -Quick fix

Automatically closed -- issue fixed for 2 weeks with no activity.