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.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

David_Rothstein’s picture

Status: Active » Needs review
FileSize
1.67 KB
Tor Arne Thune’s picture

Component: update system » ajax system
Issue tags: +Quick fix
FileSize
1.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.