Closed Bug 1623325 Opened 4 months ago Closed 4 months ago

Windows MSVC 2019 build bustage: nsTArray.h(544,34): error: no matching constructor for initialization of 'mozilla::dom::indexedDB::StructuredCloneReadInfoChild'

Categories

(Core :: Storage: IndexedDB, defect)

Unspecified
Windows
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla76
Tracking Status
firefox-esr68 --- unaffected
firefox74 --- wontfix
firefox75 --- fixed
firefox76 --- fixed

People

(Reporter: RyanVM, Assigned: sg)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(2 files)

I'm building locally with Rust 1.42.0 and the latest Windows SDK (10.0.18362.0) in case that's relevant here.

In file included from objdir-clang/dist/include\mozilla/dom/IndexedDatabase.h:13:
objdir-clang/dist/include/nsTArray.h(544,34): error: no matching constructor for initialization of 'mozilla::dom::indexedDB::StructuredCloneReadInfoChild'
    new (static_cast<void*>(aE)) E(std::forward<Args>(aArgs)...);
                                 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
objdir-clang/dist/include/nsTArray.h(2474,16): note: in instantiation of function template specialization 'nsTArrayElementTraits<mozilla::dom::indexedDB::StructuredCloneReadInfoChild>::Emplace<mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild> &>' requested here
  elem_traits::Emplace(elem, std::forward<Args>(aArgs)...);
               ^
