Closed Bug 1817129 Opened 2 years ago Closed 2 years ago

Failure to call OnSessionClosed() in WebTransportSessionProxy if AsyncConnect fails

Categories

(Core :: Networking: HTTP, defect, P2)

defect

Tracking

()

RESOLVED FIXED
112 Branch
Tracking Status
firefox112 --- fixed

People

(Reporter: jesup, Assigned: jesup)

References

(Blocks 1 open bug)

Details

(Whiteboard: [necko-triaged])

Attachments

(1 file)

If the AsyncConnect() call fails and returns an rv (not NS_OK), it doesn't do anything to ensure OnSessionClosed() is called, and several paths don't move the state to DONE.

WebTransportSessionProxy::AsyncConnect needs to ensure the caller gets the
normal callback from AsyncConnect, or require that they not wait for it on
an error return from AsyncConnect. Also, several error paths didn't clear
the listener and didn't change the state to 'DONE'.

Severity: -- → S3
Priority: -- → P2
Whiteboard: [necko-triaged]
Pushed by rjesup@wgate.com: https://hg.mozilla.org/integration/autoland/rev/ddb0ea4cdda2 Ensure OnSessionClosed is called in error paths for AsyncConnect r=kershaw,necko-reviewers

Backed out (bug 1815997, bug 1811624, bug 1814122, bug 1818074, bug 1815993, bug 1811958, bug 1814113, bug 1790678, bug 1817130, bug 1817129, bug 1814750, bug 1817521) for causing bp-hybrid build bustages related to WebTransport.

[task 2023-02-23T04:26:38.574Z] 04:26:38     INFO -  gmake[4]: Entering directory '/builds/worker/workspace/obj-build/dom/webtransport/api'
[task 2023-02-23T04:26:38.577Z] 04:26:38     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ --sysroot /builds/worker/fetches/sysroot-x86_64-linux-gnu -Qunused-arguments -std=gnu++17 -o WebTransportBidirectionalStream.o -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -I/builds/worker/workspace/obj-build/dist/system_wrappers -include /builds/worker/checkouts/gecko/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_LINUX=1 -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/dom/webtransport/api -I/builds/worker/workspace/obj-build/dom/webtransport/api -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -fno-exceptions -fPIC -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -gdwarf-4 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -fno-omit-frame-pointer -funwind-tables -Werror -Wall -Wbitfield-enum-conversion -Wdeprecated-this-capture -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtautological-constant-in-range-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wc++2a-compat -Wenum-compare-conditional -Wenum-float-conversion -Wno-ambiguous-reversed-operator -Wno-error=deprecated -Wno-error=deprecated-anon-enum-enum-conversion -Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated-pragma -Wno-error=deprecated-this-capture -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wformat -Wformat-security -Wno-psabi -Wthread-safety -Wno-unknown-warning-option -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/WebTransportBidirectionalStream.o.pp   /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.cpp
[task 2023-02-23T04:26:38.579Z] 04:26:38     INFO -  In file included from /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.cpp:7:
[task 2023-02-23T04:26:38.580Z] 04:26:38    ERROR -  /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.h:34:7: error: unknown type name 'WebTransport'
[task 2023-02-23T04:26:38.582Z] 04:26:38     INFO -        WebTransport* aWebTransport, nsIGlobalObject* aGlobal,
[task 2023-02-23T04:26:38.583Z] 04:26:38     INFO -        ^
[task 2023-02-23T04:26:38.584Z] 04:26:38    ERROR -  /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.h:35:23: error: no type named 'DataPipeReceiver' in namespace 'mozilla::ipc'
[task 2023-02-23T04:26:38.585Z] 04:26:38     INFO -        ::mozilla::ipc::DataPipeReceiver* receiver,
[task 2023-02-23T04:26:38.585Z] 04:26:38     INFO -        ~~~~~~~~~~~~~~~~^
[task 2023-02-23T04:26:38.586Z] 04:26:38    ERROR -  /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.h:36:23: error: no type named 'DataPipeSender' in namespace 'mozilla::ipc'
[task 2023-02-23T04:26:38.586Z] 04:26:38     INFO -        ::mozilla::ipc::DataPipeSender* sender, ErrorResult& aRv);
[task 2023-02-23T04:26:38.587Z] 04:26:38     INFO -        ~~~~~~~~~~~~~~~~^
[task 2023-02-23T04:26:38.587Z] 04:26:38    ERROR -  /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.cpp:37:41: error: unknown type name 'WebTransport'
[task 2023-02-23T04:26:38.588Z] 04:26:38     INFO -  WebTransportBidirectionalStream::Create(WebTransport* aWebTransport,
[task 2023-02-23T04:26:38.588Z] 04:26:38     INFO -                                          ^
[task 2023-02-23T04:26:38.590Z] 04:26:38    ERROR -  /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.cpp:39:41: error: unknown type name 'DataPipeReceiver'
[task 2023-02-23T04:26:38.591Z] 04:26:38     INFO -                                          DataPipeReceiver* receiver,
[task 2023-02-23T04:26:38.591Z] 04:26:38     INFO -                                          ^
[task 2023-02-23T04:26:38.591Z] 04:26:38    ERROR -  /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.cpp:40:41: error: unknown type name 'DataPipeSender'
[task 2023-02-23T04:26:38.591Z] 04:26:38     INFO -                                          DataPipeSender* sender,
[task 2023-02-23T04:26:38.591Z] 04:26:38     INFO -                                          ^
[task 2023-02-23T04:26:38.591Z] 04:26:38    ERROR -  /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.cpp:48:7: error: incomplete type 'mozilla::dom::WebTransportReceiveStream' named in nested name specifier
[task 2023-02-23T04:26:38.591Z] 04:26:38     INFO -        WebTransportReceiveStream::Create(aWebTransport, aGlobal, receiver, aRv);
[task 2023-02-23T04:26:38.591Z] 04:26:38     INFO -        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[task 2023-02-23T04:26:38.591Z] 04:26:38     INFO -  /builds/worker/workspace/obj-build/dist/include/mozilla/dom/WebTransportSendReceiveStreamBinding.h:19:7: note: forward declaration of 'mozilla::dom::WebTransportReceiveStream'
[task 2023-02-23T04:26:38.591Z] 04:26:38     INFO -  class WebTransportReceiveStream;
[task 2023-02-23T04:26:38.591Z] 04:26:38     INFO -        ^
[task 2023-02-23T04:26:38.595Z] 04:26:38    ERROR -  /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.cpp:53:7: error: incomplete type 'mozilla::dom::WebTransportSendStream' named in nested name specifier
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -        WebTransportSendStream::Create(aWebTransport, aGlobal, sender, aRv);
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -        ^~~~~~~~~~~~~~~~~~~~~~~~
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -  /builds/worker/workspace/obj-build/dist/include/mozilla/dom/WebTransportSendReceiveStreamBinding.h:21:7: note: forward declaration of 'mozilla::dom::WebTransportSendStream'
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -  class WebTransportSendStream;
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -        ^
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -  In file included from /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.cpp:7:
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -  In file included from /builds/worker/checkouts/gecko/dom/webtransport/api/WebTransportBidirectionalStream.h:10:
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -  In file included from /builds/worker/workspace/obj-build/dist/include/nsCOMPtr.h:28:
[task 2023-02-23T04:26:38.595Z] 04:26:38    ERROR -  /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:49:37: error: member access into incomplete type 'mozilla::dom::WebTransportReceiveStream'
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -    static void AddRef(U* aPtr) { aPtr->AddRef(); }
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -                                      ^
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -  /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:380:61: note: in instantiation of member function 'mozilla::RefPtrTraits<mozilla::dom::WebTransportReceiveStream>::AddRef' requested here
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -      static void AddRef(U* aPtr) { mozilla::RefPtrTraits<U>::AddRef(aPtr); }
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -                                                              ^
[task 2023-02-23T04:26:38.595Z] 04:26:38     INFO -  /builds/worker/workspace/obj-build/dist/include/mozilla/RefPtr.h:109:37: note: in instantiation of member function 'RefPtr<mozilla::dom::WebTransportReceiveStream>::ConstRemovingRefPtrTraits<mozilla::dom::WebTransportReceiveStream>::AddRef' requested here
<...>
Flags: needinfo?(rjesup)
Pushed by rjesup@wgate.com: https://hg.mozilla.org/integration/autoland/rev/bd9335a4cfd1 Ensure OnSessionClosed is called in error paths for AsyncConnect r=kershaw,necko-reviewers
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 112 Branch
Flags: needinfo?(rjesup)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: