text:
Extract laravel integration into separate standalone repo

While I use Laravel, it might not be the case for other users. Also, required Laravel dependencies chain may introduce unnecessary conflicts with end-user deps.
As to usage, using Laravel integration should be covered with docs which are loosely coupled with  js-sandbox (or php-v8) docs itself, so there is no big reason to keep it all together
Things to do:

[ ] move to separate repo;
[ ] add to packagist;
[ ] enable package auto-discovery;
[ ] cover it with tests;
[ ] docs on integration and how to use it briefly (please, please), auto-discovery, disabling auto-discovery.

It might be a good idea to move it first to separate folder and subsplit. Using Laravel integration for international testing could be a nice idea as all dependencies are already in place.
https://github.com/orchestral/testbench could even make it simpler.

I'm moving away from PHP world and all my PHP projects going to be abandoned too. Closing this issue as I have no intent to continue working on it unless there would be strong request from community and commercial interest. No more updates or documentation will be made. If someone is interested, feels free to contact me using email specified in my GitHub profile.

repo: pinepain/js-sandbox


text:
*: add release notes for v2.0.0-RC

What is changed, added or deleted? (Required)

add release notes for v2.0.0-RC

Which DM version(s) do your changes apply to? (Required)

[x] master (the latest development version, including v2.0 changes for now)
[ ] v1.0 (TiDB DM 1.0 versions)

What is the related PR or file link(s)?

This PR is translated from:
Other reference link(s):

Do your changes match any of the following descriptions?

[ ] Delete files
[ ] Change aliases
[x] Have version specific changes
[ ] Might cause conflicts

@ireneontheway @lance6716 PTAL

@lance6716 @yikeke PTAL again

LGTM

LGTM

source: gharchive/pull-request

authors: TomShawn csuzhangxc lance6716

repo: pingcap/docs-dm

license_type: permissive

license_source: github-api


text:
Add goreport and license.

@ngaut @qiuyesuifeng @disksing

LGTM

PTAL @ngaut

LGTM

authors: ngaut qiuyesuifeng siddontang

repo: pingcap/pd


text:
Implement Elt function push down

Feature Request
Describe the feature you'd like:

We'd like to support Elt function push down.
Teachability, Documentation, Adoption, Migration Strategy:

At least one integration test and several unit tests.

/assign

/assign

source: gharchive/issue

authors: Willendless lizhenhuan

repo: pingcap/tiflash


text:
[Dynamic Region] Tiflash crash for Address not mapped to object

Bug Report
Please answer these questions before submitting your issue. Thanks!
1. Minimal reproduce step (Required)

[2023/09/05 21:49:39.862 +08:00] [ERROR] [BaseDaemon.cpp:370] [########################################] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:39.862 +08:00] [ERROR] [BaseDaemon.cpp:371] ["(from thread 47) Received signal Segmentation fault(11)."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:39.862 +08:00] [ERROR] [BaseDaemon.cpp:401] ["Address: 0x8"] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:39.862 +08:00] [ERROR] [BaseDaemon.cpp:407] ["Access: read."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:39.862 +08:00] [ERROR] [BaseDaemon.cpp:416] ["Address not mapped to object."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:39.862 +08:00] [ERROR] [BaseDaemon.cpp:563] ["\n       0x778ebc1\tfaultSignalHandler(int, siginfo_t*, void*) [tiflash+125365185]\n                \tlibs/libdaemon/src/BaseDaemon.cpp:214\n  0x7fd01874ddf0\t<unknown symbol> [libc.so.6+347632]\n       0x8755632\tDB::isUnsupportedEncodeType(std::__1::vector<tipb::FieldType, std::__1::allocator<tipb::FieldType> > const&, tipb::EncodeType) [tiflash+141907506]\n                \tdbms/src/Flash/Coprocessor/DAGUtils.cpp:1228\n       0x86f8065\tDB::DAGContext::initOutputInfo() [tiflash+141525093]\n                \tdbms/src/Flash/Coprocessor/DAGContext.cpp:190\n       0x86f90bc\tDB::DAGContext::DAGContext(tipb::DAGRequest&, mpp::TaskMeta const&, bool) [tiflash+141529276]\n                \tdbms/src/Flash/Coprocessor/DAGContext.cpp:98\n       0x8854371\tDB::MPPTask::prepare(mpp::DispatchTaskRequest const&) [tiflash+142951281]\n                \tdbms/src/Flash/Mpp/MPPTask.cpp:434\n       0x884a397\tDB::MPPHandler::execute(std::__1::shared_ptr<DB::Context> const&, mpp::DispatchTaskResponse*) [tiflash+142910359]\n                \tdbms/src/Flash/Mpp/MPPHandler.cpp:81\n       0x86c0dda\tDB::FlashService::DispatchMPPTask(grpc::ServerContext*, mpp::DispatchTaskRequest const*, mpp::DispatchTaskResponse*) [tiflash+141299162]\n                \tdbms/src/Flash/FlashService.cpp:504\n       0x9690a69\tgrpc::internal::RpcMethodHandler<tikvpb::Tikv::Service, mpp::DispatchTaskRequest, mpp::DispatchTaskResponse, google::protobuf::MessageLite, google::protobuf::MessageLite>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&) [tiflash+157878889]\n                \tcontrib/grpc/include/grpcpp/impl/codegen/method_handler.h:113\n       0x90109b0\tgrpc::Server::SyncRequest::ContinueRunAfterInterception() [tiflash+151062960]\n                \tcontrib/grpc/src/cpp/server/server_cc.cc:433\n       0x90107e1\tgrpc::Server::SyncRequest::Run(std::__1::shared_ptr<grpc::Server::GlobalCallbacks> const&, bool) [tiflash+151062497]\n                \tcontrib/grpc/src/cpp/server/server_cc.cc:421\n       0x90229d5\tgrpc::ThreadManager::WorkerThread::WorkerThread(grpc::ThreadManager*)::$_0::__invoke(void*) [tiflash+151136725]\n                \tcontrib/grpc/src/cpp/thread_manager/thread_manager.cc:36\n       0x93bceea\tgrpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) [tiflash+154914538]\n                \tcontrib/grpc/src/core/lib/gprpp/thd_posix.cc:110\n  0x7fd018798802\tstart_thread [libc.so.6+653314]"] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:39.888 +08:00] [ERROR] [BaseDaemon.cpp:370] [########################################] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:39.888 +08:00] [ERROR] [BaseDaemon.cpp:371] ["(from thread 68) Received signal Segmentation fault(11)."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:39.888 +08:00] [ERROR] [BaseDaemon.cpp:401] ["Address: 0x8"] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:39.888 +08:00] [ERROR] [BaseDaemon.cpp:407] ["Access: read."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:39.888 +08:00] [ERROR] [BaseDaemon.cpp:416] ["Address not mapped to object."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:39.889 +08:00] [ERROR] [BaseDaemon.cpp:563] ["\n       0x778ebc1\tfaultSignalHandler(int, siginfo_t*, void*) [tiflash+125365185]\n                \tlibs/libdaemon/src/BaseDaemon.cpp:214\n  0x7fd01874ddf0\t<unknown symbol> [libc.so.6+347632]\n       0x8755632\tDB::isUnsupportedEncodeType(std::__1::vector<tipb::FieldType, std::__1::allocator<tipb::FieldType> > const&, tipb::EncodeType) [tiflash+141907506]\n                \tdbms/src/Flash/Coprocessor/DAGUtils.cpp:1228\n       0x86f8065\tDB::DAGContext::initOutputInfo() [tiflash+141525093]\n                \tdbms/src/Flash/Coprocessor/DAGContext.cpp:190\n       0x86f90bc\tDB::DAGContext::DAGContext(tipb::DAGRequest&, mpp::TaskMeta const&, bool) [tiflash+141529276]\n                \tdbms/src/Flash/Coprocessor/DAGContext.cpp:98\n       0x8854371\tDB::MPPTask::prepare(mpp::DispatchTaskRequest const&) [tiflash+142951281]\n                \tdbms/src/Flash/Mpp/MPPTask.cpp:434\n       0x884a397\tDB::MPPHandler::execute(std::__1::shared_ptr<DB::Context> const&, mpp::DispatchTaskResponse*) [tiflash+142910359]\n                \tdbms/src/Flash/Mpp/MPPHandler.cpp:81\n       0x86c0dda\tDB::FlashService::DispatchMPPTask(grpc::ServerContext*, mpp::DispatchTaskRequest const*, mpp::DispatchTaskResponse*) [tiflash+141299162]\n                \tdbms/src/Flash/FlashService.cpp:504\n       0x9690a69\tgrpc::internal::RpcMethodHandler<tikvpb::Tikv::Service, mpp::DispatchTaskRequest, mpp::DispatchTaskResponse, google::protobuf::MessageLite, google::protobuf::MessageLite>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&) [tiflash+157878889]\n                \tcontrib/grpc/include/grpcpp/impl/codegen/method_handler.h:113\n       0x90109b0\tgrpc::Server::SyncRequest::ContinueRunAfterInterception() [tiflash+151062960]\n                \tcontrib/grpc/src/cpp/server/server_cc.cc:433\n       0x90107e1\tgrpc::Server::SyncRequest::Run(std::__1::shared_ptr<grpc::Server::GlobalCallbacks> const&, bool) [tiflash+151062497]\n                \tcontrib/grpc/src/cpp/server/server_cc.cc:421\n       0x90229d5\tgrpc::ThreadManager::WorkerThread::WorkerThread(grpc::ThreadManager*)::$_0::__invoke(void*) [tiflash+151136725]\n                \tcontrib/grpc/src/cpp/thread_manager/thread_manager.cc:36\n       0x93bceea\tgrpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) [tiflash+154914538]\n                \tcontrib/grpc/src/core/lib/gprpp/thd_posix.cc:110\n  0x7fd018798802\tstart_thread [libc.so.6+653314]"] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:40.208 +08:00] [ERROR] [BaseDaemon.cpp:370] [########################################] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:40.209 +08:00] [ERROR] [BaseDaemon.cpp:371] ["(from thread 138) Received signal Segmentation fault(11)."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:40.209 +08:00] [ERROR] [BaseDaemon.cpp:401] ["Address: 0x50"] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:40.209 +08:00] [ERROR] [BaseDaemon.cpp:407] ["Access: read."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:40.209 +08:00] [ERROR] [BaseDaemon.cpp:416] ["Address not mapped to object."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:40.209 +08:00] [ERROR] [BaseDaemon.cpp:563] ["\n       0x778ebc1\tfaultSignalHandler(int, siginfo_t*, void*) [tiflash+125365185]\n                \tlibs/libdaemon/src/BaseDaemon.cpp:214\n  0x7fd01874ddf0\t<unknown symbol> [libc.so.6+347632]\n       0x7759891\tstd::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__thread_id, void*>*> std::__1::__hash_table<std::__1::__thread_id, std::__1::hash<std::__1::__thread_id>, std::__1::equal_to<std::__1::__thread_id>, std::__1::allocator<std::__1::__thread_id> >::find<std::__1::__thread_id>(std::__1::__thread_id const&) const [tiflash+125147281]\n                \t/usr/local/bin/../include/c++/v1/__hash_table:2425\n       0x76c3b62\tDB::DM::DMFileBlockInputStreamBuilder::build(std::__1::shared_ptr<DB::DM::DMFile> const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine> > const&, std::__1::vector<DB::DM::RowKeyRange, std::__1::allocator<DB::DM::RowKeyRange> > const&, std::__1::shared_ptr<DB::DM::ScanContext> const&) [tiflash+124533602]\n                \tdbms/src/Storages/DeltaMerge/File/DMFileBlockInputStream.cpp:64\n       0x7667dd4\tDB::DM::StableValueSpace::Snapshot::getInputStream(DB::DM::DMContext const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine> > const&, std::__1::vector<DB::DM::RowKeyRange, std::__1::allocator<DB::DM::RowKeyRange> > const&, std::__1::shared_ptr<DB::DM::RSOperator> const&, unsigned long, unsigned long, bool, bool, bool, std::__1::vector<std::__1::shared_ptr<std::__1::set<unsigned long, std::__1::less<unsigned long>, std::__1::allocator<unsigned long> > >, std::__1::allocator<std::__1::shared_ptr<std::__1::set<unsigned long, std::__1::less<unsigned long>, std::__1::allocator<unsigned long> > > > > const&, bool) [tiflash+124157396]\n                \tdbms/src/Storages/DeltaMerge/StableValueSpace.cpp:474\n       0x763adaa\tstd::__1::shared_ptr<DB::DM::SkippableBlockInputStream> DB::DM::Segment::getPlacedStream<true, DB::DM::DTCompactedEntries<55ul, 20ul, 3ul>::Iterator>(DB::DM::DMContext const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine> > const&, std::__1::vector<DB::DM::RowKeyRange, std::__1::allocator<DB::DM::RowKeyRange> > const&, std::__1::shared_ptr<DB::DM::RSOperator> const&, std::__1::shared_ptr<DB::DM::StableValueSpace::Snapshot> const&, std::__1::shared_ptr<DB::DM::DeltaValueReader> const&, DB::DM::DTCompactedEntries<55ul, 20ul, 3ul>::Iterator const&, DB::DM::DTCompactedEntries<55ul, 20ul, 3ul>::Iterator const&, unsigned long, unsigned long, bool) [tiflash+123973034]\n                \tdbms/src/Storages/DeltaMerge/Segment.cpp:2398\n       0x75fcbc5\tDB::DM::Segment::ensurePlace(DB::DM::DMContext const&, std::__1::shared_ptr<DB::DM::SegmentSnapshot> const&, std::__1::shared_ptr<DB::DM::DeltaValueReader> const&, std::__1::vector<DB::DM::RowKeyRange, std::__1::allocator<DB::DM::RowKeyRange> > const&, unsigned long) const [tiflash+123718597]\n                \tdbms/src/Storages/DeltaMerge/Segment.cpp:2493\n       0x75e581e\tDB::DM::Segment::getReadInfo(DB::DM::DMContext const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine> > const&, std::__1::shared_ptr<DB::DM::SegmentSnapshot> const&, std::__1::vector<DB::DM::RowKeyRange, std::__1::allocator<DB::DM::RowKeyRange> > const&, unsigned long) const [tiflash+123623454]\n                \tdbms/src/Storages/DeltaMerge/Segment.cpp:2330\n       0x75f9e85\tDB::DM::Segment::placeDeltaIndex(DB::DM::DMContext&, std::__1::shared_ptr<DB::DM::SegmentSnapshot> const&) const [tiflash+123707013]\n                \tdbms/src/Storages/DeltaMerge/Segment.cpp:2232\n       0x7593a6c\tDB::DM::DeltaMergeStore::handleBackgroundTask(bool) [tiflash+123288172]\n                \tdbms/src/Storages/DeltaMerge/DeltaMergeStore_InternalBg.cpp:421\n       0x812141b\tvoid* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, DB::BackgroundProcessingPool::BackgroundProcessingPool(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)::$_1> >(void*) [tiflash+135402523]\n                \t/usr/local/bin/../include/c++/v1/thread:291\n  0x7fd018798802\tstart_thread [libc.so.6+653314]"] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:44.234 +08:00] [ERROR] [BaseDaemon.cpp:370] [########################################] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:44.234 +08:00] [ERROR] [BaseDaemon.cpp:371] ["(from thread 48) Received signal Segmentation fault(11)."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:44.234 +08:00] [ERROR] [BaseDaemon.cpp:401] ["Address: 0x8"] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:44.234 +08:00] [ERROR] [BaseDaemon.cpp:407] ["Access: read."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:44.234 +08:00] [ERROR] [BaseDaemon.cpp:416] ["Address not mapped to object."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:44.234 +08:00] [ERROR] [BaseDaemon.cpp:563] ["\n       0x778ebc1\tfaultSignalHandler(int, siginfo_t*, void*) [tiflash+125365185]\n                \tlibs/libdaemon/src/BaseDaemon.cpp:214\n  0x7fd01874ddf0\t<unknown symbol> [libc.so.6+347632]\n       0x8755632\tDB::isUnsupportedEncodeType(std::__1::vector<tipb::FieldType, std::__1::allocator<tipb::FieldType> > const&, tipb::EncodeType) [tiflash+141907506]\n                \tdbms/src/Flash/Coprocessor/DAGUtils.cpp:1228\n       0x86f8065\tDB::DAGContext::initOutputInfo() [tiflash+141525093]\n                \tdbms/src/Flash/Coprocessor/DAGContext.cpp:190\n       0x86f90bc\tDB::DAGContext::DAGContext(tipb::DAGRequest&, mpp::TaskMeta const&, bool) [tiflash+141529276]\n                \tdbms/src/Flash/Coprocessor/DAGContext.cpp:98\n       0x8854371\tDB::MPPTask::prepare(mpp::DispatchTaskRequest const&) [tiflash+142951281]\n                \tdbms/src/Flash/Mpp/MPPTask.cpp:434\n       0x884a397\tDB::MPPHandler::execute(std::__1::shared_ptr<DB::Context> const&, mpp::DispatchTaskResponse*) [tiflash+142910359]\n                \tdbms/src/Flash/Mpp/MPPHandler.cpp:81\n       0x86c0dda\tDB::FlashService::DispatchMPPTask(grpc::ServerContext*, mpp::DispatchTaskRequest const*, mpp::DispatchTaskResponse*) [tiflash+141299162]\n                \tdbms/src/Flash/FlashService.cpp:504\n       0x9690a69\tgrpc::internal::RpcMethodHandler<tikvpb::Tikv::Service, mpp::DispatchTaskRequest, mpp::DispatchTaskResponse, google::protobuf::MessageLite, google::protobuf::MessageLite>::RunHandler(grpc::internal::MethodHandler::HandlerParameter const&) [tiflash+157878889]\n                \tcontrib/grpc/include/grpcpp/impl/codegen/method_handler.h:113\n       0x90109b0\tgrpc::Server::SyncRequest::ContinueRunAfterInterception() [tiflash+151062960]\n                \tcontrib/grpc/src/cpp/server/server_cc.cc:433\n       0x90107e1\tgrpc::Server::SyncRequest::Run(std::__1::shared_ptr<grpc::Server::GlobalCallbacks> const&, bool) [tiflash+151062497]\n                \tcontrib/grpc/src/cpp/server/server_cc.cc:421\n       0x90229d5\tgrpc::ThreadManager::WorkerThread::WorkerThread(grpc::ThreadManager*)::$_0::__invoke(void*) [tiflash+151136725]\n                \tcontrib/grpc/src/cpp/thread_manager/thread_manager.cc:36\n       0x93bceea\tgrpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) [tiflash+154914538]\n                \tcontrib/grpc/src/core/lib/gprpp/thd_posix.cc:110\n  0x7fd018798802\tstart_thread [libc.so.6+653314]"] [source=BaseDaemon] [thread_id=1172]

2. What did you expect to see? (Required)
3. What did you see instead (Required)
4. What is your TiFlash version? (Required)
master

It is actually
[2023/09/05 21:49:37.884 +08:00] [ERROR] [BaseDaemon.cpp:370] [########################################] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:37.885 +08:00] [ERROR] [BaseDaemon.cpp:371] ["(from thread 7) Received signal Segmentation fault(11)."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:37.885 +08:00] [ERROR] [BaseDaemon.cpp:401] ["Address: 0x20"] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:37.885 +08:00] [ERROR] [BaseDaemon.cpp:407] ["Access: read."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:37.885 +08:00] [ERROR] [BaseDaemon.cpp:416] ["Address not mapped to object."] [source=BaseDaemon] [thread_id=1172]
[2023/09/05 21:49:37.890 +08:00] [ERROR] [BaseDaemon.cpp:563] ["\n       0x778ebc1\tfaultSignalHandler(int, siginfo_t*, void*) [tiflash+125365185]\n                \tlibs/libdaemon/src/BaseDaemon.cpp:214\n  0x7fd01874ddf0\t<unknown symbol> [libc.so.6+347632]\n       0x7759891\tstd::__1::__hash_const_iterator<std::__1::__hash_node<std::__1::__thread_id, void*>*> std::__1::__hash_table<std::__1::__thread_id, std::__1::hash<std::__1::__thread_id>, std::__1::equal_to<std::__1::__thread_id>, std::__1::allocator<std::__1::__thread_id> >::find<std::__1::__thread_id>(std::__1::__thread_id const&) const [tiflash+125147281]\n                \t/usr/local/bin/../include/c++/v1/__hash_table:2425\n       0x76c3b62\tDB::DM::DMFileBlockInputStreamBuilder::build(std::__1::shared_ptr<DB::DM::DMFile> const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine> > const&, std::__1::vector<DB::DM::RowKeyRange, std::__1::allocator<DB::DM::RowKeyRange> > const&, std::__1::shared_ptr<DB::DM::ScanContext> const&) [tiflash+124533602]\n                \tdbms/src/Storages/DeltaMerge/File/DMFileBlockInputStream.cpp:64\n       0x7667dd4\tDB::DM::StableValueSpace::Snapshot::getInputStream(DB::DM::DMContext const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine> > const&, std::__1::vector<DB::DM::RowKeyRange, std::__1::allocator<DB::DM::RowKeyRange> > const&, std::__1::shared_ptr<DB::DM::RSOperator> const&, unsigned long, unsigned long, bool, bool, bool, std::__1::vector<std::__1::shared_ptr<std::__1::set<unsigned long, std::__1::less<unsigned long>, std::__1::allocator<unsigned long> > >, std::__1::allocator<std::__1::shared_ptr<std::__1::set<unsigned long, std::__1::less<unsigned long>, std::__1::allocator<unsigned long> > > > > const&, bool) [tiflash+124157396]\n                \tdbms/src/Storages/DeltaMerge/StableValueSpace.cpp:474\n       0x75e3b5d\tDB::DM::Segment::getBitmapFilterInputStream(DB::DM::DMContext const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine> > const&, std::__1::shared_ptr<DB::DM::SegmentSnapshot> const&, std::__1::vector<DB::DM::RowKeyRange, std::__1::allocator<DB::DM::RowKeyRange> > const&, std::__1::shared_ptr<DB::DM::PushDownFilter> const&, unsigned long, unsigned long, unsigned long) [tiflash+123616093]\n                \tdbms/src/Storages/DeltaMerge/Segment.cpp:3164\n       0x75e18ed\tDB::DM::Segment::getInputStream(DB::DM::ReadMode const&, DB::DM::DMContext const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine> > const&, std::__1::shared_ptr<DB::DM::SegmentSnapshot> const&, std::__1::vector<DB::DM::RowKeyRange, std::__1::allocator<DB::DM::RowKeyRange> > const&, std::__1::shared_ptr<DB::DM::PushDownFilter> const&, unsigned long, unsigned long) [tiflash+123607277]\n                \tdbms/src/Storages/DeltaMerge/Segment.cpp:791\n       0x765ab56\tDB::DM::SegmentReadTaskPool::buildInputStream(std::__1::shared_ptr<DB::DM::SegmentReadTask>&) [tiflash+124103510]\n                \tdbms/src/Storages/DeltaMerge/SegmentReadTaskPool.cpp:172\n       0x77510af\tDB::DM::MergedTask::initOnce() [tiflash+125112495]\n                \tdbms/src/Storages/DeltaMerge/ReadThread/MergedTask.cpp:50\n       0x7757c6e\tDB::DM::SegmentReader::run() [tiflash+125140078]\n                \tdbms/src/Storages/DeltaMerge/ReadThread/SegmentReader.cpp:149\n       0x77593b2\tvoid* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (DB::DM::SegmentReader::*)(), DB::DM::SegmentReader*> >(void*) [tiflash+125146034]\n                \t/usr/local/bin/../include/c++/v1/thread:291\n  0x7fd018798802\tstart_thread [libc.so.6+653314]"] [source=BaseDaemon] [thread_id=1172]

This exception is due to deconstruction caused by the previous exception.

authors: CalvinNeo lilinghai


text:
some refine for pipeline

What problem does this PR solve?
Issue Number: ref #6233
Problem Summary:
What is changed and how it works?
Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-all-tests

/run-all-tests

/cc @guo-shaoge @windtalker

/run-all-tests

/run-all-tests

/approve

/run-all-tests

/run-unit-test

/run-unit-test


text:
cdc get api does not work as expected

What did you do?

create changefeed cdc-downstream-reload-tls using cli.
remove this changefeed.
create this changefeed again.

What did you expect to see?
success to create the changefeed again
What did you see instead?

success to remove the changefeed

failed to create the cahngefeed again

log:  ticdc.log
The get api return ErrChangeFeedNotExists when removing changefeed using cli.
[2023/04/21 06:37:30.213 +00:00] [INFO] [middleware.go:48] [/api/v2/changefeeds/cdc-downstream-reload-tls] [status=
400] [method=GET] [path=/api/v2/changefeeds/cdc-downstream-reload-tls] [query=] [ip=127.0.0.1] [user-agent=Go-http-
tiflow/cdc/owner/owner.go:491\ngithub.com/pingcap/tiflow/cdc/owner.(*ownerImpl).Tick\n\tgithub.com/pingcap/tiflow/cdc/owner/owner.go:164\ngithub.com/pingcap/tiflow/pkg/orchestrator.(*EtcdWorker).Run\n\tgithub.com/pingcap/tiflow/pkg/orchestrator/etcd_worker.go:290\ngithub.com/pingcap/tiflow/cdc/capture.(*captureImpl).runEtcdWorker\n\tgithub.com/pingcap/tiflow/cdc/capture/capture.go:510\ngithub.com/pingcap/tiflow/cdc/capture.(*captureImpl).campaignOwner\n\tgithub.com/pingcap/tiflow/cdc/capture/capture.go:461\ngithub.com/pingcap/tiflow/cdc/capture.(*captureImpl).run.func3\n\tgithub.com/pingcap/tiflow/cdc/capture/capture.go:327\ngolang.org/x/sync/errgroup.(*Group).Go.func1\n\tgolang.org/x/sync@v0.1.0/errgroup/errgroup.go:75\nruntime.goexit\n\truntime/asm_amd64.s:1598"] [duration=132.025084ms]
[2023/04/21 06:39:20.763 +00:00] [INFO] [middleware.go:48] [/api/v2/changefeeds] [status=500] [method=POST] [path=/api/v2/changefeeds] [query=] [ip=127.0.0.1] [user-agent=Go-http-client/1.1] [client-version=v7.1.0] [error="[CDC:Er
rChangeFeedAlreadyExists]changefeed already exists, cdc-downstream-reload-tls"] [errorVerbose="[CDC:ErrChangeFeedAlreadyExists]changefeed already exists, cdc-downstream-reload-tls\ngithub.com/pingcap/errors.AddStack\n\tgithub.com/pingcap/errors@v0.11.5-0.20221009092201-b66cddb77c32/errors.go:174\ngithub.com/pingcap/errors.(*Error).GenWithStackByArgs\n\tgithub.com/pingcap/errors@v0.11.5-0.20221009092201-b66cddb77c32/normalize.go:164\ngithub.com/pingcap/tiflow/cdc/api/v2.APIV2HelpersImpl.verifyCreateChangefeedConfig\n\tgithub.com/pingcap/tiflow/cdc/api/v2/api_helpers.go:163\ngithub.com/pingcap/tiflow/cdc/api/v2.(*OpenAPIV2).createChangefeed\n\tgithub.com/pingcap/tiflow/cdc/api/v2/changefeed.go:95\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.8.1/context.go:173\ngithub.com/pingcap/tiflow/cdc/api/middleware.ForwardToOwnerMiddleware.func1\n\tgithub.com/pingcap/tiflow/cdc/api/middleware/middleware.go:95\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.8.1/context.go:173\ngithub.com/pingcap/tiflow/cdc/api/middleware.ErrorHandleMiddleware.func1\n\tgithub.com/pingcap/tiflow/cdc/api/middleware/middleware.go:64\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.8.1/context.go:173\ngithub.com/pingcap/tiflow/cdc/api/middleware.LogMiddleware.func1\n\tgithub.com/pingcap/tiflow/cdc/api/middleware/middleware.go:38\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.8.1/context.go:173\ngithub.com/pingcap/tiflow/cdc/api/middleware.CheckServerReadyMiddleware.func1\n\tgithub.com/pingcap/tiflow/cdc/api/middleware/middleware.go:103\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.8.1/context.go:173\ngithub.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\tgithub.com/gin-gonic/gin@v1.8.1/recovery.go:101\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.8.1/context.go:173\ngithub.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\tgithub.com/gin-gonic/gin@v1.8.1/gin.go:616\ngithub.com/gin-gonic/gin.(*Engine).ServeHTTP\n\tgithub.com/gin-gonic/gin@v1.8.1/gin.go:572\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:2936\nnet/http.(*conn).serve\n\tnet/http/server.go:1995\nruntime.goexit\n\truntime/asm_amd64.s:1598"] [duration=13.437627ms]

Versions of the cluster
Upstream TiDB cluster version (execute SELECT tidb_version(); in a MySQL client):
(paste TiDB cluster version here)

Upstream TiKV version (execute tikv-server --version):
(paste TiKV version here)

TiCDC version (execute cdc version):
(paste TiCDC version here)
4d633bfd28c0305109c52a01cd1304b436c0dfba

/severity major

/found automation

/assign @sdojjy

according to the api doc,  delete changefeed API is a synchronous interface. https://docs.pingcap.com/tidb/stable/ticdc-open-api-v2#remove-a-replication-task.  so this is normal behavior.

authors: CharlesCheung96 fubinzh nongfushanquan sdojjy

repo: pingcap/tiflow


text:
fix set deocde with unit flag

What problem does this PR solve?
This PR fixes current breakage against tikv.
What is changed and how it works?
TiKV use uint_flag to encode SetType. We should adopt this behavior.
Tests

Integration test

/run-all-tests

/run-cherry-picker

authors: birdstorm zhexuany

repo: pingcap/tispark


text:
chore: solid pass @typescript-eslint/prefer-optional-chain

Not sure why this wasn't caught in other branches, but should resolve lint issue for https://github.com/pingdotgg/uploadthing/pull/225#issuecomment-2019130693

Note: intentionally skipping changeset, as this is not a functional change.

repo: pingdotgg/uploadthing

license: MIT


text:
Fix crash in Windows.ApplicationModel.Core.UnhandledError.Propagate

Version: 0.1.0.0 | DigiTransit10
Stacktrace
Windows.ApplicationModel.Core.UnhandledError;Propagate;;
Microsoft.HockeyApp.Extensibility.Windows.UnhandledExceptionTelemetryModule;CoreApplication_UnhandledErrorDetected;;
Reason
The parameter is incorrect.
The parameter is incorrect.
Link to HockeyApp

https://rink.hockeyapp.net/manage/apps/369020/crash_reasons/137134387

fixed.

license: mit

license_source: bigquery


text:
Upsell: add legalText functionality

WIP

abandoning, we decided to not pursue for now

repo: pinterest/gestalt


text:
Internal Error when upgrading from 0.41.0 to 0.42.1

After upgrading 2 files cause ktlint to fail with an Internal Error (indent)
SettlementsSpec.kt.zip
generators.kt.zip
Expected Behavior
the file should get formatted
Observed Behavior
SettlementsSpec.kt:0:0: Internal Error (indent). Please create a ticket at https://github.com/pinterest/ktlint/issues (if possible, provide the source code that triggered an error) (cannot be auto-corrected)
Steps to Reproduce
Format the attached file
Your Environment

Version of ktlint used: 0.42.1
Name and version (or code for custom task) of integration used (Gradle plugin, Maven plugin, command line, custom Gradle task):
Gradle Task:
task ktlintFmt(type: JavaExec) {
mainClass.set("com.pinterest.ktlint.Main")
classpath = configurations.ktlint
args "-F", "src/**/*.kt"
onlyIf {
System.env['CI'] == null
}
}
Version of Gradle used (if applicable): 7.1.1
Operating System and version: MacOS Big Sur
Link to your project (if it's a public repository):

@NikolayMetchev are you able to test with the latest SNAPSHOT? I believe this commit fixes your issues https://github.com/pinterest/ktlint/pull/1203

FWIW, the following snippet also triggers an Internal Error in ktlint 0.42.1
package com.repro

import kotlin.properties.Delegates

class Repro {
    private var repro
        by Delegates.vetoable("") { _, old, new ->
            true
        }
}

The error message is:
Internal Error (indent). Please create a ticket at https://github.com/pinterest/ktlint/issues (if possible, provide the source code that triggered an error) (cannot be auto-corrected)

No issue if I re-format to
package com.repro

import kotlin.properties.Delegates

class Repro {
    private var repro by Delegates.vetoable("") { _, old, new ->
        true
    }
}

@mhernand40 Tnx for your example and observation how reformat made a difference. The stacktrace of the error is as follows:
[DEBUG] Internal Error (indent)
com.pinterest.ktlint.core.RuleExecutionException: java.lang.IllegalArgumentException: Count 'n' must be non-negative, but was -4.
	at com.pinterest.ktlint.core.KtLint$format$1.invoke(KtLint.kt:406)
	at com.pinterest.ktlint.core.KtLint$format$1.invoke(KtLint.kt:384)
	at com.pinterest.ktlint.core.KtLint$visitor$2.invoke(KtLint.kt:320)
	at com.pinterest.ktlint.core.KtLint$visitor$2.invoke(KtLint.kt:302)
	at com.pinterest.ktlint.core.KtLint.format(KtLint.kt:384)
	at com.pinterest.ktlint.internal.FileUtilsKt.formatFile(FileUtils.kt:202)
	at com.pinterest.ktlint.KtlintCommandLine.process(Main.kt:366)
	at com.pinterest.ktlint.KtlintCommandLine.access$process(Main.kt:89)
	at com.pinterest.ktlint.KtlintCommandLine$lintFiles$3.invoke$lambda-0(Main.kt:289)
	at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
	at java.util.concurrent.FutureTask.run(FutureTask.java)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: Count 'n' must be non-negative, but was -4.
	at kotlin.text.StringsKt__StringsJVMKt.repeat(StringsJVM.kt:790)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule.visitWhiteSpace(IndentationRule.kt:1085)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule.access$visitWhiteSpace(IndentationRule.kt:103)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule$indent$2.invoke(IndentationRule.kt:600)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule$indent$2.invoke(IndentationRule.kt:463)
	at com.pinterest.ktlint.core.ast.PackageKt.visit(package.kt:234)
	at com.pinterest.ktlint.core.ast.PackageKt.visit(package.kt:235)
	at com.pinterest.ktlint.core.ast.PackageKt.visit(package.kt:235)
	at com.pinterest.ktlint.core.ast.PackageKt.visit(package.kt:235)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule.indent(IndentationRule.kt:462)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule.visit(IndentationRule.kt:162)
	at com.pinterest.ktlint.core.KtLint$format$1.invoke(KtLint.kt:391)
	... 13 more
	```

@t-kameyama Could you please have a look at this? This bug is somewhat related to your commit https://github.com/pinterest/ktlint/commit/aa47c9eba84b4b2b71ba4615817ef052ae8988b3. Problem is that the RPAR leads to an unwanted decrement of the expectedIndent cause its value to go below zero.

I found other way to reproduce this issue:
object ApplicationComponentFactory : ApplicationComponent.Factory
by DaggerApplicationComponent.factory()

Testing with 0.43.1
if I reformat the code like this ktlint is happy and without errors:
object ApplicationComponentFactory :
    ApplicationComponent.Factory by DaggerApplicationComponent.factory()

Is there any update on this? Running into the same issue with the latest version 0.43.2

@BraisGabin I really love it when somebody has such a short example to reproduce an issue ;-) I could reproduce and solve it.
Code sample:
object ApplicationComponentFactory : ApplicationComponent.Factory
by DaggerApplicationComponent.factory()

results in following stack trace:
Caused by: java.lang.IllegalArgumentException: Count 'n' must be non-negative, but was -4.
	at kotlin.text.StringsKt__StringsJVMKt.repeat(StringsJVM.kt:795)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule.visitWhiteSpace(IndentationRule.kt:1049)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule.access$visitWhiteSpace(IndentationRule.kt:104)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule$indent$2.invoke(IndentationRule.kt:637)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule$indent$2.invoke(IndentationRule.kt:499)
	at com.pinterest.ktlint.core.ast.PackageKt.visit(package.kt:234)
	at com.pinterest.ktlint.core.ast.PackageKt.visit(package.kt:235)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule.indent(IndentationRule.kt:499)
	at com.pinterest.ktlint.ruleset.standard.IndentationRule.visit(IndentationRule.kt:163)
	at com.pinterest.ktlint.core.KtLint$format$1.invoke(KtLint.kt:389)
	... 12 more

authors: BraisGabin NikolayMetchev bbrinx mhernand40 paul-dingemans shashachu

repo: pinterest/ktlint


text:
Implement Renegotiation Indication Extension

Implement Renegotiation Indication Extension
Add minimal renegotiation_info support
Description
As described in #274 it's not possible to connect to server which using Bouncy Castle DTLS library (e.g. Jitsi) as a client using Pion.
According to rfc5746 the client MUST include either an empty "renegotiation_info" extension, or the TLS_EMPTY_RENEGOTIATION_INFO_SCSV signaling cipher suite value in the ClientHello. Pion doesn't support renegotiations so it doesn't require anything except sending empty renegotiation_info. But it will increase interoperability.
Reference issue
Fixes #274

@fffilimonov this is great, and a great first contribution! There's one error in your format strings causing the tests to fail. Other than that I think this should all be fine.

@daenney Thank you!
tests fixed

For review purposes, it's in Section 3.4

o  The client MUST include either an empty "renegotiation_info"
extension, or the TLS_EMPTY_RENEGOTIATION_INFO_SCSV signaling
cipher suite value in the ClientHello.  Including both is NOT
RECOMMENDED.

Wow this is a fantastic fix! Nice work @fffilimonov and thanks for reviewing/approving @daenney that helps a lot, really strapped for time lately.
I am up for merging+tagging, this was actively blocking people so really happy to see it fixed :)

I can do a release dance tomorrow.

Tagged and released in 2.0.4

I've just tried to connect to my WebRTC library that uses Bouncy Castle's DTLS implementation and I still get the same problem as first mentioned in #274. The DTLS client handshake coming from the pion WebRTC client does not have the renegotiation extension. Do I need to do something extra to set it?
pion\client>go list -m all | find "pion"
pion-echo
github.com/pion/datachannel v1.4.21
github.com/pion/dtls/v2 v2.0.5
github.com/pion/ice/v2 v2.0.15
github.com/pion/interceptor v0.0.9
github.com/pion/logging v0.2.2
github.com/pion/mdns v0.0.4
github.com/pion/randutil v0.1.0
github.com/pion/rtcp v1.2.6
github.com/pion/rtp v1.6.2
github.com/pion/sctp v1.7.11
github.com/pion/sdp/v3 v3.0.4
github.com/pion/srtp/v2 v2.0.1
github.com/pion/stun v0.3.5
github.com/pion/transport v0.12.2
github.com/pion/turn/v2 v2.0.5
github.com/pion/udp v0.1.0
github.com/pion/webrtc/v3 v3.0.8

Hello @sipsorcery. There was no any conditions for sending renegotiation extension  in the ClientHello. Did you check it with wireshark?

I dug into it a bit deeper and my wireshark trace for my pion app acting as the DTLS server does not include the renegotiation_info extension. I'll caveat this with the fact that I could be doing something completely wrong with pulling in the correct pion Go modules. I'm using the import below which I believe drags in the latest versions of pion webrtc and dtls?
github.com/pion/webrtc/v3
Here's a screenshot of the DTLS Server Hello generated by pion:

Here's a screenshot of the DTLS Server Hello generated by Bouncy Castle:

The full wireshark traces are attached.
bc_dtls_client_and_server_export.zip
pion_dtls_server_no_reneg_export.zip

@sipsorcery initially pull request was done for ClientHello.
I think you should try to include sending this extension in Server Hello from pion.

Ah missed that, thanks @fffilimonov !
We need to detect if client supports re-negotation, and then include in ServerHello. I can open a PR and add you two as the reviewer. If you are interested in adding @fffilimonov that would be super helpful :)

I have a fix for this locally, @sipsorcery will you ping in webrtc-echoes repo with new version to test in an hour or so :)

authors: Sean-Der daenney fffilimonov sipsorcery

repo: pion/dtls


text:
Active TCP candidates?

In some cases, I will use Pion instead of the browser as the client to push data to the server. When the server only supports tcp-type ice links, the candidate address generated by Pion needs to be an active-mode tcp address. Tried examples/ice-tcp, the current tcp candidate addresses only include passive mode addresses, and I didn’t find any configuration items that can change this.
The phenomenon I encountered is that Pion generates tcp passive candidate addresses, and the server’s candidate addresses only have tcp passive mode, and they always fail to connect.
When I use the browser as a client, it generates tcp's active mode candidates and works fine.
I guess the reason for the inability to connect may be related to the active mode and passive mode. I am sorry that I am a novice in webrtc, and I am not very clear about some underlying principles.
If Pion already supports this function, can you tell me how to make this function take effect?
Thanks.

Hi @ahaooahaz, it is not supported yet.
Here is draft PR for the feature: https://github.com/pion/ice/pull/394

#565 has been merged. 🥳

@ahaooahaz I just tagged v3.2.3 which has Active TCP support, would you mind testing it out. Thank you!

@Sean-Der @stv0g @ashellunts Great works!
I has tested publish video to TCP-only webrtc server, I can see the ICE-TCP connected, but when transport SRTP packets there always auth failed.
here is the TCP-only server logs which publish client is pion/webrtc@v3.2.3:
2023-05-19 03:04:50.473 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1018 SendPendingOutgoingDtlsData | 75 bytes of DTLS data ready to sent to the peer
2023-05-19 03:04:50.473 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1207 CheckRemoteFingerprint | valid remote fingerprint
2023-05-19 03:04:50.473 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1381 GetNegotiatedSrtpCryptoSuite | chosen SRTP crypto suite: SRTP_AEAD_AES_256_GCM
2023-05-19 03:04:50.473 I [MediaServer] [7-event poller 3] WebRtcTransport.cpp:137 OnDtlsTransportConnected |
2023-05-19 03:04:50.474 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1056 SetTimeout | DTLS timer set in 99ms
2023-05-19 03:04:50.490 W [MediaServer] [7-event poller 3] SrtpSession.cpp:246 DecryptSrtp | srtp_unprotect() failed:authentication failure (srtp_err_status_auth_fail)
2023-05-19 03:04:50.490 W [MediaServer] [7-event poller 3] SrtpSession.cpp:246 DecryptSrtp | srtp_unprotect() failed:authentication failure (srtp_err_status_auth_fail)

here is the TCP-only server logs which publish client is Chrome:
2023-05-19 03:09:32.697 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1456 OnSslInfo | DTLS handshake done
2023-05-19 03:09:32.697 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1018 SendPendingOutgoingDtlsData | 67 bytes of DTLS data ready to sent to the peer
2023-05-19 03:09:32.697 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1207 CheckRemoteFingerprint | valid remote fingerprint
2023-05-19 03:09:32.697 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1381 GetNegotiatedSrtpCryptoSuite | chosen SRTP crypto suite: SRTP_AEAD_AES_256_GCM
2023-05-19 03:09:32.697 I [MediaServer] [7-event poller 3] WebRtcTransport.cpp:137 OnDtlsTransportConnected |
2023-05-19 03:09:32.697 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1056 SetTimeout | DTLS timer set in 99ms
2023-05-19 03:09:32.796 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1472 OnTimer | handshake is done so return
2023-05-19 03:09:32.846 W [MediaServer] [7-event poller 3] WebRtcTransport.cpp:923 inputRtp | unknown rtx rtp, rid:, ssrc:1590349209, codec:H264, seq:5814
2023-05-19 03:09:32.848 I [MediaServer] [7-event poller 3] WebRtcTransport.cpp:866 createRtpChannel | create rtp receiver of ssrc:1062276153, rid:, codec:H264
2023-05-19 03:09:32.850 D [MediaServer] [7-event poller 3] MediaSink.cpp:137 emitAllTrackReady | all track ready use 153ms
2023-05-19 03:09:32.850 T [MediaServer] [7-event poller 3] MediaSink.cpp:259 addMuteAudioTrack | mute aac track added
2023-05-19 03:09:32.850 I [MediaServer] [7-event poller 3] MultiMediaSourceMuxer.cpp:368 onAllTrackReady | stream: rtc://127.0.0.1:80/1/2?app=1&stream=2&type=push&session=43-72 , codec info: mpeg4-generic[8000/1/16] H264[320/180/0]
2023-05-19 03:09:32.856 I [MediaServer] [7-event poller 3] MediaSource.cpp:523 emitEvent | 媒体注册:rtmp://__defaultVhost__/1/2
2023-05-19 03:09:32.856 I [MediaServer] [7-event poller 3] MediaSource.cpp:523 emitEvent | 媒体注册:rtsp://__defaultVhost__/1/2
2023-05-19 03:09:32.896 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1472 OnTimer | handshake is done so return
2023-05-19 03:09:33.492 D [MediaServer] [7-event poller 3] DtlsTransport.cpp:1472 OnTimer | handshake is done so return

Hi @ahaooahaz would you please try again with v3.2.4
I believe you hit an unrelated bug. thank you!

@Sean-Der I changed to v3.2.4 and it works! :partying_face:

authors: Sean-Der ahaooahaz ashellunts stv0g

repo: pion/ice


text:
Bump pion/turn

Use v2, should have no client changes

Codecov Report

Merging #137 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #137   +/-   ##
=======================================
  Coverage   77.26%   77.26%
=======================================
  Files          23       23
  Lines        1909     1909
=======================================
  Hits         1475     1475
+ Misses        309      306    -3
- Partials      125      128    +3

Impacted Files
Coverage Δ

gather.go
65.99% <ø> (ø)
:arrow_up:

agent.go
77.82% <0%> (-0.32%)
:arrow_down:

selection.go
73.41% <0%> (+1.15%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5870fb0...4ae434e. Read the comment docs.

authors: Sean-Der codecov-io


text:
bugfix: deadline.Set() memory leak (issue #208)

Signed-off-by: Jeremiah Millay jmillay@fastly.com
Description
Use time.Newtimer() paired with timer.Stop() to avoid leaking memory with time.After() whose underlying timer will not be released to the garbage collector until it has fired.
Reference issue
Fixes #208

if !timer.Stop() {
<-timer.C
}

Why is that needed?  I'd just say timer.Stop() and be done with it.

@jech this is the documented best practice for draining the timer's channel after calling stop. See here:
https://pkg.go.dev/time#Timer.Stop

@jech this is the documented best practice for draining the timer's channel
after calling stop. See here:
https://pkg.go.dev/time#Timer.Stop

Ah, in case the timer is shared between goroutines.  No objection, then.

@jech do you need me to do anything further here? Looks like the CI workflow is stuck pending approval.

You need approval from one of the Pion members.

authors: floatingstatic jech

repo: pion/transport


text:
Better name for the project?

I have chosen Sigma as name for this project as a placeholder as I didn't want to wait until I find a good name.
Given the direction we are heading, it feels like this is going to be the single dashboard for managing the training. Wondering if it may be apt to rename this project as cockpit or something similar. After, all this the place is the control panel for steering the training.
@vikipedia do you have any suggestions?

Helm may be another good name. But that name is a popular package manager in kubernetes world.
https://en.wikipedia.org/wiki/Ship's_wheel

repo: pipalacademy/sigma


text:
UI: Add a copy button to the deployment config templates form

What this PR does / why we need it:

Which issue(s) this PR fixes:
Fixes #905
Does this PR introduce a user-facing change?:

NONE

Great. Thank you.
/approve

authors: cakecatz nghialv

repo: pipe-cd/pipe


text:
DPM-106 add new type ACTIVITY for OPEN_MODAL command

Adds activities modal to OPEN_MODAL command
Documentation in README and example

Main branch dependencies

Neodora Analysis ⚠
 ⚠ Unknown tribe name

Message: The property owner in repository.json must be a valid tribe name present in mission-tracking
Repository file: repository.json

Owner status

'GRAVITY' is an unknown tribe name

🔍 How to fix it

 ⚠ Missing cache in Github Workflow

Message: Github workflow should be using caching when step uses actions/setup-node

Workflow file
Job name
Step index
Actual cache value
Expected cache value

on-commit.yml
lint
2
Not found
npm

🔍 How to fix it

Commit c16c02b  Job 95075

repo: pipedrive/app-extensions-sdk


text:
Support for oneOf

Rebased @maroux work (#132)

@lyssdod looks like there are some linting errors.  You can see them here: https://travis-ci.org/pipermerriam/flex/jobs/306744346
Or run the linter yourself locally with tox flake8 or flake flex

isn't one of part of OAS 3.0 ?

authors: fruch lyssdod pipermerriam

repo: pipermerriam/flex


text:
quickstart in readme

What was wrong?
The documentation wasn't clear on how to setup a smart contract.
How was it fixed?
By adding a quickstart section onto the readme
Cute Animal Picture

Thanks for putting this together!
All the rest of our user-facing documentation is at readthedocs, and I want to make sure people can find your contribution easily. Are you up for moving it over to https://github.com/pipermerriam/web3.py/blob/master/docs/quickstart.rst ?
I love the Halloween-themed cute animals.

Done! @carver

Thanks! @kendricktan

authors: carver kendricktan


text:
Enable verbose parallel

Fixes #42

Oh, I see I have to rewrite the tests for this. Yay :)

Hrm, I can't fix the tests because I don't know how the existing outputs are being constructed.
They use some map thing I've never seen before.

Hrm, the way travis is calling the code is different than how it does locally.
Different version of gnu parallel?

Yes, different version of gnu parallel
https://www.gnu.org/software/parallel/parallel_tutorial.html#Profiles

Had to update travis to ubuntu trusty version to get a modern version of gnu parallel

Fixes #42

Thanks!

authors: gdevenyi pipitone

repo: pipitone/qbatch

license: unlicense


text:
Couldnt get any filings/documents/filers data in the db

Hi,
I have setup the database correctly, since init does create the database tables and i see the forms metadata getting populated.
bin/edgr --pg-user postgres --pg-pass password --pg-db indexer --pg-addr localhost:5432 filers init --symbol AAPLinit
INFO[0000] connecting to postgres..
INFO[0000] connected
INFO[0000] retrieving single company
100% |████████████████████████████████████████|  [0s:0s]INFO[0000] finished
INFO[0000] disconnected from postgres
Not sure what I am doing wrong here. I'd be ok to dig deeper and see whats going on but if its a quick issue would like some help.

edgr --pg-user postgres --pg-pass password --pg-db indexer --pg-addr localhost:15432 filers init --all
INFO[0000] connecting to postgres..
INFO[0000] connected
INFO[0000] retrieving list of companies..
INFO[0000] gathering filer information, this will take a long time..
INFO[0003] disconnected from postgres
panic: runtime error: index out of range [1] with length 1
goroutine 1 [running]:
github.com/piquette/edgr/core.GetPublicCompanies()
/Users/SSAVLA/git/edgr/core/core.go:68 +0x553
main.filersInitCommand(0xc0001c29a0)
/Users/SSAVLA/git/edgr/cmd/filers.go:48 +0x185
github.com/urfave/cli.HandleAction({0x13e08e0, 0x14850c0}, 0x4)
/Users/SSAVLA/git/StockAnalyzer/Common/pkg/mod/github.com/urfave/cli@v1.22.1/app.go:523 +0xa8
github.com/urfave/cli.Command.Run({{0x145f489, 0x4}, {0x0, 0x0}, {0x0, 0x0, 0x0}, {0x147cf66, 0x60}, {0x0, ...}, ...}, ...)
/Users/SSAVLA/git/StockAnalyzer/Common/pkg/mod/github.com/urfave/cli@v1.22.1/command.go:174 +0x63a
github.com/urfave/cli.(*App).RunAsSubcommand(0xc0002b61c0, 0xc0001c26e0)
/Users/SSAVLA/git/StockAnalyzer/Common/pkg/mod/github.com/urfave/cli@v1.22.1/app.go:404 +0x9ec
github.com/urfave/cli.Command.startApp({{0x1460d1c, 0x6}, {0x0, 0x0}, {0x0, 0x0, 0x0}, {0x14795ce, 0x36}, {0x0, ...}, ...}, ...)
/Users/SSAVLA/git/StockAnalyzer/Common/pkg/mod/github.com/urfave/cli@v1.22.1/command.go:329 +0x6e9
github.com/urfave/cli.Command.Run({{0x1460d1c, 0x6}, {0x0, 0x0}, {0x0, 0x0, 0x0}, {0x14795ce, 0x36}, {0x0, ...}, ...}, ...)
/Users/SSAVLA/git/StockAnalyzer/Common/pkg/mod/github.com/urfave/cli@v1.22.1/command.go:102 +0x825
github.com/urfave/cli.(*App).Run(0xc0002b6000, {0xc000136000, 0xc, 0xc})
/Users/SSAVLA/git/StockAnalyzer/Common/pkg/mod/github.com/urfave/cli@v1.22.1/app.go:276 +0x80c
main.main()
/Users/SSAVLA/git/edgr/cmd/main.go:60 +0xa19

repo: piquette/edgr


text:
Improve ServletContext#getResource implementation

The specification/api doc says:
The path must begin with a / and is interpreted as relative to the current context root, or relative to the /META-INF/resources directory of a JAR file inside the web application's /WEB-INF/lib directory. This method will first search the document root of the web application for the requested resource, before searching any of the JAR files inside /WEB-INF/lib.

source
Currently Piranha does not do the JAR file searching at all, and does not do anything with any "/META-INF/resources".

Provided fix for Micro, since resource loading is different between each edition, need to fix separately for Server.

Provided fix for Micro, since resource loading is different between each edition, need to fix separately for Server.

repo: piranhacloud/piranha


text:
Use CDS in start.sh

Probably if we include the script like specified in the manpage of Java in the start.sh, we could benefit from a faster startup in a loop environment.
Some testing would be required to see if there are some performance improvements.
https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html#creating-a-shared-archive-file-and-using-it-to-run-an-application

Go for it!

Hi @Thihup just wondering, did you ever look at this?
Might be interesting too to base a blog article on.

Hi @arjantijms!
I have done some tests a few months ago, but a new test would be appropriate and document the results.
Also, I want to have a look using the -Xshareclasses from OpenJ9 (IBM Semeru), which is similar to CDS. Maybe creating a blog post about both would be awesome.
I'm very busy at the moment, but as soon as I get some free time I want to have a better look at this.

authors: Thihup arjantijms mnriem


text:
build error

OS: Alpine latest docker image
package ： cmake 3.15
error msg
Scanning dependencies of target tfunnel
[ 16%] Building CXX object CMakeFiles/tfunnel.dir/src/main.cpp.o
In file included from /usr/include/boost/asio/detail/socket_types.hpp:82,
                 from /usr/include/boost/asio/detail/epoll_reactor.hpp:29,
                 from /usr/include/boost/asio/detail/reactor.hpp:21,
                 from /usr/include/boost/asio/detail/impl/scheduler.ipp:23,
                 from /usr/include/boost/asio/detail/scheduler.hpp:223,
                 from /usr/include/boost/asio/system_context.hpp:19,
                 from /usr/include/boost/asio/impl/system_executor.hpp:22,
                 from /usr/include/boost/asio/system_executor.hpp:129,
                 from /usr/include/boost/asio/associated_executor.hpp:21,
                 from /usr/include/boost/asio.hpp:21,
                 from /root/tfunnel/src/main.cpp:7:
/root/tfunnel/src/protocol.hpp:18:2: error: expected identifier before numeric constant
   18 |  TCP_CLOSE,
      |  ^~~~~~~~~
/root/tfunnel/src/protocol.hpp:18:2: error: expected '}' before numeric constant
In file included from /root/tfunnel/src/env.hpp:11,
                 from /root/tfunnel/src/main.cpp:8:
/root/tfunnel/src/protocol.hpp:8:14: note: to match this '{'
    8 | enum opcodes {
      |              ^
In file included from /usr/include/boost/asio/detail/socket_types.hpp:82,
                 from /usr/include/boost/asio/detail/epoll_reactor.hpp:29,
                 from /usr/include/boost/asio/detail/reactor.hpp:21,
                 from /usr/include/boost/asio/detail/impl/scheduler.ipp:23,
                 from /usr/include/boost/asio/detail/scheduler.hpp:223,
                 from /usr/include/boost/asio/system_context.hpp:19,
                 from /usr/include/boost/asio/impl/system_executor.hpp:22,
                 from /usr/include/boost/asio/system_executor.hpp:129,
                 from /usr/include/boost/asio/associated_executor.hpp:21,
                 from /usr/include/boost/asio.hpp:21,
                 from /root/tfunnel/src/main.cpp:7:
/root/tfunnel/src/protocol.hpp:18:2: error: expected unqualified-id before numeric constant
   18 |  TCP_CLOSE,
      |  ^~~~~~~~~
In file included from /root/tfunnel/src/env.hpp:11,
                 from /root/tfunnel/src/main.cpp:8:
/root/tfunnel/src/protocol.hpp:35:35: error: expected ')' before 'opcode'
   35 |  constexpr explicit header(opcodes opcode, uint16_t id, uint16_t len): opcode(opcode), id(id), len(len) {}
      |                           ~       ^~~~~~~
      |                                   )
/root/tfunnel/src/protocol.hpp: In static member function 'static constexpr header header::handshake(bool)':
/root/tfunnel/src/protocol.hpp:40:26: error: 'HELLO_FROM_CLIENT' was not declared in this scope; did you mean 'tfunn
el::HELLO_FROM_CLIENT'?
   40 |   return header(client ? HELLO_FROM_CLIENT : HELLO_FROM_PROXY, HELLO_MAGIC ^ PROTOCOL_VERSION, 0);
      |                          ^~~~~~~~~~~~~~~~~
      |                          tfunnel::HELLO_FROM_CLIENT
/root/tfunnel/src/protocol.hpp:10:2: note: 'tfunnel::HELLO_FROM_CLIENT' declared here
   10 |  HELLO_FROM_CLIENT = 0,
      |  ^~~~~~~~~~~~~~~~~
/root/tfunnel/src/protocol.hpp:40:46: error: 'HELLO_FROM_PROXY' was not declared in this scope; did you mean 'tfunne
l::HELLO_FROM_PROXY'?
   40 |   return header(client ? HELLO_FROM_CLIENT : HELLO_FROM_PROXY, HELLO_MAGIC ^ PROTOCOL_VERSION, 0);
      |                                              ^~~~~~~~~~~~~~~~
      |                                              tfunnel::HELLO_FROM_PROXY
/root/tfunnel/src/protocol.hpp:11:2: note: 'tfunnel::HELLO_FROM_PROXY' declared here
   11 |  HELLO_FROM_PROXY,
      |  ^~~~~~~~~~~~~~~~
/root/tfunnel/src/protocol.hpp: At global scope:
/root/tfunnel/src/protocol.hpp:52:1: error: expected declaration before '}' token
   52 | }
      | ^
make[2]: *** [CMakeFiles/tfunnel.dir/build.make:63: CMakeFiles/tfunnel.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/tfunnel.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

sorry, I don't know why I didnt' get a notification for this. I'll have a look at it soon

Thank you for your response.
Can you provice a debian 9 x64 binary if possible while fix the build error ?

sorry, I don't know why I didnt' get a notification for this. I'll have a look at it soon

any fix to the source code ?

Hi @pisto ,
Can you provide some precompiled static binaries?
Thank you!

authors: kuyagic lars18th pisto

repo: pisto/tfunnel


text:
Speed up UI tests

Motivation
UI tests are really slow and run for an average of 8 minutes. I believe that this time can be improved.
Implementation
Currently, during UI tests a lot of projects, classes and methods are created. The process relies on SWTBot and mimic user's actions by, for instance, using wizards. This takes a lot of time.
We should be able to optimize this, for instance by creating the projects in advance and then importing them dynamically before running tests. This would also simplify a lot of code and would likely make easier to check and update the projects used during tests.

Actually, we should even be able to test every component in isolation. Moreover, I believe that we do not have to test a lot of different projects with different classes and tests: we do not want to test Pitest's behavior but rather ensure that we are able to communicate with it.
Hence, UI tests should mostly serve as E2E tests and we should only require a few of them to make sure Pitest is properly called and its results properly gathered. That's the reason why I think we could remove a lot of UI tests and thus reduce build time.

Shall we close this and keep on working on https://github.com/pitest/pitclipse/issues/81?

I'm not sure about that. I envisioned closing this issue by replacing most of UI tests by direct calls to Pitclipse objects. Even if #81 removes a lot of tests I believe that the Maven build would still benefit from such improvements.

OK, let's leave it open :)

I'm working on #81 (by removing Cucumber tests and writing SWTBot tests directly). So far so good :)
tests are much less flaky (the SWTBot timeout had to be increased but at least everything seems to be much more synchronized and deterministic), see https://github.com/pitest/pitclipse/tree/task_81-UI_tests_randomly_fail
By the way, each single test method can be run in isolation :)
Concerning this issue instead, I'm planning to get rid of all the user actions to create projects and classes (i.e., wizards) and prepare some pre-configured projects that we programmatically import during the SWTBot tests.

So I created a PR (#134) for #81 that would be great to be merged soon.
Concerning this issue, I've also started working on that on this branch https://github.com/pitest/pitclipse/tree/task_85-Speed_up_UI_tests (the branch is based on the one of #134).
Now we have 3 test projects that are imported during the SWTBot tests. This has these advantages (IMHO):

Importing an existing project is much faster than create it from the SWTBot tests itself
creating a project from SWTBot test does not make much sense since we don't have to test the creation of a project: our users already have a project and they simply run Pitclipse on the existing project, thus, also from the testing design point of view importing existing projects sounds better
it's easier to maintain since we can simply modify the existing projects from Eclipse or create new ones for other testing scenarios.

I'll create a PR after #134 has been merged.

Great! And happy to see that the CI seems to handle this as expected. I tried the "import project" option with Travis some time ago but faced strange issues were I couldn't import projects programmatically because "the disk is read-only" and never managed to overcome them.

Probably because you were importing the original project: in my solution we import a copy

We should test also project level scope as it used to be, in fact, WorkspaceLevelProjectFinder.java, WorkspaceLevelClassFinder.java, etc are uncovered

authors: LorenzoBettini echebbi

repo: pitest/pitclipse


text:
Add BeAnOsIsNotExistError matcher

This lets us do OS agnostic testing for filesystem errors. We found it handier than doing
Expect(os.IsNotExist(err)).To(BeTrue())

since it gives you a better error message than expected false to be true.

We updated the commit to add the missing test and address the naming mismatch.

Thanks! 🍉

authors: benmoss charlievieth christianang

repo: pivotal-cf-experimental/gomegamatchers


text:
Uninstall instructions for ClamAV

[#148597917]
Signed-off-by: Krishna Mannem kmannem@pivotal.io

Thank you @kcmannem

authors: kcmannem snneji

repo: pivotal-cf/docs-book-antivirus


text:
Use bash login shell to install bash-it

Turns out, running source ~/.bash_profile doesn't have an impact on non-login shells. Using bash --login defaults to sourcing ~/.bash_profile.

Sounds good to me. I’m going to try it out and then merge if it works for me.

I thought this was working, but it ends up terminating your script. I'm rescinding my PR.

authors: nertzy skmichaelson

repo: pivotal/workstation-setup


text:
Problems Making Certificate Request - string is too long, it needs to be no more than 64 bytes long

In raising this issue, I confirm the following:
{please fill the checkboxes, e.g: [X]}

[X] I have read and understood the contributors guide.
[X] The issue I am reporting can be replicated.
[X] The issue I am reporting can be is directly related to the pivpn installer script.
[X] The issue I am reporting isn't a duplicate (see FAQs, closed issues, and open issues).

Issue
Install script fails because EC private key filename is too long
Have you searched for similar issues and solutions?
(yes/no / which issues?)

Yes
Console output of      curl -L install.pivpn.io | bash
::: Installing scripts to /opt/pivpn... done.
set_var EASYRSA_ALGO       ec
set_var EASYRSA_CURVE      prime256v1
::: Building CA...
read EC key
writing EC key
Can't load /etc/openvpn/easy-rsa/pki/.rnd into RNG
140632924271744:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:98:Filename=/etc/openvpn/easy-rsa/pki/.rnd

::: CA Complete.

Note: using Easy-RSA configuration from: ./vars

Using SSL: openssl OpenSSL 1.1.1c  28 May 2019
Generating an EC private key
writing new private key to '/etc/openvpn/easy-rsa/pki/private/pihole-northamerica-northeast1-1_5a93a934-9f11-4ff7-80f4-dc8f61d60156.key.S9pvXM64Sz'
-----
string is too long, it needs to be no more than 64 bytes long
problems making Certificate Request

Easy-RSA error:

Failed to generate request
./easyrsa: 319: set: Illegal option -o echo

Console output of      pivpn add or pivpn add nopass
  Output Here

Console output of      pivpn debug
n/a

Have you taken any steps towards solving your issue?
No

fix for this pushed into test branch, please checkout and test it. thank you.

this has been merged today into Master branch.
Closing

repo: pivpn/pivpn


text:
www.pivpn.io lacks a proper security certificate.

http://www.pivpn.io/ lacks an SSL/TLS security certificate and this is scaring away potential (sometimes less technically savvy) users.  This is something that can (and should) be easily remedied at no additional cost, in under an hour of your time (assuming you have access to your domain registrar).  Let's Encrypt is a fabulous solution and was intended for this exact scenario.

Thank you for your time and attention to my little matter.  Help me, help you.  Love and have been using PiVPN for a number of years now.  Thank you for all of your hard work!  I'll be looking forward to seeing a bright green "A" on these results in the not too distant future:  https://www.ssllabs.com/ssltest/analyze.html?d=www.pivpn.io

I recall it was because of the difficulty in reaching the website owner. Such conversation is probably in the closed issues.

Closing.. Duplicate of: https://github.com/pivpn/pivpn/issues/236

authors: 4s3ti orazioedoardo peatrick


text:
pivpn Install uses insecure connections.

There are several calls to http calls,
Debian repositories are also being installed with http instead of https.

Pushed into test branch a fix for this as well as other stuff as moving pivpn.io to pivpn.dev
https://github.com/pivpn/pivpn/commit/33b2b2468d823ea1ab192eefa0ef2599efcf9b31

@orazioedoardo I have changed the deb repos to https, I am almost sure it causes no harm, but i haven't really tested it ...

It well established that most repositories are HTTP but it doesn’t matter since packages and sources files are GPG checked before installing, https://deb.debian.org/debian redirects to http.

@orazioedoardo yup I know, but doesn't harm to have it https if it doesn't break anything! =)
If it does then we fall back to http again.


text:
issue with running pivpn two instances on udp/tcp on same port

In raising this issue, I confirm the following:
{please fill the checkboxes, e.g: [X]}

[] I have read and understood the contributors guide.
[] The issue I am reporting can be replicated.
[] The issue I am reporting can be is directly related to the pivpn installer script.
[] The issue I am reporting isn't a duplicate (see FAQs, closed issues, and open issues).

Issue
So I wrote this guide a while back on how to run multiple instances on pivpn on same and different ports with udp/tcp for load balancing https://github.com/pivpn/pivpn/issues/178
I am running two server.conf with tcp and udp on same port as per my guide before.
However I have recently updated PI to buster and re-installed the pivpn and something does not seem to be working as I can connect on tcp and udp on port 443 but the data only comes through tcp but not udp. Not much has changed in terms of router/firewall or raspberry pi itself except that it is a fresh install of raspbian and pivpn etc.
I am using android openvpn app to connect and below you can see the two screenshots. What I can only make out is that tcp connects fine but udp does not and for some reason if you look at tcp screenshot, the openvpn client shows the android ip address and it seems to be missing on the udp version. Now I don't know if something has changed the way pivpn creates its server files where a copy/paste of same file and changing tcp to udp and giving new subnet range does not work or it is the android openvpn app that has some bug or is it the Android 10 that has stopped udp from working. It seems to connect fine but no data comes through. very odd....happy to paste any screenshots, logs etc. if someone can troubleshoot this with me.
Have you searched for similar issues and solutions?
(yes/no / which issues?)

yes
Have you taken any steps towards solving your issue?
 I have re-installed pivpn and also created other copies of the server.conf to replicate the issue.

ok, i have figured out how to make it work as the way the pivpn now creates folder structure there needs to be an additional change in one of the files. I will update the original guide accordingly. It will be good to if pivpn folder/file structure changes are published alongside with updates. Thanks

What change in the directory structure required you to update the guide?

What change in the directory structure required you to update the guide?

@orazioedoardo
Can you try this?

Go to /etc/openvpn/ccd
run ls to see all ovpn profile name.
run sudo mv <ovpn file> <ovpn file>.bak for the ovpn profile that you would like to test out.
Then retry connecting via UDP 1194 again.

authors: DawaLaw orazioedoardo vincentkenny01


text:
Disabling the ban list does not work

When I try to disable the ban list, it does not work. I can, however, edit the regulation file and remove the cards from there. However, every card will appear to be banned when clicking on them during a duel as a result. It is an issue of minor importance, since the game works as normal otherwise.
Here is a reference:
https://ibb.co/NskS1Vx

Using the unlimited regulation provides the same result as illustrated in my picture. It's just a different way of playing with no limits.

Fixed in this commit https://github.com/pixeltris/YgoMaster/commit/2dc87c3f6216914e009b98744c95cee33cf0cb48 which will be included in the next update

authors: pixeltris xPhilipDK

repo: pixeltris/YgoMaster


text:
🛑 Edge Platform is down

In 0db4cda, Edge Platform (https://edge.pixify.co.uk/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Edge Platform is back up in 57adfcb.

repo: pixifydigitalagency/monitors


text:
Application size and width does not reflect width and height of target view

Hi, I'm here again!  :blush:
var app = new PIXI.Application( {transparent:true, antialias: true, view: mycanvas} );

Should not the height and width be aware of target view width and height instead of 800x600 as default?

Pixi does not have that logic, its your job to call app.renderer.resize and pass screen width and height there.
There's autoResize: true parameter that sets CSS width and height, useful with reslution: devicePixelRatio.

Now I'm doing this:
var canvas      = document.getElementById('c');
    canvas.width    = window.screen.width;
    canvas.height   = window.screen.height;

    var app = new PIXI.Application(canvas.width, canvas.height, {view: canvas, forceCanvas:false, transparent:true, antialias: true});

I was recently scratching my head on how to support autoResize and resolution. Is there any guide about that in the Docs? Or any interesting resource?

https://github.com/pixijs/pixi.js/blob/dev/src/core/renderers/SystemRenderer.js#L218
Basically, if you ask app to resize to (W,H) with resolution A,, you'll get canvas of size (W*A, H*A) and if autoResize is true, then (W,H) will be passed to CSS. real pixels will be stored in renderer.view.width because its a canvas. Screen (css) pixels size is in renderer.screen. For your elements (Sprites, Containers) you have to specify screen coordinates, so resolution doesnt affect them.
That's all. If you want more - you have to experiment. I gave you the only part of code that responsible for canvas size.

@DavidGOrtega hopefully this will help:
Resize to Parent Node
https://jsfiddle.net/bigtimebuddy/wLg7jezb/
Resize to Fullscreen
https://jsfiddle.net/bigtimebuddy/oaLwp0p9/

@bigtimebuddy please add it to wiki.

Done. https://github.com/pixijs/pixi.js/wiki/v4-Tips,-Tricks,-and-Pitfalls#resizing-renderer

Thanks a lot guys!


text:
Custom fragment shader does not get precise texture color value

Expected Behavior
texture2D(uSampler, vTextureCoord) color value should be precise value as in the texture.
Current Behavior
color value at the edge of textures are not fetched correctly.

Above is the result of my custom shader applied.
belows are my vertex shader and fragment shader.
attribute vec2 aVertexPosition;
attribute vec2 aTextureCoord;

uniform mat3 projectionMatrix;

varying vec2 vTextureCoord;

void main(void)
{
    gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
    vTextureCoord = aTextureCoord;
}

precision mediump float;
varying vec2 vTextureCoord;
varying vec4 vColor;
uniform sampler2D uSampler;
uniform vec3 uColor;

void main(void)
{
    vec4 c = texture2D(uSampler, vTextureCoord);

    if (c.r == 1.0 && c.b == 1.0) {
        gl_FragColor = vec4(uColor.r * c.g, uColor.g * c.g, uColor.b * c.g, 1);
    } else if(c.r <= 0.1 && c.g <= 0.1 && c.b <= 0.1 && c.a == 1.0) {
        gl_FragColor = vec4(1, 1, 1, 1);
    } else if(c.a > 0.0) {
        gl_FragColor = vec4(c.r, c.g, c.b, c.a);
    }
}

You can see the black outline not properly converted to white at the right side of the character. and some pink pixels also not converted though it has 255 red and blue value in original texture.
I don't know why texture2D can't fetch precise value but just thinking it's somehow blended to nearby pixels.
Is there any way to get precise color value from texture2D as original texture?
Environment
pixi v4
Chrome

In pixi all framebuffers and textures have premultiplied alpha: instead of (r,g,b,a) we actually use (ra, ga, b*a, a), that allows us to use linear filtering better.
It can be changed for textures if you switch premultipliedAlpha param in baseTexture to false. Maybe its premultiplyAlpha, I dont sactually remember and it depends on pixi version.
Linear filtering can be changed in baseTexture.scaleMode
The result has to be premultiplied anyway.
Example: https://github.com/pixijs/pixi-filters/blob/master/filters/color-map/src/color-map.frag#L14 , as you see there's color.rgb /= color.a; operation and in the end we do color.rgb *= color.a;. Simple shaders dont use division because we can work with (r*a) just fine.

Thank you for reply Ivan!
I'm trying to change color of some parts of the sprites by it's original color value using shader.
below is the original texture shader to be applied.

I'm gonna change the color of clothes by inspecting it's color value.
because pixels I'm targeting to change always has (1, x, 1, 1) rgba value (pink pixels on the image), I inspect if it has r == 1.0 && b == 1.0 and change it to user defined color.
I think it is not affected by premultiplied alpha because every texture I put this shader has 1.0 alpha value.
Also scale mode is set as NEAREAST mode.
Weird thing I found is that it depends on the screen size like below.

pixel area that shaders are not properly applied changes according to the screen size.
currently I dynamically changes app.screen.width , app.screen.height, app.view.width and app.view.height when user resizes window.
app.view.width, app.view.height is always integer multiples of app.screen.width and app.screen.height

Is this a filter?
I believe you do apply the screen resolution into the shader to get correct results.

@Dairnon Yes it is a filter.
Can you explain it more for me? what do you mean by applying screen resolution into the shader?
currently screen resolution is set as 1 and it does not change.
For more additional information, giving some tolerance to color check make it works properly, by checking r >= 0.95 && b >= 0.95 instead of r == 1.0 && b == 1.0. But I know this is not a good way to solve this problem.

Not exactly screen resolution rather... shaders can sometimes have issues when it comes to like... scaling the whole viewport size/screen resolution.
You said the results change based on screen size right?
https://github.com/pixijs/pixi.js/wiki/v4-Creating-Filters
Many gotchas can cause strange results in creating a filter. I dunno if you've read this, but it can be helpful.
For example filterArea changing can change results when multiplied into the coordinates.
You can get pixel coords by doing
vec2 pixelCoord = vTextureCoord * filterArea.xy;

Also try taking a look at the colormap filter, it remaps colors to the textures pixels.
https://github.com/pixijs/pixi-filters/blob/master/filters/color-map/src/color-map.frag

Thank you @Dairnon, @ivanpopelyshev.
I fixed it by adding
 if (color.a > 0.0) {
        color.rgb /= color.a;
        ...
        color.rgb *= color.a;
}

part before I do something with sampled pixel color.
I still don't know why alpha value matters because original texture has all alpha value 1.0
I will look into the source code later to know what happens behind.
Thank you again!

authors: Dairnon ivanpopelyshev rkdrnf


text:
Texture: Using different wrapMode's with the same source

Expected Behavior
When calling Texture.from(source, options) would expend the the options would be obeyed.
Current Behavior
Obeys the options when creating the initial baseTexture, but does not for future calls.
Possible Solution
Move wrapMode up to the Texture (from BaseTexture) so the same source can support multiple wrapModes
Steps to Reproduce
var canvas = document.createElement('canvas')
var a = PIXI.Texture.from(canvas, {wrapMode: PIXI.WRAP_MODES.CLAMP})
var b = PIXI.Texture.from(canvas, {wrapMode: PIXI.WRAP_MODES.REPEAT})

console.log(
    a.baseTexture.wrapMode === PIXI.WRAP_MODES.CLAMP,
    b.baseTexture.wrapMode === PIXI.WRAP_MODES.REPEAT
)

Environment

pixi.js version: 5.3.3
Browser & Version: Chrome 85
OS & Version: _e.g. Mac 10.15.3
Running Example: https://www.pixiplayground.com/#/edit/-WP9vXHbw2ajyRVvsxID-

webgl2 + texture samplers can solve that, but nobody tried to add it in pixi yet.
Its strange that we obey that option if baseTexture is already created.

This is because of the TextureCache:
https://github.com/pixijs/pixi.js/blob/9ff49a23670bdb0ed864d4e53fb91d524eab59f2/packages/core/src/textures/Texture.ts#L383
For now, the better option would not to use the factory method and create the base-texture yourself:
const baseTexture = new BaseTexture(canvas as HTMLCanvasElement, { wrapMode: WRAP_MODES.REPEAT });
const texture = new Texture(baseTexture);

This will create two separate, independent textures. I don't know if there is a better solution that can use the same WebGL texture, although I doubt it.

@bigtimebuddy I don't think we need to fix this, because the normative usage of Texture.from assumes you want to use the texture cache. Documenting this behavior should be fine.

I agree @SukantPal.
Also, it's important to note that wrapMode is a BaseTexture property not a Texture property. The Texture.from options are a pass-thru to BaseTexture (this is already noted in the docs for Texture.from), so what @mudcube wants here isn't actually possible without having two BaseTexture objects.
PR is welcome if someone would like add more context about how Texture.from automatically adds things to the TextureCache. The caching behavior is already mentioned in BaseTexture.from.
@mudcube: I would suggest the above and not use Texture.from and manually create a new BaseTexture OR clone your canvas and pass each canvas into Texture.from and that should also work.

Thank you for these great recommendations, works like a charm :)

authors: SukantPal bigtimebuddy ivanpopelyshev mudcube


text:
Generated Object Collision Box

Sometimes generated objects (buttons specifically) will become out of sync with their hitbox, not sure why

Generated objects' hit boxes do not change with window resizing specifically

repo: pixl-garden/codagotchi


text:
[BUG]

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[ ] My answer given in the checkbox above is a lie.

What problem did you encounter?
AN EXCEPTION OCCURRED WHILE RUNNING BLOXSTRAP

You did not read the preliminary instructions. You're also using an old version of Bloxstrap.
https://github.com/pizzaboxer/bloxstrap/releases/latest
https://github.com/pizzaboxer/bloxstrap/wiki/"Access-to-the-path-is-denied"-error-when-trying-to-reinstall-Bloxstrap

authors: ASDASDFGEA pizzaboxer

repo: pizzaboxer/bloxstrap


text:
[BUG] Can't exit in fullscreen mode

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[ ] My answer given in the checkbox above is a lie.

What problem did you encounter?
Im running on latest bloxstrap version and one time i tried going in fullscreen mode but after that i can't exit anymore
I tried pressing F11/ Turning fullscreen off via settings/ pressing alt + enter/ reinstalling bloxstrap
I don't like using fullscreen because it gives me tearing and im not used to t, please fix it

Check if you have any FastFlags involving Vulkan.

Thank you it works but i already did this few days ago after posting this


text:
[BUG] Doesnt launch bloxstrap

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
i tried to do anything i found on wiki with problems of not launching bloxstrap
but i cant launch it still

i also cleared temp, cache and prefetch but still no luck even i tried uninstalling it but the unninstaller also didnt launched
soo i manually uninstalled but also installer doesnt launch too soo i give up and now i need your help!

Uninstall your .net runtime and reinstall.
Try redownload the installer exe and run it.
Otherwise, wait for Pizzaboxer to get online again.

Uninstall your .net runtime and reinstall. Try redownload the installer exe and run it. Otherwise, wait for Pizzaboxer to get online again.

Didnt worked but i will wait for pizzaboxer

i tried uninstalling it but the unninstaller also didnt launched

What did you try uninstalling? If you're talking about Bloxstrap, you didn't mention if it was working prior at all.

i tried uninstalling it but the unninstaller also didnt launched

What did you try uninstalling? If you're talking about Bloxstrap, you didn't mention if it was working prior at all.

i tried uninstalling bloxstrap and installing it again
but everything doesnt work soo i manually uninstalled

i tried uninstalling bloxstrap and installing it again

So it was working prior?
This is confusing, do you mean to say that Roblox isn't launching?

i tried uninstalling bloxstrap and installing it again

So it was working earlier if you were able to install it?
This is confusing, do you mean to say that Roblox isn't launching?

Alright this is what is happening to me
when i try to launch bloxstrap it doesnt do anything
when i try to uninstall bloxstrap it doesnt do anything also
soo i tried uninstalling it manually
then when i tried installing bloxstrap it also doesnt do anything
something like that

Okay, I see now. Try and run it again. If it doesn't launch, open Event Viewer, go to Windows Logs -> Application, and see if there's any error entries at the top. Show me if there are.

Okay, I see now. Try and run it again. If it doesn't launch, open Event Viewer, go to Windows Logs -> Application, and see if there's any error entries at the top. Show me if there are.

Sorry if i will lately reply
here is the error  i found: `Application: Bloxstrap-v2.5.3.exe
CoreCLR Version: 6.0.2423.51814
.NET Version: 6.0.24
Description: The process was terminated due to an unhandled exception.
Exception Info: System.TypeInitializationException: The type initializer for 'System.Windows.Application' threw an exception.
---> System.TypeInitializationException: The type initializer for '' threw an exception.
---> System.TypeInitializationException: The type initializer for '' threw an exception.
---> .ModuleLoadException: The C++ module failed to load.
---> System.BadImageFormatException: Could not load file or assembly 'System.Runtime.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Format of the executable (.exe) or library (.dll) is invalid.
File name: 'System.Runtime.Extensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at .LanguageSupport._Initialize(LanguageSupport* )
at .LanguageSupport.Initialize(LanguageSupport* )
--- End of inner exception stack trace ---
at .ThrowModuleLoadException(String errorMessage, Exception innerException)
at .LanguageSupport.Initialize(LanguageSupport* )
at .cctor()
--- End of inner exception stack trace ---
at .cctor()
--- End of inner exception stack trace ---
at System.Windows.Application.ApplicationInit()
at System.Windows.Application..cctor()
--- End of inner exception stack trace ---
at System.Windows.Application..ctor()
at Bloxstrap.App..ctor()
at Bloxstrap.App.Main()
`

---> .ModuleLoadException: The C++ module failed to load.
Uninstall Cpp module and reinstall??

---> .ModuleLoadException: The C++ module failed to load.

Uninstall Cpp module and reinstall??

i dont really know how to do it

Seems like you need to reinstall .NET. Uninstall it from your PC (it should show up as "Windows Desktop Runtime"), then reinstall it. https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-6.0.24-windows-x64-installer?cid=getdotnetcore

Seems like you need to reinstall .NET. Uninstall it from your PC (it should show up as "Windows Desktop Runtime"), then reinstall it. https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-6.0.24-windows-x64-installer?cid=getdotnetcore

Thank you it is fixed

authors: BokBoy hcjk pizzaboxer


text:
Adding example using imageops

As discussed here, tried reading in GeoTiffReader to image::ImageBuffer but cannot seem to get it working with any of the from methods. Would you have a link to the points iterator? I couldn't find it in this repo or image or tiff.
Another interesting alternative might be to use image::load.
But that would need GeoTiffReader to have the traits Seek and BufRead. Any thoughts?

Added an example using image-rs in 6d593f6d403845f8380f56f5bb583401aea20c8c

authors: pka pkopparla

repo: pka/georaster


text:
the problem

how can i solve this problem while i am gping to go on for the first step with this

The instruction said "Change your working directory to the repository's root directory."
The "root directory" in your case is "C:\Users\ASUS.spyder-py3\talking-head-anime-2-demo-main".
It is not "C:\Users\ASUS.spyder-py3\talking-head-anime-2-demo-main\tha2\app".

authors: dragonmeteor lofangmeng


text:
🛑 🛒Server For TaoBao is down

In 23ba6ae, 🛒Server For TaoBao (https://server.wayok.cn) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 🛒Server For TaoBao is back up in f5af614 after 7 minutes.


text:
Inconsistent return object of user_playlist_tracks

If given a playlist_id user_playlist_tracks returns a paging object,
if given a full url it returns playlist object (full). Tested on this playlist.
Code snipper below demonstrates the difference:
import spotipy
from spotipy import util

token = util.prompt_for_user_token(
    username,
    client_id=_client_id,
    client_secret=_client_secret,
    redirect_uri=_redirect_uri,
)
sp = spotipy.Spotify(auth=token)

url = "https://open.spotify.com/user/didrik0510/playlist/7ehrAeEI4icxsqlvGX02gW?si=LaDb4nMATFqmeGVgvhHObQ"
id_ = "7ehrAeEI4icxsqlvGX02gW"
print(sp.user_playlist_tracks(username, url).keys())
print(sp.user_playlist_tracks(username, id_).keys())

Having it written in the documentation would be nice, with the explanation what input results in what output type.

I had a similar problem in the past. I don't remember if this commit was enough for the fix but do check out if this helps https://github.com/plamere/spotipy/pull/324/commits/baf96493cc9b6aa51073c59a9f74edf6df444549.

If given a playlist_id user_playlist_tracks returns a paging object,

This is the correct behaviour.

if given a full url it returns playlist object (full). Tested on this playlist.

This should return the same paging object as passing the playlist_id. But with the full HTTP URL, sp.user_playlist_tracks ends up mimicking sp.playlist which is an incorrect behaviour.

authors: fulaphex ritiek

repo: plamere/spotipy


text:
Update Kotlin Spring Example

The Kotlin Spring example was written before the examples were settled on so some of the naming isn't up-to-date. It needs to be updated to handle the routes:
POST /register with payload:
{
pubKey: keys.pubKey,
enteredText: "Foo",
timestamp: new Date().getTime() + ''",
signature: "..."
};
POST /cool-stuff with payload:
{
uuid,
coolness: 'max',
timestamp: new Date().getTime() + ''"
signature: "..."
};
Any of the CLIs (JS, Python, Rust) can be used to verify the example is working as expected.

is this resolved with #69 ?

is this resolved with #69 ?

yep!

authors: Galacticai zach-planet-nine

repo: planet-nine-app/sessionless


text:
[wip] add support for foreign types

As discussed in https://github.com/planetscale/vtprotobuf/pull/93#issuecomment-1715486771, this is the third approach to supporting fast serialization of well-known types:
The idea is adding a flag, foreign to the compiler, which forces code generation to write free-standing functions (i.e. functions where the ProtoBuf message being (de)serialized is an argument, and not a method receiver). This allows the functions to operate on ProtoBuf objects from foreign packages.
As @biosvs points out on the other issue, generating free-standing functions is going to be very hard without adding a lot of if indirections. I had some time today so I sketched out a possible solution that abstracts method definitions and function calls behind a generic API. I managed to get foreign functions generation working for marshal+size -- all the other generation kinds are not implemented.
@biosvs: I would very much like to hear your thoughts on this approach. I think it's reasonably clean given the complexity that foreign types add. I'm out of time for this week, so I'll pick this up again next week -- if you have any suggestions or ways to improve on this design please feel free to push them to your own branch and I'll merge them here. Thanks again for your help with this feature!

Hi @vmg
First, let me say that in general I like the idea of having generator.Signature/generator.Call. Seems like a good approach to deal with an increased complexity.
But I'm not sure if I get the whole idea of the new feature:

Is it internal feature (for wkt only) or it'll be available for any messages?
How it should be used? There are generated marshal/unmarshal functions, but now they should to be called from other marshal/unmarshal functions.

My concerns are:

If it's internal feature, it's not good that main code of plugin is affected. Even from this PR it's obvious that complexity increases, it's harder to read, test and maintain.
If it's public feature, what to do with the chains of composition? Like m1.m2.m3.m4.field, where m3 has only "foreign" marshaler?

I'm trying to say, that such features are not only solution for particular problem, but also commitment for the future (and responsibility for those who use plugin/feature), new tech debt, complexity, potential bugs and inconsistencies between other features, etc. So, it's nice to have design and justification behind any new features.

Hey @biosvs! Thanks for your feedback! I agree with you that the feature is a big change and a lot to maintain down the road. My line of thought was this: since we have to change the codegen to support foreign types, we might as well expose this as a public-facing feature. By allowing vtprotobuf to generate free-standing functions, we can let people opt-in to faster ProtoBuf (de)serialization even for types they don't control (e.g. for the Kubernetes API in their project).
Is this feature generally useful enough? I don't know! But it seems like we need the extra codegen to be able to support the well-known types, so we might as well make expose it to the users in case they find a use for it. I just can't think of a simpler way to generate free-standing functions for the Well Known Types without modifying all the codegen for Marshal and Unmarshal. Can you?

Merged an alternative implementation here: https://github.com/planetscale/vtprotobuf/pull/99
Thanks for the help and the insights @biosvs!

authors: biosvs vmg

repo: planetscale/vtprotobuf


text:
Deprecation (Genome Map Details)

Apologies if this is covered elsewhere, but I was wondering what the intention of the documentation for the deprecation of the linkageGroups list in Genome Map Details is. Should we fill in the linkageGroups list as normal for now? Should we not fill it in at all? Should we fill it in with the text specified in the documentation? I'm just not quite sure how to interpret what's there.
Thanks,
Gordon

Sorry I didn't see this 6 months ago. I hope you've gotten the answer you were looking for before now. Just in case anyone is searching for a similar answer:
When a field in a response object is marked as "deprecated", then it should be considered deleted in that version. However, the field still needs to be available in the documentation to support backward compatibility.
In this example, in the v1.1 call "/maps/{mapDbId}" the field "linkageGroups" in the response object was removed and replaced by the field "data".

If you are building a server which supports v1.1 ONLY, then you should only include "data" in your response and ignore "linkageGroups". A client expecting a v1.1 response will be happy, A client expecting a v1.0 response will fail as expected.
If you are building a server which supports v1.1 and v1.0, then you should use include both "data" and  "linkageGroups" in your response. A client expecting a v1.1 response will be happy, with an extra field to ignore, A client expecting a v1.0 response will be happy, with an extra field to ignore,

The supported versions of each call should be documented in the "/calls" call.

authors: BrapiCoordinatorSelby gordonstephen

repo: plantbreeding/API


text:
GraphQL - multi-tenanted access support

GraphQL schema does not support multi-tenanted access. The tenants are the individual charities primarily. It might be helpful to build in support for multiple organisations that comprise of multiple groups.
e.g Blood Bike charities > Freewheelers, SERV, etc...
this would allow tenants of certain organisations to collaborate with other groups, provided they are within the same organisation umbrella.

completed with https://github.com/platelet-app/platelet/pull/26

authors: duckbytes platelet-app

repo: platelet-app/platelet