objdir-clang/dist/include/nsTArray.h(2552,20): note: in instantiation of function template specialization 'nsTArray_Impl<mozilla::dom::indexedDB::StructuredCloneReadInfoChild, nsTArrayInfallibleAllocator>::EmplaceBackInternal<nsTArrayInfallibleAllocator, mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild> &>' requested here
        ->template EmplaceBackInternal<nsTArrayInfallibleAllocator, Args...>(
                   ^
objdir-clang/dist/include/nsTArray.h(2745,13): note: in instantiation of function template specialization 'nsTArray<mozilla::dom::indexedDB::StructuredCloneReadInfoChild>::EmplaceBack<mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild> &>' requested here
    mArray->EmplaceBack(std::forward<O>(aValue));
            ^
C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\include\xutility(1269,13): note: in instantiation of function template specialization 'mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild>::operator=<mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild> &>' requested here
        _It = static_cast<_UIter&&>(_UIt);
            ^
dom/indexedDB/ActorsChild.cpp(2700,10): note: in instantiation of function template specialization 'std::transform<std::move_iterator<mozilla::ArrayIterator<mozilla::dom::indexedDB::SerializedStructuredCloneReadInfo &, nsTArray<mozilla::dom::indexedDB::SerializedStructuredCloneReadInfo> > >, mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild>, (lambda at dom/indexedDB/ActorsChild.cpp:2704:9)>' requested here
    std::transform(
         ^
objdir-clang/dist/include\mozilla/dom/IndexedDatabase.h(167,8): note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild>' to 'const mozilla::dom::indexedDB::StructuredCloneReadInfoChild' for 1st argument
struct StructuredCloneReadInfoChild : StructuredCloneReadInfo {
       ^
objdir-clang/dist/include\mozilla/dom/IndexedDatabase.h(167,8): note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild>' to 'mozilla::dom::indexedDB::StructuredCloneReadInfoChild' for 1st argument
dom/indexedDB/IndexedDatabaseInlines.h(116,38): note: candidate constructor not viable: requires 3 arguments, but 1 was provided
inline StructuredCloneReadInfoChild::StructuredCloneReadInfoChild(
                                     ^
Flags: needinfo?(sgiesecke)
Attached file longer log
Summary: Windows build → Windows build bustage: nsTArray.h(544,34): error: no matching constructor for initialization of 'mozilla::dom::indexedDB::StructuredCloneReadInfoChild'

hrm, backing out the recent commits from bug 1617070 isn't helping. Maybe this is fallout from the MSVC 2019 16.5.0 update which went out yesterday...

No longer regressed by: 1617070

(In reply to Ryan VanderMeulen [:RyanVM] from comment #2)

hrm, backing out the recent commits from bug 1617070 isn't helping. Maybe this is fallout from the MSVC 2019 16.5.0 update which went out yesterday...

That's something I wanted to ask here as well, i.e. how this differs from the taskcluster Windows build environments.

I am not sure which STL version this file is from:

C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\include\xutility(1269,13): note: in instantiation of function template specialization 'mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild>::operator=<mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild> &>' requested here

I am not familiar with the Windows build environment, is that the Microsoft STL implementation that is also used with the Visual C++ compiler?

Yeah, we're on Visual Studio 2017 15.8.4 / SDK 10.0.17134.0 in CI, so quite a bit older at this point.

Summary: Windows build bustage: nsTArray.h(544,34): error: no matching constructor for initialization of 'mozilla::dom::indexedDB::StructuredCloneReadInfoChild' → Windows MSVC 2019 build bustage: nsTArray.h(544,34): error: no matching constructor for initialization of 'mozilla::dom::indexedDB::StructuredCloneReadInfoChild'

(In reply to Simon Giesecke [:sg] [he/him] from comment #3)

(In reply to Ryan VanderMeulen [:RyanVM] from comment #2)

hrm, backing out the recent commits from bug 1617070 isn't helping. Maybe this is fallout from the MSVC 2019 16.5.0 update which went out yesterday...

That's something I wanted to ask here as well, i.e. how this differs from the taskcluster Windows build environments.

I am not sure which STL version this file is from:

C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\include\xutility(1269,13): note: in instantiation of function template specialization 'mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild>::operator=<mozilla::nsTArrayBackInserter<mozilla::dom::indexedDB::StructuredCloneReadInfoChild> &>' requested here

I am not familiar with the Windows build environment, is that the Microsoft STL implementation that is also used with the Visual C++ compiler?

Yes, we are using the Microsoft STL.

Assignee: nobody → sgiesecke
Status: NEW → ASSIGNED

:RyanVM verified locally that the attached patch fixes the issue in IndexedDB.

Flags: needinfo?(sgiesecke)

Not really a "regression" from bug 1595750 per se, but that's where the affected code was added anyway. FWIW, this grafts cleanly to all affected branches. We may want to consider uplifting this to avoid pain for developers building locally.

(In reply to Ryan VanderMeulen [:RyanVM] from comment #8)

Not really a "regression" from bug 1595750 per se, but that's where the affected code was added anyway. FWIW, this grafts cleanly to all affected branches. We may want to consider uplifting this to avoid pain for developers building locally.

Do you want to uplift this to ESR68 as well? Or is that not a priority given ESR74 (?) is coming?

Flags: needinfo?(ryanvm)
Pushed by sgiesecke@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d37912641cc9
Fix nsTArrayBackInserter and add moving test. r=froydnj

(In reply to Nathan Froyd [:froydnj] from comment #9)

(In reply to Ryan VanderMeulen [:RyanVM] from comment #8)

Not really a "regression" from bug 1595750 per se, but that's where the affected code was added anyway. FWIW, this grafts cleanly to all affected branches. We may want to consider uplifting this to avoid pain for developers building locally.

Do you want to uplift this to ESR68 as well? Or is that not a priority given ESR74 (?) is coming?

ESR68 is not affected, Bug 1595750 only landed in FF72.

Flags: needinfo?(ryanvm)

For one brief, happy second, I thought I was ahead of RyanVM on uplifting patches. It turns out to not be so. :(

(In reply to Nathan Froyd [:froydnj] from comment #12)

For one brief, happy second, I thought I was ahead of RyanVM on uplifting patches. It turns out to not be so. :(

Better luck next time! :D

Status: ASSIGNED → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla76

Comment on attachment 9134151 [details]
Bug 1623325 - Fix nsTArrayBackInserter and add moving test. r=froydnj

Beta/Release Uplift Approval Request

  • User impact if declined: Developer experience: The fix is necessary to make a build with the current MSVC toolset.
  • Is this code covered by automated tests?: Yes
  • 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): Change is rather syntactical, and covered by unit tests.
  • String changes made/needed:
Attachment #9134151 - Flags: approval-mozilla-release?
Attachment #9134151 - Flags: approval-mozilla-beta?

Comment on attachment 9134151 [details]
Bug 1623325 - Fix nsTArrayBackInserter and add moving test. r=froydnj

Fixes bustage with newer versions of MSVC. Approved for 75.0b6.

Attachment #9134151 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9134151 - Flags: approval-mozilla-release? → approval-mozilla-release-
You need to log in before you can comment on or make changes to this bug.