Closed Bug 1619231 Opened 4 years ago Closed 4 years ago

[s390x] Startup crash in sqlite3VdbeExec: Assertion `pIn3->flags & MEM_Blob' failed.

Categories

(Toolkit :: Storage, defect, P3)

Other
Linux
defect
Points:
1

Tracking

()

RESOLVED FIXED
mozilla78
Iteration:
80.2 - July 13 - July 26
Tracking Status
firefox-esr68 --- unaffected
firefox-esr78 --- fixed
firefox75 --- wontfix
firefox77 --- wontfix
firefox78 --- fixed
firefox79 --- fixed

People

(Reporter: msirringhaus, Assigned: mak)

References

(Blocks 1 open bug)

Details

Attachments

(1 file, 1 obsolete file)

Attached patch s390x-sqlite.patch (obsolete) — Splinter Review

Current mozilla-central crashes shortly after startup on s390x (big endian), with:

mozilla-central/third_party/sqlite3/src/sqlite3.c:89376: sqlite3VdbeExec: Assertion `pIn3->flags & MEM_Blob' failed.

This is a sqlite-bug, fixed with this upstream checkin: https://www.sqlite.org/src/info/04885763c4cd00cb

I've attached an in-tree patch as well.

Once a new sqlite-version is released, please update.

Should have added. The affected sqilte-version is 3.31.1
Anything later should contain the fix.

Blocks: big-endian
Component: General → Storage
Product: Firefox → Toolkit
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P3
Depends on: SQLite3.32.1

Considered this has been merged upstream, we could also take the patch for Firefox 75, though I suppose distribution maintainers can pick it as well, so I wonder if it's effectively useful to patch now, or we can just wait the next Sqlite release. Thoughts?

Flags: needinfo?(msirringhaus)

I'd be fine with waiting for the next sqlite release, if that happens before the next ESR-release of Firefox. I very much would like to have that fix in there.
In principle, I created this patch mostly to be found by others, who need a fix right now.

Flags: needinfo?(msirringhaus)

The next ESR will be Firefox 78 that is quite far in the future (2020-09-22), if you want this fix in the next ESR minor version (68.7, since I think it's too late for 68.6) then we need to push the patch to that branch.

I don't think the 68-branch is affected. At least 68.6 build 1 still has sqlite 3.28.0. And that worked so far.

you are right, I didn't think it through.

Thank you very much for addressing this and cross linking it with:

[Bug 1602836] [meta] Support for big endian

It saved my day on Solaris SPARC.

Any news on this with regard to having this fixed in FF 78 esr?

Flags: needinfo?(mak)

Unfortunately the sqlite update didn't make 78 due to timing (there was an additional .1 release that caused skipping).
I'd be ok taking the sqlite diff pointed by comment 0 into firefox 78, if it applies cleanly, since it has already been merged upstream. Since we don't use anymore system Sqlite from 75 on, that would solve the problem.
Ryan, wdyt?

Flags: needinfo?(mak) → needinfo?(ryanvm)

Comment on attachment 9130104 [details] [diff] [review]
s390x-sqlite.patch

Beta/Release Uplift Approval Request

  • User impact if declined: Ths fixes a compatibility problem with s390x (BigEndian), without this patch the system is not supported.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): This patch has been applied to Sqlite upstream just after the 3.31.1 release, see https://www.sqlite.org/src/info/04885763c4cd00cb. The change looks safe.
  • String changes made/needed:
Attachment #9130104 - Flags: approval-mozilla-beta?

I can take this on beta, but the patch is missing authorship information and a commit message.

Flags: needinfo?(ryanvm)

That's an interesting question, the patch is pretty much from https://www.sqlite.org/src/info/04885763c4cd00cb, I guess we can use drh info and the original commit message. let me prepare it.

Flags: needinfo?(mak)

Otherwise, I often create a "Backport upstream XYZ fix" patch with my name on it and a link to the upstream commit in question in these situations.

Beta/Release Uplift Approval Request

  • User impact if declined: Ths fixes a compatibility problem with s390x (BigEndian), without this patch the system is not supported.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): This patch has been applied to Sqlite upstream just after the 3.31.1 release, see https://www.sqlite.org/src/info/04885763c4cd00cb. The change looks safe.
  • String changes made/needed:
Assignee: nobody → mak
Flags: needinfo?(mak)
Attachment #9157112 - Flags: approval-mozilla-beta?
Attachment #9130104 - Attachment is obsolete: true
Attachment #9130104 - Flags: approval-mozilla-beta?
Comment on attachment 9157112 [details] [diff] [review]
Upstream patch backport

Approved for 78.0b8.
Attachment #9157112 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Do we already need a separate approval/landing for ESR? I see you didn't set its flag.

Status: NEW → RESOLVED
Closed: 4 years ago
Flags: needinfo?(ryanvm)
Resolution: --- → FIXED
Target Milestone: --- → mozilla78

We're good, beta gets merged to esr78 for now.

Flags: needinfo?(ryanvm)
Iteration: --- → 80.2 - July 13 - July 26
Points: --- → 1
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: