Giter Club home page Giter Club logo

owt-sdk-quic's Issues

Crash while writing after session is terminated.

QuicTransportStreamImpl::Write posts a task to io_runner_. Session might be stopped before the task is finished.

Call stack:

 	owt_quic_transport.dll!quic::QuicTransportStream::CanWrite() Line 101	C++
>	owt_quic_transport.dll!owt::quic::QuicTransportStreamImpl::Write(uint8_t *, size_t)::(anonymous class)::operator()() Line 114	C++
 	owt_quic_transport.dll!base::internal::FunctorTraits<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',void>::Invoke<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',owt::quic::QuicTransportStreamImpl *,unsigned char *,unsigned long long &,bool &,base::WaitableEvent *>() Line 379	C++
 	owt_quic_transport.dll!base::internal::InvokeHelper<0,void>::MakeItSo<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',owt::quic::QuicTransportStreamImpl *,unsigned char *,unsigned long long &,bool &,base::WaitableEvent *>() Line 637	C++
 	owt_quic_transport.dll!base::internal::Invoker<base::internal::BindState<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',base::internal::UnretainedWrapper<owt::quic::QuicTransportStreamImpl>,base::internal::UnretainedWrapper<unsigned char>,std::__1::reference_wrapper<unsigned long long>,std::__1::reference_wrapper<bool>,base::internal::UnretainedWrapper<base::WaitableEvent>>,void ()>::RunImpl<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',std::__1::tuple<base::internal::UnretainedWrapper<owt::quic::QuicTransportStreamImpl>,base::internal::UnretainedWrapper<unsigned char>,std::__1::reference_wrapper<unsigned long long>,std::__1::reference_wrapper<bool>,base::internal::UnretainedWrapper<base::WaitableEvent>>,0,1,2,3,4>() Line 710	C++
 	owt_quic_transport.dll!base::internal::Invoker<base::internal::BindState<`lambda at ../../owt/quic_transport/impl/quic_transport_stream_impl.cc:112:11',base::internal::UnretainedWrapper<owt::quic::QuicTransportStreamImpl>,base::internal::UnretainedWrapper<unsigned char>,std::__1::reference_wrapper<unsigned long long>,std::__1::reference_wrapper<bool>,base::internal::UnretainedWrapper<base::WaitableEvent>>,void ()>::RunOnce() Line 679	C++
 	owt_quic_transport.dll!base::OnceCallback<void ()>::Run() Line 101	C++
 	owt_quic_transport.dll!base::TaskAnnotator::RunTask() Line 165	C++
 	owt_quic_transport.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl() Line 333	C++
 	owt_quic_transport.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() Line 254	C++
 	owt_quic_transport.dll!base::MessagePumpForIO::DoRunLoop() Line 723	C++
 	owt_quic_transport.dll!base::MessagePumpWin::Run() Line 82	C++
 	owt_quic_transport.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run() Line 450	C++
 	owt_quic_transport.dll!base::RunLoop::Run() Line 124	C++
 	owt_quic_transport.dll!base::Thread::Run() Line 311	C++
 	owt_quic_transport.dll!base::Thread::ThreadMain() Line 385	C++
 	owt_quic_transport.dll!base::`anonymous namespace'::ThreadFunc() Line 113	C++
 	[External Code]	

Moving to WebTransport

quic-transport will no longer be supported by browser. Moving to HTTP/3 based WebTransport to align with spec.

getting error at gn gen out/debug step

hello while i am trying to do the steps in build_instructions one by one at "gn gen out/debug" step I am getting the error
"ERROR Unresolved dependencies.
//:gn_all(//build/toolchain/linux:clang_x64)
needs //owt/web_transport:owt_web_transport(//build/toolchain/linux:clang_x64)"

Any idea how to make it run?
Thank you in advance.

compile web_transport failed

I read this article, follow the article step by step, check the latest main branch, but compile failed.

ninja -C out/release owt_web_transport owt_web_transport_tests
ninja: Entering directory `out/release'
[3414/3759] CXX obj/owt/web_transport/owt_web_transport_impl/web_transport_stream_impl.o
FAILED: obj/owt/web_transport/owt_web_transport_impl/web_transport_stream_impl.o
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/owt/web_transport/owt_web_transport_impl/web_transport_stream_impl.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DUSE_X11=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-12-init-5627-gf086e85e-2\" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -D_LIBCPP_DEBUG=0 -DCR_LIBCXX_REVISION=375504 -DCR_SYSROOT_HASH=5f64b417e1018dcf8fcc81dc2714e0f264b9b911 -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DOWT_QUIC_LIBRARY_IMPL -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -I../.. -Igen -I../../owt/web_transport/sdk -I../../owt/web_transport/sdk/api -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -mllvm -enable-dse-memoryssa=false -fcomplete-member-pointers -m64 -march=x86-64 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -Wall -Werror -Wextra -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-psabi -Wno-ignored-pragma-optimize -Wno-implicit-int-float-conversion -Wno-final-dtor-non-final-class -Wno-builtin-assume-aligned-alignment -Wno-deprecated-copy -Wno-non-c-typedef-for-linkage -Wmax-tokens -O0 -fno-omit-frame-pointer -g1 -ftrivial-auto-var-init=pattern -fvisibility=hidden -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-ipc -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -isystem../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0 -isystem../../build/linux/debian_sid_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include -Wno-shorten-64-to-32 -Wno-header-guard -isystem../../build/linux/debian_sid_amd64-sysroot/usr/include/nss -isystem../../build/linux/debian_sid_amd64-sysroot/usr/include/nspr -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=c++14 -fno-trigraphs -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include --sysroot=../../build/linux/debian_sid_amd64-sysroot -fvisibility-inlines-hidden -c ../../owt/web_transport/sdk/impl/web_transport_stream_impl.cc -o obj/owt/web_transport/owt_web_transport_impl/web_transport_stream_impl.o
In file included from ../../owt/web_transport/sdk/impl/web_transport_stream_impl.cc:15:
In file included from ../../owt/web_transport/sdk/impl/web_transport_stream_impl.h:21:
../../owt/web_transport/sdk/impl/http3_server_stream.h:50:9: error: no type named 'Http2HeaderBlock' in namespace 'spdy'; did you mean 'SpdyHeaderBlock'?
  spdy::Http2HeaderBlock request_headers_;
  ~~~~~~^~~~~~~~~~~~~~~~
        SpdyHeaderBlock
../../net/third_party/quiche/src/spdy/core/spdy_header_block.h:49:29: note: 'SpdyHeaderBlock' declared here
class QUICHE_EXPORT_PRIVATE SpdyHeaderBlock {
                            ^
In file included from ../../owt/web_transport/sdk/impl/web_transport_stream_impl.cc:15:
../../owt/web_transport/sdk/impl/web_transport_stream_impl.h:23:10: fatal error: 'net/third_party/quiche/src/quic/core/web_transport_interface.h' file not found
#include "net/third_party/quiche/src/quic/core/web_transport_interface.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
[3415/3759] CXX obj/owt/web_transport/owt_web_transport_impl/web_transport_server_backend.o
FAILED: obj/owt/web_transport/owt_web_transport_impl/web_transport_server_backend.o
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/owt/web_transport/owt_web_transport_impl/web_transport_server_backend.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DUSE_X11=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-12-init-5627-gf086e85e-2\" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -D_LIBCPP_DEBUG=0 -DCR_LIBCXX_REVISION=375504 -DCR_SYSROOT_HASH=5f64b417e1018dcf8fcc81dc2714e0f264b9b911 -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DOWT_QUIC_LIBRARY_IMPL -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -I../.. -Igen -I../../owt/web_transport/sdk -I../../owt/web_transport/sdk/api -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -mllvm -enable-dse-memoryssa=false -fcomplete-member-pointers -m64 -march=x86-64 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -Wall -Werror -Wextra -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-psabi -Wno-ignored-pragma-optimize -Wno-implicit-int-float-conversion -Wno-final-dtor-non-final-class -Wno-builtin-assume-aligned-alignment -Wno-deprecated-copy -Wno-non-c-typedef-for-linkage -Wmax-tokens -O0 -fno-omit-frame-pointer -g1 -ftrivial-auto-var-init=pattern -fvisibility=hidden -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-ipc -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -isystem../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0 -isystem../../build/linux/debian_sid_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include -Wno-shorten-64-to-32 -Wno-header-guard -isystem../../build/linux/debian_sid_amd64-sysroot/usr/include/nss -isystem../../build/linux/debian_sid_amd64-sysroot/usr/include/nspr -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=c++14 -fno-trigraphs -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include --sysroot=../../build/linux/debian_sid_amd64-sysroot -fvisibility-inlines-hidden -c ../../owt/web_transport/sdk/impl/web_transport_server_backend.cc -o obj/owt/web_transport/owt_web_transport_impl/web_transport_server_backend.o
In file included from ../../owt/web_transport/sdk/impl/web_transport_server_backend.cc:7:
In file included from ../../owt/web_transport/sdk/impl/web_transport_server_backend.h:11:
In file included from ../../owt/web_transport/sdk/impl/web_transport_server_session.h:15:
../../owt/web_transport/sdk/impl/http3_server_session.h:46:38: error: only virtual member functions can be marked 'override'
  bool ShouldNegotiateWebTransport() override;
                                     ^~~~~~~~
../../owt/web_transport/sdk/impl/http3_server_session.h:47:39: error: only virtual member functions can be marked 'override'
  bool ShouldNegotiateHttp3Datagram() override;
                                      ^~~~~~~~
In file included from ../../owt/web_transport/sdk/impl/web_transport_server_backend.cc:7:
In file included from ../../owt/web_transport/sdk/impl/web_transport_server_backend.h:11:
../../owt/web_transport/sdk/impl/web_transport_server_session.h:16:10: fatal error: 'net/third_party/quiche/src/quic/core/http/web_transport_http3.h' file not found

Hang on destroying this from ConferenceWebTransportChannel

When the destructor is called on the interface method that this implements from https://github.com/open-webrtc-toolkit/owt-client-native/blob/5626f534c0f5237e3a7a5303417f1eafd90f3cd2/talk/owt/sdk/conference/conferencewebtransportchannel.cc#L67 the destructor will be pended on the wait() call.

Why would the destructor need to pend on wait() if this instance will be destroyed?

Execute “gn gen out/debug” command failed when compiling owt sdk on Ubuntu 18.04 system

Hi,
Seems that "gclient sync" is done.
When execute “gn gen out/debug” command
It outputs as follow:

ERROR at //testing/test.gni:21:30: Undefined identifier
tests_have_location_tags = generate_location_tags
^---------------------
See //testing/libfuzzer/fuzzer_test.gni:9:1: whence it was imported.
import("//testing/test.gni")
^--------------------------
See //media/media_options.gni:11:1: whence it was imported.
import("//testing/libfuzzer/fuzzer_test.gni")
^-------------------------------------------
See //chromecast/chromecast.gni:8:1: whence it was imported.
import("//media/media_options.gni")
^---------------------------------
See //chrome/browser/buildflags.gni:8:1: whence it was imported.
import("//chromecast/chromecast.gni")
^-----------------------------------
See //BUILD.gn:19:1: whence it was imported.
import("//chrome/browser/buildflags.gni")
^---------------------------------------

Any advice about this error?

undefined symbol function

undefined symbol: net::InitializeQuicConfig(net::QuicParams const&)

owt-deps-quic\web_transport\sdk\impl\web_transport_http3_client.cc:429

Chromium build

Hi
Is there a way to build the owt-sdk-quic without downloading and building the entire chromium code (as it takes a very long time) . Is there still a dependency on chrome .

I saw a few quic clients online which dont need chrome.

I am reading that the new QUIC which the webtransport uses , is independent of chrome.
So assuming owt-sdk-quic uses the web transport / HTTP3/QUIC defined by IETF, do we still need to build chrome ?

thanks

how to reset the chromium?

Reset chromium commit close to 0d7f510fc898d4040d474a58b0eb609c43b6ac20.
what is the tag of that vesion.

Sample Application (Linux / Windows)

Hi
Is there any sample quic/webtransport application ( linux or windows) which uses owt-client-native which calls owt-quic-sdk to
test the webtransport / quic features of owt server / client. If so can you please provide the location ?

thanks

Support H3_DATAGRAM_DRAFT04

The latest Chromium supports H3_DATAGRAM_DRAFT04 instead of H3_DATAGRAM_DRAFT00. Handshake fails if the version doesn't match.

Question about blackhole detection and idle network detection

Hi,

I am taking tests on high sender loss network condition. The connection is often closed by the network blackhole detection. After I swiched the blackhole_detection_disabled_ to true in quic_connection.h, I got the QUIC_NETWORK_IDLE_TIMEOUT error. However, I think 5 rtos or 33ms timeout is very normal in weak network condition.

Is this normal? Could you please some hints on these problems? Thank you very much.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.