text:
master com_google_cel_cpp: no matching function for call to 'operator delete'

Title: no matching function for call to 'operator delete'
Description:

I try to build a main branch on Fedora 38 aarch64 host. and got error

external/com_google_cel_cpp/base/memory.h:92:7: error: no matching function for call to 'operator delete'

Build log
ERROR: /tmp/envoy/source/extensions/access_loggers/filters/cel/BUILD:11:19: Compiling source/extensions/access_loggers/filters/cel/cel.cc failed: (Exit 1): process-wrapper failed: error executing command
(cd /home/build/.cache/bazel/_bazel_build/221703495c2e97a5482194eda3ea2f8b/sandbox/processwrapper-sandbox/2208/execroot/envoy &&
exec env -
BAZEL_COMPILER=clang
BAZEL_LINKLIBS=-l%:libstdc++.a
BAZEL_LINKOPTS=-lm
CC=clang
CXX=clang++
PATH=/bin:/usr/bin:/usr/local/bin
PWD=/proc/self/cwd
TMPDIR=/tmp
/home/build/.cache/bazel/_bazel_build/install/690906d82aa78975b597bd4f0948f7cd/process-wrapper '--timeout=0' '--kill_delay=15' '--stats=/home/build/.cache/bazel/_bazel_build/221703495c2e97a5482194eda3ea2f8b/sandbox/processwrapper-sandbox/2208/stats.out' /usr/bin/clang-16 -U_FORTIFY_SOURCE -fstack-protector -Wall -Wthread-safety -Wself-assign -Wunused-but-set-parameter -Wno-free-nonheap-object -fcolor-diagnostics -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG -ffunction-sections -fdata-sections '-std=c++0x' -MD -MF bazel-out/aarch64-opt/bin/source/extensions/access_loggers/filters/cel/_objs/cel_lib/cel.d '-frandom-seed=bazel-out/aarch64-opt/bin/source/extensions/access_loggers/filters/cel/_objs/cel_lib/cel.o' -gsplit-dwarf -g -DFMT_HEADER_ONLY -DSPDLOG_FMT_EXTERNAL -DENVOY_ADMIN_FUNCTIONALITY -DENVOY_ENABLE_QUIC -DENVOY_ENABLE_FULL_PROTOS -DENVOY_ENABLE_YAML -DENVOY_ENABLE_HTTP_DATAGRAMS -DENVOY_MOBILE_ENABLE_LISTENER -DENVOY_MOBILE_XDS -DENVOY_GOOGLE_GRPC -DNGHTTP2_STATICLIB '-DBAZEL_CURRENT_REPOSITORY=""' -iquote . -iquote bazel-out/aarch64-opt/bin -iquote external/com_google_absl -iquote bazel-out/aarch64-opt/bin/external/com_google_absl -iquote external/com_github_gabime_spdlog -iquote bazel-out/aarch64-opt/bin/external/com_github_gabime_spdlog -iquote external/com_github_fmtlib_fmt -iquote bazel-out/aarch64-opt/bin/external/com_github_fmtlib_fmt -iquote external/com_google_protobuf -iquote bazel-out/aarch64-opt/bin/external/com_google_protobuf -iquote external/utf8_range -iquote bazel-out/aarch64-opt/bin/external/utf8_range -iquote external/com_github_cyan4973_xxhash -iquote bazel-out/aarch64-opt/bin/external/com_github_cyan4973_xxhash -iquote external/envoy_api -iquote bazel-out/aarch64-opt/bin/external/envoy_api -iquote external/com_google_googleapis -iquote bazel-out/aarch64-opt/bin/external/com_google_googleapis -iquote external/com_envoyproxy_protoc_gen_validate -iquote bazel-out/aarch64-opt/bin/external/com_envoyproxy_protoc_gen_validate -iquote external/com_googlesource_code_re2 -iquote bazel-out/aarch64-opt/bin/external/com_googlesource_code_re2 -iquote external/com_github_cncf_xds -iquote bazel-out/aarch64-opt/bin/external/com_github_cncf_xds -iquote external/opencensus_proto -iquote bazel-out/aarch64-opt/bin/external/opencensus_proto -iquote external/com_github_jbeder_yaml_cpp -iquote bazel-out/aarch64-opt/bin/external/com_github_jbeder_yaml_cpp -iquote external/boringssl -iquote bazel-out/aarch64-opt/bin/external/boringssl -iquote external/envoy -iquote bazel-out/aarch64-opt/bin/external/envoy -iquote external/com_github_google_quiche -iquote bazel-out/aarch64-opt/bin/external/com_github_google_quiche -iquote external/com_googlesource_googleurl -iquote bazel-out/aarch64-opt/bin/external/com_googlesource_googleurl -iquote external/com_github_openhistogram_libcircllhist -iquote bazel-out/aarch64-opt/bin/external/com_github_openhistogram_libcircllhist -iquote external/com_github_nlohmann_json -iquote bazel-out/aarch64-opt/bin/external/com_github_nlohmann_json -iquote external/com_github_google_flatbuffers -iquote bazel-out/aarch64-opt/bin/external/com_github_google_flatbuffers -iquote external/com_google_cel_cpp -iquote bazel-out/aarch64-opt/bin/external/com_google_cel_cpp -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/protobuf_nowkt -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/protobuf_lite -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/arena -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/arena_align -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/stubs/_virtual_includes/lite -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/port_def -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/arena_allocation_policy -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/arena_config -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/arena_cleanup -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/string_block -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/varint_shuffle -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/io/_virtual_includes/io -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/io/_virtual_includes/io_win32 -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/io/_virtual_includes/gzip_stream -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/stubs/_virtual_includes/stubs -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/io/_virtual_includes/printer -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/io/_virtual_includes/zero_copy_sink -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/io/_virtual_includes/tokenizer -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/any_proto -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/descriptor_proto -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/empty_proto -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/struct_proto -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/wrappers_proto -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/_virtual_includes/protobuf -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/protobuf -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/api_proto -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/source_context_proto -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/type_proto -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/duration_proto -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/field_mask_proto -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/timestamp_proto -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/compiler/_virtual_includes/importer -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/util/_virtual_includes/delimited_message_util -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/util/_virtual_includes/differencer -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/util/_virtual_includes/field_mask_util -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/util/_virtual_includes/json_util -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/json/_virtual_includes/json -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/json/_virtual_includes/parser -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/json/_virtual_includes/descriptor_traits -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/json/_virtual_includes/lexer -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/json/_virtual_includes/message_path -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/json/_virtual_includes/zero_copy_buffered_stream -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/json/_virtual_includes/untyped_message -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/util/_virtual_includes/type_resolver_util -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/_virtual_includes/descriptor_legacy -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/json/_virtual_includes/unparser -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/json/_virtual_includes/writer -Ibazel-out/aarch64-opt/bin/external/com_google_protobuf/src/google/protobuf/util/_virtual_includes/time_util -Ibazel-out/aarch64-opt/bin/source/common/common/_virtual_includes/logger_impl_lib_standard -Ibazel-out/aarch64-opt/bin/source/common/common/_virtual_includes/thread_impl_lib_posix -Ibazel-out/aarch64-opt/bin/source/common/api/_virtual_includes/os_sys_calls_lib -Ibazel-out/aarch64-opt/bin/source/common/quic/platform/_virtual_includes/quiche_export_impl_lib -Ibazel-out/aarch64-opt/bin/source/common/quic/platform/_virtual_includes/quiche_logging_impl_lib -Ibazel-out/aarch64-opt/bin/external/com_github_google_quiche/_virtual_includes/quiche_common_platform_default_quiche_platform_impl_command_line_flags_impl_lib -Ibazel-out/aarch64-opt/bin/external/com_github_google_quiche/_virtual_includes/quiche_common_platform_default_quiche_platform_impl_flag_utils_impl_lib -Ibazel-out/aarch64-opt/bin/external/com_github_google_quiche/_virtual_includes/quiche_common_platform_default_quiche_platform_impl_reference_counted_impl_lib -Ibazel-out/aarch64-opt/bin/external/com_github_google_quiche/_virtual_includes/quiche_common_platform_default_quiche_platform_impl_testvalue_impl_lib -Ibazel-out/aarch64-opt/bin/external/com_github_google_quiche/_virtual_includes/quiche_common_platform_default_quiche_platform_impl_prefetch_impl_lib -Ibazel-out/aarch64-opt/bin/source/common/quic/platform/_virtual_includes/quic_base_impl_lib -Ibazel-out/aarch64-opt/bin/source/common/quic/platform/virtual_includes/quiche_flags_impl_lib -Ibazel-out/aarch64-opt/bin/source/common/quic/platform/virtual_includes/quiche_mem_slice_impl_lib -Ibazel-out/aarch64-opt/bin/source/common/quic/platform/virtual_includes/quiche_platform_iovec_impl_lib -Ibazel-out/aarch64-opt/bin/source/common/quic/platform/virtual_includes/quiche_time_utils_impl_lib -Ibazel-out/aarch64-opt/bin/external/com_github_google_flatbuffers/virtual_includes/flatbuffers -Ibazel-out/aarch64-opt/bin/external/com_github_google_flatbuffers/src/virtual_includes/flatbuffers -isystem external/com_github_gabime_spdlog/include -isystem bazel-out/aarch64-opt/bin/external/com_github_gabime_spdlog/include -isystem external/com_github_fmtlib_fmt/include -isystem bazel-out/aarch64-opt/bin/external/com_github_fmtlib_fmt/include -isystem bazel-out/aarch64-opt/bin/external/envoy/bazel/foreign_cc/zlib/include -isystem external/com_github_jbeder_yaml_cpp/include -isystem bazel-out/aarch64-opt/bin/external/com_github_jbeder_yaml_cpp/include -isystem external/boringssl/src/include -isystem bazel-out/aarch64-opt/bin/external/boringssl/src/include -isystem bazel-out/aarch64-opt/bin/external/envoy/bazel/foreign_cc/event/include -isystem external/envoy/bazel/external/http_parser -isystem bazel-out/aarch64-opt/bin/external/envoy/bazel/external/http_parser -isystem bazel-out/aarch64-opt/bin/external/envoy/bazel/foreign_cc/nghttp2/include -isystem external/com_github_openhistogram_libcircllhist/src -isystem bazel-out/aarch64-opt/bin/external/com_github_openhistogram_libcircllhist/src -isystem external/com_github_nlohmann_json/include -isystem bazel-out/aarch64-opt/bin/external/com_github_nlohmann_json/include -isystem external/com_github_nlohmann_json/external/nlohmann_json_lib -isystem bazel-out/aarch64-opt/bin/external/com_github_nlohmann_json/external/nlohmann_json_lib '-DABSL_MIN_LOG_LEVEL=4' -fdebug-types-section -fPIC -Wno-deprecated-declarations '-std=c++17' -Wall -Wextra -Werror -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast -Wformat -Wformat-security -Wvla -Wno-deprecated-declarations -Wreturn-type -ggdb3 -fno-limit-debug-info -Wgnu-conditional-omitted-operand -Wc++2a-extensions -Wrange-loop-analysis -DTCMALLOC -DENVOY_OBJECT_TRACE_ON_DUMP -DENVOY_HOT_RESTART -DENVOY_ADMIN_HTML -DENVOY_STATIC_EXTENSION_REGISTRATION -DENVOY_GOOGLE_GRPC -DENVOY_HANDLE_SIGNALS -no-canonical-prefixes -Wno-builtin-macro-redefined '-D__DATE="redacted"' '-D__TIMESTAMP="redacted"' '-D__TIME="redacted"' -c source/extensions/access_loggers/filters/cel/cel.cc -o bazel-out/aarch64-opt/bin/source/extensions/access_loggers/filters/cel/_objs/cel_lib/cel.o)
In file included from source/extensions/access_loggers/filters/cel/cel.cc:1:
In file included from ./source/extensions/access_loggers/filters/cel/cel.h:12:
In file included from ./source/extensions/filters/common/expr/evaluator.h:7:
In file included from ./source/extensions/filters/common/expr/context.h:11:
In file included from external/com_google_cel_cpp/eval/public/cel_value.h:37:
external/com_google_cel_cpp/base/memory.h:92:7: error: no matching function for call to 'operator delete'
::operator delete(static_cast<void*>(p), n * sizeof(T),
^~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/aarch64-redhat-linux/13/../../../../include/c++/13/new:155:6: note: candidate function not viable: no known conversion from 'unsigned long' to 'std::align_val_t' for 2nd argument
void operator delete(void*, std::align_val_t, const std::nothrow_t&)
^
/usr/bin/../lib/gcc/aarch64-redhat-linux/13/../../../../include/c++/13/new:153:6: note: candidate function not viable: requires 2 arguments, but 3 were provided
void operator delete(void*, std::align_val_t)
^
/usr/bin/../lib/gcc/aarch64-redhat-linux/13/../../../../include/c++/13/new:144:6: note: candidate function not viable: requires 2 arguments, but 3 were provided
void operator delete(void*, const std::nothrow_t&) _GLIBCXX_USE_NOEXCEPT
^
/usr/bin/../lib/gcc/aarch64-redhat-linux/13/../../../../include/c++/13/new:180:13: note: candidate function not viable: requires 2 arguments, but 3 were provided
inline void operator delete  (void*, void*) _GLIBCXX_USE_NOEXCEPT { }
^
/usr/bin/../lib/gcc/aarch64-redhat-linux/13/../../../../include/c++/13/new:130:6: note: candidate function not viable: requires 1 argument, but 3 were provided
void operator delete(void*) _GLIBCXX_USE_NOEXCEPT
^
1 error generated.
Target //source/exe:envoy-static failed to build
INFO: Elapsed time: 15416.109s, Critical Path: 72.26s
INFO: 2353 processes: 146 internal, 1 local, 2206 processwrapper-sandbox.
FAILED: Build did NOT complete successfully

Repro steps:
To start build used command
bazel build --config=clang -c opt envoy --subcommands --jobs 1 --verbose_failures --sandbox_debug

I have build protobuf master branch using instructions.
https://github.com/protocolbuffers/protobuf/blob/main/src/README.md

As workaround i have compiled envoy using command
bazel build \
  --config=libc++ \
  -c opt \
  envoy \
  --subcommands \
  --jobs 1 \
  --verbose_failures \
  --sandbox_debug --copt="-Wno-changes-meaning"

@tyxia @yanavlasov @phlax

i think this may be fixed by https://github.com/envoyproxy/envoy/pull/31872 and is probably a ~dupe of https://github.com/envoyproxy/envoy/issues/31856

Is there any update for this issue? Seems like the newest 1.29.2 build still fails

authors: alyssawilk haoruolei phlax sergey-safarov


text:
Make Envoy::Grpc::AsyncClient mock friendly

After recent revamp of gRPC interfaces it became difficult to mock gRPC clients that use Envoy::Grpc::AsyncClient template. The problem is that interface is not virtual and now requires dependency injection to mock client objects.
Proposal is to make Envoy::Grpc::AsyncClint interface virtual, as there does not seem to be any downside to it.

@yanavlasov can you expand on the difficulty and what you are proposing? Here is an example of mocking:
https://github.com/envoyproxy/envoy/blob/2e03ef24060d479fb825d2d0257a1961f502f08d/test/extensions/filters/common/ratelimit/ratelimit_impl_test.cc#L67
I agree it used to be a bit simpler but it's not too bad now so trying to understand the proposal better. Thank you.

The Grpc::AsyncClient does not have sendRaw method. This has recently changed. Here is the new class.
https://github.com/envoyproxy/envoy/blob/3c42cf460a2710bbe4dc43e72afc456f72411f04/source/common/grpc/typed_async_client.h#L94

source: gharchive/issue

repo: envoyproxy/envoy

license_type: permissive

license_source: github-api


text:
cache: fix cache proto's max_body_bytes type

Commit Message: Change max_body_bytes type in cache.proto to uint64.
Additional Description: uint64_t is used for response body sizes in cache filter (AdjustedByteRange, LookupResult::content_length_ etc.) where max_body_bytes field is uint32 in cache.proto. Related discussion with @toddmgreer : https://github.com/envoyproxy/envoy/pull/10536#discussion_r438719035
I also wonder how to change (or generate) these fields under generated_api_shadow as it says: Do not hand edit any file under envoy/ and as I see they are not generated after build.
Risk Level: No usage of this field exists.
Testing: N/A
Docs Changes: N/A
Release Notes: N/A

You can regenerate the shadow API files by running tools/proto/proto_format.sh.

Sorry, we've been having some CI issues lately.  Can you try a master merge to see if it sorts out CI unhappiness?

https://developers.google.com/protocol-buffers/docs/proto#updating says:

int32, uint32, int64, uint64, and bool are all compatible – this means
you can change a field from one of these types to another without breaking
forwards- or backwards-compatibility. If a number is parsed from the wire
which doesn't fit in the corresponding type, you will get the same effect
as if you had cast the number to that type in C++ (e.g. if a 64-bit number
is read as an int32, it will be truncated to 32 bits).

I think the question is thus whether anyone will send a v3+ configuration
with max_body_bytes > 4GB to a deployment that expects a v2 configuration.
There aren't any deployments of this alpha filter, so that isn't going to
happen.
On Mon, Aug 17, 2020 at 5:51 PM htuch notifications@github.com wrote:

@htuch commented on this pull request.
In api/envoy/extensions/filters/http/cache/v3alpha/cache.proto
https://github.com/envoyproxy/envoy/pull/12273#discussion_r471851768:

@@ -80,5 +80,5 @@ message CacheConfig {
//
// Max body size the cache filter will insert into a cache. 0 means unlimited (though the cache
// storage implementation may have its own limit beyond which it will reject insertions).

uint32 max_body_bytes = 4;

uint64 max_body_bytes = 4;

I think the question is do we realistically expect to have cache objects >
4GB? If yes, then let's do this new/old deprecation dance, otherwise let's
handle the type mismatch in the implementation.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/envoyproxy/envoy/pull/12273#discussion_r471851768,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFRAWPK5POIU2JHGVZNSZVDSBHGAHANCNFSM4PGTSN2Q
.

We're actually stricter than wire compatibility and need to ensure we don't break language bindings as well, see https://github.com/envoyproxy/envoy/blob/master/api/API_VERSIONING.md#backwards-compatibility.

It says "Fields should not be renumbered or have their types changed. This
is standard proto development procedure." However, this kind of type change
(uint32->uint64) is perfectly fine in standard proto development procedure.
I think the rule is overly conservative, and that this change doesn't break
language bindings. Specifically, I think widening should be allowed.
On Tue, Aug 18, 2020 at 11:00 AM htuch notifications@github.com wrote:

We're actually stricter than wire compatibility and need to ensure we
don't break language bindings as well, see
https://github.com/envoyproxy/envoy/blob/master/api/API_VERSIONING.md#backwards-compatibility
.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/envoyproxy/envoy/pull/12273#issuecomment-675628226,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFRAWPIDXIVXCPDY6QJGJMLSBK6UXANCNFSM4PGTSN2Q
.

Possibly, @envoyproxy/api-shepherds WDYT? I'd ask for you to update the style guide at the same time if we do this.

Fine with me!

@jmarantz Reverted v2 protos and I wonder if there should be any further changes - docs, deprecations, etc. regarding the conversations above.

/wait

source: gharchive/pull-request

authors: alyssawilk enozcan htuch jmarantz mattklein123 toddmgreer zuercher


text:
Adding an option of to make a GRPC logging service Unary

Commit Message:
As we generalized ALS to other logging protos in certain cases the recieving end does not support streaming but only Unary RPCs.
This commit gives the option to configure the logger to be Unary instead of streaming.
Risk Level: Low
Testing: Unit Tests
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

@htuch @yanavlasov if/when you have some time :-)

@omriz should this have been stale botted or did you intend to follow up?

authors: htuch omriz


text:
Filter custom library

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/assign @RyanTheOptimist

Before diving into review the code, it looks like there are a number of failing checks:

DCO
Dependencies
Docs
Format
You can click the "Details" button next to each to bring up a page. At the bottom of that page is "View more details on Azure Pipelines". If you click on that you'll get more information on the details of the run. You can click one of the Red (x) icon for specifics. For example: https://dev.azure.com/cncf/envoy/_build/results?buildId=94924&view=logs&jobId=1c04237c-5f52-5959-5f83-5522b3556331&j=1c04237c-5f52-5959-5f83-5522b3556331&t=db3f3889-c922-566b-fa2e-4bc4948bc467 will show you the details on the failed dependency check:
Extension envoy.expr.custom_library depends on com_github_google_flatbuffers but com_github_google_flatbuffers does not list envoy.expr.custom_library in its allowlist
/wait


text:
docker: use multi-stage build

Use Docker multi-stage build and migrate all Docker image build process to docker buildx, this saves time and space by not loading images to Docker daemon during the build.
Risk Level: Low
Testing: CI
Docs Changes: N/A
Release Notes: N/A
Signed-off-by: Lizan Zhou lizan@tetrate.io

Relevant re: removing Alpine images - https://github.com/envoyproxy/envoy/issues/19781

great idea for reducing size!
seems like there is a syntax error of some sort in ci/do_ci.sh

@phlax this should be good to go

the idea of prebuilding the image with the binary is really cool, altho it still seems to be sending a huge context - im wondering if it is worth building the image with the binaries and then deleting them before building the rest or similar. I just think it would speed it up quite a bit not copying out gbs of data

Looking at the log I don't think BuildKit sends duplicate context, we have {envoy,envoy-contrib}-{release,debug}-{amd64,arm64} combination and it seems only sends them once each. For disk space it now ending the job with 19GB available vs 9.6GB available before this PR, the job starting with 34GB.

Thanks!

authors: PiotrSikora lizan moderation phlax


text:
kafka: handle all request types (requires handling of int64_t)

Commit Message: kafka: handle all request types (requires handling of int64_t)
Additional Description: add the remaining request types there were missed over the most recent updates.
Risk Level: Low
Testing: integration tests; manual tests (new APIs)
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

/wait-any

ready for review

/assign @mattklein123
As the other codeowner of kafka

authors: KBaichoo adamkotwasinski


text:
Fix ext_proc filter can not send non-utf8 character by gRPC

Currently ext_proc is using protobuf string type to transmit header and trailer value. However, protobuf string requires it to be valid UTF-8 character.  This has caused issues so a temporary workaround is applied to ext_proc filter by converting those non utf-8 character header value into "!" before sending it to the ext_proc server.
However, this approach brings in new issue that the header or trailer it sends to ext_proc server is completely changed.
To solve this problem a new API , like HeaderMpaBytes, is needed that uses the bytes type instead of string. bytes does not need to be UTF-8.

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

@yanavlasov @htuch @tyxia @mattklein123

For reviewers, converting non-utf8 character to "!" when ext_proc filter sending header/trailers to ext_proc server is problematic.  It completely changed the original header or trailer value.
This PR take the advantage that the ext_proc filter is still in Alpha state, to resolve the issue completely.

/assign @tyxia

/assign @adisuissa

Waiting for the API approval.

/assign @markdroth

/assign @envoyproxy/api-shepherds

LGTM. Please merge main.
/wait

/retest

Kind Ping!

authors: tyxia yanavlasov yanjunxiang-google


text:
http: allow ignoring unknown upgrade requests

Fixes #36305
Add configuration to ignore either all unknown upgrade requests, or specific upgrade requests. This is allowed in https://datatracker.ietf.org/doc/html/rfc7230#section-6.7:
A server MAY ignore a received Upgrade
header field if it wishes to continue using the current protocol on
that connection.
Risk Level: Medium
Testing: TODO
Docs Changes:
Release Notes: TODO

Initial questions:

Is this the right way to ignore upgrades?
Is it better to default the global-ignore to true or false?
Do we need to handle h2/h3 specially? My understanding is that the Upgrade header doesn't apply to them at all (https://www.rfc-editor.org/rfc/rfc9113#name-the-upgrade-header-field).

cc @RyanTheOptimist for spec thoughts

Yes, Upgrade is HTTP/1 only. However Extended CONNECT provides similar capabilities for H2 and H3. Do we have a similar configuration method for this?

As mentioned by @chlunde above, we also need to remove the parts of the Connection header for upgrades. When looking at that, I found other code that removes h2c upgrades, and found that there is another portion for h2c that needs to be removed (http2-settings). Are there similar bits for other types of upgrades? And if there are, is there any risk if they are not removed?

There's an important distinction between HTTP versions here:

Upgrade is used only in HTTP/1.1, it is documented in Section 7.8 of RFC 9110
Extended CONNECT is used only in HTTP/2 and HTTP/3, it is documented in RFC 8441 and RFC 9220

(As a quick side note, RFC 7230 has been obsoleted by RFC 9110 and RFC 9112, please do not refer to it as some parts of it are incorrect).
They behave differently: in particular, in HTTP/1.1 the server can "ignore" the Upgrade and still send a successful HTTP/1.1 response without upgrading to a different protocol. In HTTP/2 and 3 however, that is not possible. If the server does not wish to use the other protocol, it has no choice but to reject the request.
This gets particularly tricky because Envoy normalizes every Extended CONNECT internally to look like Upgrade. So the information of whether ignoring is allowed or not gets somewhat hard to track down inside Envoy.
I worry that this will cause protocol confusion or request smuggling attacks, unless there are strong safeguards in place to ensure that this cannot happen in HTTP/2 or HTTP/3.

@DavidSchinazi thanks for the clarification on this. I added a check, and renamed the config fields, to document and ensure that ignoring upgrades only happens on http 1.1.

Thanks @ggreenway ! As far as I can tell, this looks safe from a spec perspective. But I'll let folks more familiar with Envoy internals do the detailed code review.

@ggreenway 👋 , hi, what is going to be the expected behavior after this fix for the HTTP2 upstreams? Is it going to be safe to use HTTP2 clusters when clients supply -H "Connection: Upgrade" -H "Upgrade: TLS/1.3" headers for example? Just want to double check expectations after reading (https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-upgradeconfig) that upgrade config does not work with HTTP2

@ipoval when Envoy ignores a downstream http/1.1 upgrade request, it will remove the upgrade headers from the request, so the request should be fine for any upstream http version because it no longer requests an upgrade.

Integration tests reveal that this doesn't work. The http1 codec handles request processing differently if it thinks an upgrade is happening; see handling_upgrade_ in http1/codec_impl.cc.

A fix for this would probably have to be in the http1 codec_impl, but that doesn't have access to the configured upgrades which are processed later, so it would probably need to be a change that specifically ignores TLS upgrades.

authors: DavidSchinazi RyanTheOptimist alyssawilk ggreenway ipoval


text:
opencensus: tweak enum in configuration API.

Since this API is still experimental, tweaking to match best proto
practices.
Risk level: Low
Signed-off-by: Harvey Tuch htuch@google.com

@g-easy @curiouserrandy as discussed on e-mail thread. I can add tests if you think it's worthwhile for the null op as well if this is the right behavior.

This change looks good to me. Up to you if you want to add NONE to the test. :) Thanks!

authors: g-easy htuch


text:
tracing: Update OpenCensus.

Let the config override the Stackdriver address. This can be used for
proxying and testing.
Signed-off-by: Emil Mikulic g-easy@users.noreply.github.com

cc @objectiser this moves opencensus to master tip (which was requested in a previous PR).

@g-easy can you merge master, LGTM.

Thanks!

authors: g-easy htuch kyessenov


text:
Adding trace headers in response.

Description:  This PR adds two response headers to the zipkin-tracing example to help show how to return two key headers.  These response headers were requested to be added in the following two issues:

https://github.com/envoyproxy/envoy/issues/8683
https://github.com/envoyproxy/envoy/issues/9243

Risk Level:  Low
Testing: https://github.com/envoyproxy/envoy/issues/9243#issuecomment-562330414
Docs Changes: N/A
Release Notes:   This PR should be merged when 1.13.0 is released.

Thanks @bluetechy! Can you fix DCO? https://github.com/envoyproxy/envoy/blob/master/CONTRIBUTING.md#dco-sign-your-work

authors: bluetechy dio


text:
Add datadog tracing example

Commit Message: Add example for Datadog tracing.
Additional Description: This commit relocates the Datadog example form the /source directory. Additionally, it adds public documentation. Risk Level: Low.
Testing: Manual testing.
Docs Changes: Add public documentation.
Release Notes: This change is not impacting user, no release notes update required.
Sorry @phlax I've been a bit behind on that task. Let's take the necessary steps to close it out as soon as possible.

Let's take the necessary steps to close it out as soon as possible.

sure - if it can pass CI im happy to land

authors: dmehala phlax

repo: envoyproxy/examples


text:
feat: support forward client cert config XFCC header

What type of PR is this?
configure envoy gateway to propagate XFCC header
What this PR does / why we need it:
this can be used to authorize client based on certificate from XFCC header
Which issue(s) this PR fixes:
https://github.com/envoyproxy/gateway/issues/2599

@zhaohuabing @arkodg @guydc moving XFCC configuration to tls.clientvalidation and put mode & XFCC data selection when forwarding into 1 struct.
please help review

hey @zufardhiyaulhaq a few comments have been added, with those addressed, this PR should be good be be merged

Hi @arkodg sorry been of for a while, will work on this.
Thank you!

todo: fix unit tests on xds/translator

@arkodg please help review,
thank you!

@zufardhiyaulhaq can you run make generate again, see some failures in CI

authors: arkodg zufardhiyaulhaq

repo: envoyproxy/gateway


text:
🛑 Web site is down

In c3baf3c, Web site (http://www.enymind.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Web site is back up in a2a31e4 after 8 minutes.

repo: enyone/upptime

license: MIT


text:
looping sampler with pre-loaded audio files not working.

Hi! The attached patch implements an enveloping sampler (the contents of the audio file have been saved within the patch, inside the table). This patch starts looping immediately in Pd after activating DSP, however, it won't deliver any sound after being compiled through Heavy; as in the PD patch, I would have expected to have sound at the output after increasing the amplitude parameter.
I tried with the js and VST64bits downloads. File size is less than 1 MB.
Any clues? Thanks!
table-test.pd.zip

@sergiogranadamoreno Looks like your table data is being correctly stored when uploading to heavy.
Can you try putting a [sig~ ] object before the two [samphold~] objects?
Heavy is a bit less forgiving about receiving control connections to signal objects than Pd is. Though I have been working recently on a fix that can resolve this particular situation.

yeah! that worked :)
so, should we always put a [sig~] before objects that deal with audio signals?
In this same patch [phasor~] receives control connections (data-flow) with no issues... does this behaviour does not applies to generators?
thanks for your help man!

Yeah for the moment some objects requires a signal connection, funnily enough [phasor~] is ok!
[lop~]
[samphold~]
[hip~]
[bp~]
[vcf~]
... tbh most of the signal rate objects (with a ~)
I am aiming to resolve this soon!

table-test.pd.zip
It doesn't seem to be a problem to me! Looping sampler is working fine now (and so this issue is solved for me).
One last question though: this patch seems to work fine as a VST plugin. Could the @hv_param functionality (from issue  #131 ) be implemented for VST development? If so, is there any docs on how to use it?

Can you make a new ticket for that? Also I'm not sure if I understand the request, exposed input parameters via @hv_param are supported in the VST target: https://enzienaudio.com/docs/index.html#09.vst#defining-parameters

sorry, I meant the @hv_table descriptor. I'll continue on #131 .

authors: diplojocus sergiogranadamoreno

repo: enzienaudio/heavy

license: ISC


text:
English translation for the dashboard interface and the documentation?

Description
Hi!
Is there any roadmap established about translation the dashboard interface and the documentation of the product to english, or is something that is not going to happen?
Thanks in advance.
Regards,
Alejandro

We are still continuously optimizing the functionality of the console and will consider supporting multiple languages when the features are more complete. It is estimated that we will consider supporting multiple languages in Q4.

authors: Dot-Liu canob

repo: eolinker/apinto


text:
🛑 eos_space_front is down

In 25edaa4, eos_space_front ($EOS_SPACE_FRONT_URL) was down:

HTTP code: 0
Response time: 0 ms

Resolved: eos_space_front is back up in ff66acc after 10 minutes.

repo: eos-technology/uptime


text:
Tell Your Exchange

Generate tweet and count mentions

@xavier506 is there a template for the tweet we want?

Lets make it something simple like this to start
@exchangeTwitter I own my vote and urge you to support #Myvoteeos

repo: eoscostarica/MyvoteEOS-proxy


text:
[QUESTION] Running build_runner in this repository?

Running build_runner in this repo yields many errors. What is the recommended flow? I have the following questions:

How to run build_runner in the repo? It crashes due to the build.yaml setup.
Why are generated files in .g2.dart files rather than .g.dart? json_serializable refuses the generate the former.
GeneratorOptions has duplicated default values (one in the constructor and second in the JsonKey annotation). This makes json_serializable complain a lot, would you be open to me changing that?

It all started with me wanting to contribute a fix, but getting stuck at the dev flow of this repo. Answers to the above would be appreciated. Also the example folder is quite outdated, I would like to contribute an upgrade there too.

Hi @shilangyu , If you need to run build_runner in this repo - comment all contents in build.yaml file in root of project.
Feel free to replace .g2 files to .g files. It has been done a long time ago, we copied approach from chopper package
Feel free to make any changes that will not broke generation :) And thanks for contribution!

I'm closing this issue. I hope I answered to all your questions. Feel free to reopen it in case of any other questions!

Thanks. I will try to also fix the first point to not have to comment out build.yaml. This might be deferring future contributors if the dev flow isn't standard.


text:
[Marketplace]: redirect to chat's details instead on Talk to modal when edit chat's settings

EPAM AI DIAL chat version
0.18.0
How to reproduce
Preconditions:
there is a conversation with at least one message and response
Steps:

click on chat's name from precondition in side panel
click on gear icon in the chat's header
remove chat's model from My applications
click Back to chat ->  returned to chat's details screen-> bug

Actual result
user is returned to chat's details screen
Expected result
Need to return to Talk to modal form
Confidential information

[X] I confirm that do not share any confidential information

See also #2221 - similar mechanism should be used

Not reproduced because of re-design of settings and the logic of Back to Chat

authors: VolhaBazhkova YauheniyaH

repo: epam/ai-dial-chat


text:
Design and implement generic way to set parameters for applications/adapters

MVP cases:

Usecase
Deployment
User
Comments

Model selection
DIAL RAG
UI Users / Derived applications which uses RAG API

Error reporting type
DIAL RAG
Web RAG Programmatically

Dataset selection
danswer app
UI User

Dataset list
danswer app
UI User

Retry count
SUB-PROJECT-1
UI User, potentially API user

Get data
StatGPT
IMF UI User
Option is only available when all query parameters are filled

Select API Search indices or copilot
MSFT RAG demo
Sales person

Seems like we have at least two simple cases:

Application Settings
Contextual  commands

The task is longer valid.

authors: astsiapanay avavilau

repo: epam/ai-dial-core


text:
Draw selection outline correctly for hovered structures

Actual behaviour
After introducing the new selection in #2088 if the structure is in an expanded s-group or is selected with the "fragment selection" tool and is hovered over - the bond selections will be drawn over atoms.

Expected behaviour
Atoms should always be drawn above the bonds and the bond contours should not intersect atom contours.

Please update the current behavior so that atom outline would not overlap the whole bond, but only its outline.
Ideally we want one united outline, without intersection within it. Maybe in next phase?

test cases are created

test cases are created

authors: KonstantinEpam23 nightnick y-holik

repo: epam/ketcher


text:
Add unsaved changes message

Fixes #45
A "You have unsaved changes" message pops up if the user has changed the SQL. It only pops up if they try to go to another page but not if they click the "Save and Run" button. Also, it doesn't pop up when you change the SQL on a playground and then go to another page. I figured the playground isn't usually for saving queries anyway, so why annoy the user?
Here's what it looks like:

Terrific -- thanks for this Grant. Simple and effective!
Next up -- issue #94!

authors: chrisclark grantmcconnaughey

repo: epantry/django-sql-explorer

license: mit

license_source: bigquery


text:
fix: update typescript typings definition file

What issue does this pull request resolve?
There are some issues with the TypeScript typings, especially around the exported classes. Users have had issues with it as well as described in this comment: https://github.com/epoberezkin/ajv/issues/568#issuecomment-405754868
Basically, this issue is that if you try and check if an error is an instance of Ajv.ValidationError it won't work.
Some steps to reproduce:
try {
  const validate = ajv.compile(schema); // schema with $async
  await validate(data);
} catch (err) {
  if (!(err instanceof Ajv.ValidationError)) { // <-- TS ERROR HERE
    throw err;
  }
}

You get this TypeScript error:
[ts] The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type.

This is because the types don't correctly export the error classes.
What changes did you make?
This PR updates the TS typings definitions so that this error is resolved.
When making this change I followed the guides found at: https://github.com/typings/typings/blob/master/docs/examples.md#function--utility which are provided by the TypeScript authors.
Basically, the changes are:

export declare function ajv(options?: ajv.Options): ajv.Ajv;
add export to all interfaces and types
move the error classes into the main namespace and export them

replaced by #903

authors: acheronfail epoberezkin

repo: epoberezkin/ajv


text:
Create Table Data Grid component

Create new component for Table Data Grid

[x] Create all states
[x] Adjust size left and right
[x] Documentation
[x] Examples

Example #1047

Ready for review @BirteThornquist . New component here and documentation / examples here . One idea is to present a disable color state only if you have read/edit mode in a table. Not sure if this a good way to go.

Great job @lucasveil! Looking good. One small thing; the text color for Header/Disabled is different in default and compact density. Else 💯

Could you check my comment in figma for the disable state @BirteThornquist ?

✅

Can you have a last check in the file @akvam?

authors: BirteThornquist lucasveil

repo: equinor/design-system


text:
Lazy load iframe embeds

Lighthouse flags our embedded YouTube videos as a critical performance blocker under:

Some third-party resources can be lazy loaded with a facade

We should lazy load these (and ideally other) iframes in order to improve performance and UX
See: https://developer.chrome.com/docs/lighthouse/performance/third-party-facades

Since this only will be visible in prod, i will skip the acceptance step

authors: SvSven millianapia

repo: equinor/energyvision


text:
Python 2 to 3 fixes

str has no attribute decode in Python 3.
createArray becomes create_array in Python 3.

I wanted to have the notebooks working on Binder from my fork, and I don't have forked the submodules, so it cannot build. Let me see if that works if I fork them.

I see, that sounds like a good plan. There are other ways for us to handle the sub modules and Dockerfile using the hashdist stack, if needed. I think it’s good for you to run with your approach until you’re happy with it.

@cekees I have a binder working: https://mybinder.org/v2/gh/davidbrochart/proteus/fix?filepath=notebooks%2FTutorials%2FTutorial_1%2FIntroduction.ipynb
It's using my branch on my fork of proteus, and the packages installed through conda-forge.

@cekees What prevents this PR to be merged at the moment is the handling of the sub modules and Dockerfile. You mentioned using the hashdist stack, what do you have in mind?
Once this is merged, we would need to make a Proteus release to be able to install through conda-forge.

@cekees I reverted the deletion of the submodules and the Dockerfile, so it cannot work in Binder anymore. But once this is merged and released you should be able to run the tutorial notebooks locally through conda-forge installation.

Thanks. We can reconfigure this binder repo to use the conda package: https://github.com/erdc/proteus_tutorial
I'd be interested in the different in the startup time relative to the current docker container.

Thanks for merging @cekees. Could you please also make a release? This is required if we want to have the changes in conda-forge.

Ping @cekees

Done, thanks to @tridelat  !

Thanks @cekees and @tridelat !

Actually would need to re-release this one. It is only for "cosmetic" changes referring to version 1.7.1 instead of 1.7.0.dev0. I can release with the same tag, as long as it does not create problems with conda-forge @davidbrochart

@tridelat Proteus 1.7.1 is now available through conda-forge: https://anaconda.org/conda-forge/proteus
@cekees You can try the following binder that uses it: https://mybinder.org/v2/gh/davidbrochart/proteus_tutorial/master?filepath=index.ipynb

@cekees Sorry, I meant this binder: https://mybinder.org/v2/gh/davidbrochart/proteus_tutorial/conda_forge?filepath=index.ipynb

authors: cekees davidbrochart tridelat

repo: erdc/proteus


text:
AMLStudio: Combobox for connection selection

Change the "Change" Button into a Combobox. See #5

Since you can double click an item in the editor to select it (or use Ctrl+O > arrow keys > Enter if you are keyboard-minded), I feel that the current UI is nearly as efficient as a combobox with the added usability that added and/or modifying connections does not require going to a separate UI.  Therefore, I am going to close this for now.

repo: erdomke/InnovatorAdmin


text:
Extra layer of stealth -  content-length with auto counted content length.

Is your feature request related to a problem? Please describe.
Auto add content-length with right number of length to make traffic more hidden in http2
Describe the solution you'd like
when you add flag --enable-content-length
header content-length: (right number of length counted by wstunnel) is added to every request
Describe alternatives you've considered
I through that i can set static number but it is easy to detect with inspection that content-length does not match real length but tried it too.
content-length: 0 = can't connect to ssh after wstunnel
content-length: 1000 = can connect but can't execute commands ( error )
content-length: 5000 = can connect + can execute commands but error when use sock proxy to browse internet
content-length: 19503829(random big number) = can everything but i think it could be too easy detected.

Hello,
It is not possible for wstunnel to pre-set the content-length headers. As it depends on the amount of traffic you transfer in the tunnel, it cannot be known in advance to be set in the header request.
Your only solution is to set a big number indeed. If you are afraid of it to be too noticeable, you can randomize it :)

hmm looks like only wstunnel self closes connection when content-length is too low for connection or when connected and number of packets which are sent is bigger than content-length than wstunnel server drop connection.
Is maybe possible to set attribute with wstunnel server --ignore-content-length which ignores content-length or removes it inside wstunnel and then parse further request?
Alternative could be HAProxy between frontend HAproxy and wstunnel which removes this header but it wil be overkill for so little task and haproxy gets timeouts when work in layer 7 with wstunnel hmm
Then eventually we could use random number here which help gets through firewall but is ignored in wstunnel server.
wstunnel client --set-content-length 1000 --content-length-variation 500 (which could get random values between 500 and 1500
but only --ignore-content-length could "be need to have" for firewall bypass. Of course if it is possible.
client side we could alltime set self --http-headers content-length:1294

Sadly, I can't remove the handling of the content-type from wstunnel, as it is directly backed into the HTTP library, and I don't have anyway to control its behavior on that point.
I think you are fine setting a random big number as content-length

authors: AnorBanantje erebe

repo: erebe/wstunnel


text:
Add support for k8s jobs

Could you add support for jobs to apps/v1?

Nevermind, I misunderstood the kubernetes api. I see it under batch.


text:
List from cache behavior

List operations can set "resourceVersion=0 to allow the API server to prefer its local cache instead of guaranteeing the freshest results. Provide a convince for this and maybe even make it the default. Most apps don't care about having the absolute latest data.
Maybe something like this?
// DisableCaching, when provided to a list call, ensures that the API server doesn't refer
// to its internal cache of resources and queries for the freshest resources from its
// backing storage.
func DisableCaching() Option

Naming could probably be worked out. Maybe DisableCache, NoCaching, SkipCache, LatestResults, etc.
Pros:

Most apps don't care about having the absolute latest data.
Performance improvement.
Most apps should use this anyway.

Cons:

Extremely surprising if you write apps requiring the latest data.
Have to provide to every API call (maybe a client setting as well?)

Closing. I think an informers example would be better here.


text:
Add data validation layer to detect "obviously incorrect" data output

For example, a machine should never report cpu.cores = 0. Perhaps there should be some level of validation either in the collector, or across all collectors to try to detect when a command may have failed, or a command may not be implemented correctly on a platform.

This should probably be handled by the collectors themselves, and reported as an error. Perhaps we need a new error return type for these cases?

repo: erichte-ibm/conga


text:
v2.1.7

New packages with support for SQLite3 Multiple Ciphers, thanks to @bricelam and @utelle
Fix for problems with VSTO, thanks to @farzonl
Fix for perf-related warning CA1859, thanks to @bricelam
Fix for incorrect handling of empty string with Span APIs, thanks to @nil4
Add sqlite3_serialize/deserialize, thanks to @Trinitek and @garthmz

Regarding the packages for SQLite3 Multiple Ciphers I have 2 comments/questions:

Please add a proper README to the sqlite3mc packages (something like this README @bricelam and I prepared and which is suited for NuGet.org), not only a short package description. I think it is important to guide users of the new packages a bit.
I see library packages SQLitePCLRaw.lib.e_sqlite3mc.androidand SQLitePCLRaw.lib.e_sqlite3mc.ios, but not SQLitePCLRaw.lib.e_sqlite3mc like for the other variants e_sqlite3 and e_sqlcipher. Is this intentional?

SQLitePCLRaw.lib.e_sqlite3mc is present and working okay for me.  Where are you seeing its absence?
Perhaps what you are seeing is that that directory is not present under src.  I think that's because everything inside that directory is automatically generated, and it never got committed to the repo.  In most places, I have been committing generated code to the repo, which is an uncommon and questionable practice.
Nonetheless, SQLitePCLRaw.lib.e_sqlite3mc does seem to get generated and built and it shows up in the resulting nupkgs directory.

SQLitePCLRaw.lib.e_sqlite3mc is present and working okay for me. Where are you seeing its absence?
Perhaps what you are seeing is that that directory is not present under src.

Yes, exactly.

I think that's because everything inside that directory is automatically generated, and it never got committed to the repo. In most places, I have been committing generated code to the repo, which is an uncommon and questionable practice.

Well, it is a bit confusing if some generated sources are in the repo and some not.

Nonetheless, SQLitePCLRaw.lib.e_sqlite3mc does seem to get generated and built and it shows up in the resulting nupkgs directory.

Ok. Thanks for the clarification.

I grabbed that README and put it into the bundle_e_sqlite3mc package, which is the same thing that I saw had been done before.

I grabbed that README and put it into the bundle_e_sqlite3mc package, which is the same thing that I saw had been done before.

Thanks. According to @bricelam it should be enough to have the README in the bundle package. Maybe we should remove the version section from the README, because the version information is shown on the NuGet package webpage anyway and will correspond to the actual version number of your package workflow.

Maybe we should remove the version section

Done

Sorry, not yet completely. The line in the TOC referring to the version section, should be removed, too. TIA.

@bricelam @utelle Do you see anything else that should be done w.r.t. sqlite3mc before I publish a 2.1.7 prerelease?

LGTM

You may go ahead with the prerelease.

I think that's because everything inside that directory is automatically generated, and it never got committed to the repo.

Correct. I only included the files I personally authored in the PR to make reviewing easier. I left out the ones generated during build.

2.1.7-pre has been published on NuGet.

Posted More SQLite Encryption in .NET on my blog. I'll also spread the word on social media.

In my SQLite3MultipleCiphers-NuGet @bricelam made quite some effort to

Add information about the used versions of SQLite3 Multiple Ciphers and SQLite to the package description automatically
Verify in the test procedure that the corresponding versions were really used

Is there a way to add this version information to the SQLitePCLRaw packages, too? IMHO it would be useful for users of the packages to easily find out which versions are bundled with the NuGet packages.

I opened the package SQLitePCLRaw.bundle_e_sqlite3mc in the NuGet package explorer (see screenshot below) and there are 3 items flagged as missing. However, I don't know how important it is to fix these issue.

authors: bricelam ericsink utelle


text:
Use SQL as main database

SQL databases excel at handling such queries efficiently, while NoSQL databases like Firebase may require more workarounds or client-side processing to achieve the same results.

https://github.com/all-contributors please add @erikbohne  code, data, ideas, doc and research

@all-contributors please add @erikbohne code, data, ideas, doc and research

repo: erikbohne/bettingAI


text:
OCMock 3.1.3 can't install on projects deploying for less than iOS 8.2

Hi @erikdoe ,
The new podspec configuration: s.ios.deployment_target = '8.2'
Means min version of iOS 8.2. (http://guides.cocoapods.org/syntax/podspec.html#deployment_target)
It can not install for projects supporting iOS 8.0 or 8.1 either.
Is this on purpose?
Thank you,
Amir

Apologies. This was not the intention. There was an issue with publishing the pod (#224), and what you are seeing seems to be a side effect of the fix (#226). Looks like we have to solve it in a different way.
For the next few days I won't have access to a computer, but if anyone has an idea how to solve #224 in a better way please share it so that I can get a new release out quickly. Please DO NOT send a PR against master. That has moved on adding new features that shouldn't be in a small fix release.

I can give it a shot. What is the minimum versions you would like to support?

Okay. I've just pushed OCMock 3.1.4 to the spec repo. There was a bit of guesswork involved because the documentation for CocoaPods wasn't all too clear on how to support multiple platforms (https://guides.cocoapods.org/syntax/podspec.html#platform). It should work, though. Please re-open THIS issue if it doesn't.

So, looking at the published pod this didn't work either. I've now tried the original workaround with a different deployment target, and I've filed an issue with CocoaPods (CocoaPods/CocoaPods#4075).

Thanks. I think this should work(as far as I understood cocoa pods syntax).
I'll give it a try in a few days. I don't have access to my computer.

@erikdoe it works know. Thanx.

authors: ashavit erikdoe

repo: erikdoe/ocmock


text:
Async validation demo throws 'unhandled promise rejection'

Trying to implement async blur validation, but getting 'unhandled promise rejection' error when a validation error is detected.
Have been implementing according to the demo here http://redux-form.com/6.0.5/examples/asyncValidation/ - which in fact throws the same error.

Can you show some code, you might be missing something.
I added both validate, asyncValidate and then asyncBlurFields['myfieldName'] and then returned the promise the same way they do in the asyncValidate.js in the example.
It works after that, but it also prints the form error as an exception in the console.

yes, it works, but I get the error in the console as you describe - no code needed, just check the demo page

@dprentis @akhayoon
Guys, do you have any ideas how to avoid this console.log errors? Throwing such errors in production code is not something that I expect :(

I guess this was fixed in v6.1.0: #1843, #1297

authors: akhayoon allapologies dprentis gustavohenke

repo: erikras/redux-form


text:
Input Masking

Hi, I was just wondering if there would be any way to do input masking, like spacing numbers out etc?

This is called normalization -> http://erikras.github.io/redux-form/#/examples/normalizing?_k=3d2f7v

yes fair enough thank you, but then the data itself will contain spaces and such in the store? i need it to be purely visual, for example a number i need to be displayed as "000 000 0000" but in the store i need it to be "0000000000" as i need to send that data off. or am i really just mistaken at this point and it is really only visual?

The normalizing does change the data in the store, but if you really want to strip spaces or parse a currency or something, you can do that in your onSubmit function before actually sending the data to the server.

awesome thank you, was my reasoning as well just wanted to know if there was a better way. awesome project btw!

I think a better design would be to have the ability to provide a masking function on the input field directly that is for presentational purposes and doesn't change the data.

@msafi It would not be too difficult to make a function...
const {fields: {phone}} = this.props;
const normalizedPhone = normalize(phone, formatPhone, parsePhone);
return <input type="text" {...normalizedPhone}/>;

...that would take a formatter/parser pair and wrap the onChange, onBlur, and value props with that logic.

My normalize are declared via JSX and they are somewhat slow when typing, doing some date masking. Perhaps there is a better alternative to do so that is triggered in onBlur instead of onChange. Any help? Thanks!

@erikras Could you please elaborate on the normalize function example ? my scenario is to always show an input text containing a date formatted DD/MM/YYYY but store it in redux always as ISO valid date (YYYY-MM-DD). In this case I would like to avoid the onSubmit because I want this conversion done automatically for any Date field of my forms

@stilllife00 maybe something like this -
const normalize = (field, parseFn, formatFn) => ({
  ...field,
  value: formatFn(field.value),
  onChange: value => field.onChange(parseFn(value)),
  onBlur: () => field.onBlur(parseFn(field.value))
})

I recommend using moment.js to work with dates in javascript, it'll make writing parseFn and formatFn very simple -
const parseFn = value => moment(value, 'DD/MM/YYYY').format('YYYY-MM-DD') // store format

const formatFn = value => moment(value, 'YYYY-MM-DD').format('DD/MM/YYYY') // presentation format

The initial value of the date will also need to be valid.

Just for the record, if there's anyone out there wanting to create input masks using redux-form, I've made a library specifically to solve this problem.
Take a look at redux-form-input-masks (API documentation here).

@erikras @clindsey thank you for the example. There is still an issue when you go onBlur that the normalization is not applied. Could you guys elaborate on that event?

@nbkhope onBlur does the default onChange action by default. You will need to update it the same way you did with onChange:
  onBlur: value => field.onChange(parseFn(value))

authors: clindsey danielrob dawidvdh erikras ernani iNikNik msafi nbkhope renato-bohler stilllife00


text:
Problem with reading appsettings file using Host.CreateDefaultBuilder

Creating a default host builder via  this api
var builder = Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args)
it does not load appsettings.json settings.
This is due to CreateDefaultBuilder setting the content root to
builder.UseContentRoot(Directory.GetCurrentDirectory());
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-3.0
and at that time GetCurrentDirectory is c:\windows\system32

@valeriob According to Host ASP.NET Core in a Windows Service on Microsoft Docs, GetCurrentDirectory() always returns C:\Windows\system32 for Windows Services.
It does state, however, that loading the app's default settings files - appsettings.json and appsettings.{Environment}.json - are loaded from the app's content root by calling Host.CreateDefaultBuilder(args).
Does it make any difference if you call RunAsTopshelfService after CreateDefaultBuilder?

Hi, you can replace Directory.GetCurrentDirectory() by using the path of the proccess:
CreateHostBuilder(args)
  // set base path for application
  .UseContentRoot(Path.GetDirectoryName(Process
    .GetCurrentProcess()
    .MainModule.FileName))
  .RunAsTopshelfService();

Hi, you can replace Directory.GetCurrentDirectory() by using the path of the proccess:
CreateHostBuilder(args)
  // set base path for application
  .UseContentRoot(Path.GetDirectoryName(Process
    .GetCurrentProcess()
    .MainModule.FileName))
  .RunAsTopshelfService();

The only solution worked is the same as used in UseWindowsService() extension:
var rc = CreateHostBuilder(args)
  .UseContentRoot(AppContext.BaseDirectory)
  .RunAsTopshelfService();

The only solution worked is the same as used in UseWindowsService() extension:
var rc = CreateHostBuilder(args)
  .UseContentRoot(AppContext.BaseDirectory)
  .RunAsTopshelfService();

The only solution worked is the same as used in UseWindowsService() extension:
var rc = CreateHostBuilder(args)
  .UseContentRoot(AppContext.BaseDirectory)
  .RunAsTopshelfService();

Thank you soooooooooo much

authors: EsmailOuadghiri lekrus stevenvolckaert valeriob vunb

repo: erizet/TopshelfHosting


text:
Upgrade mongo driver

This is still a WIP

Note this is using my own fork of the mongo driver as I'm waiting for a PR to be merged upstream: comtihon/mongodb-erlang#172. @dergraf could you review my upstream PR and give your +1 if you think it's a resonable fix?

repo: erlio/vernemq


text:
Ensure time diff is always positive

Add some checks to ensure that computing time differences is always positive.
This fixes the following worker errors:
08:20:37.094 [error] <0.227.0> gen_fsm <0.227.0> in state connected terminated with reason: {value_out_of_range,-63} in mz_histogram:notify/2 line 73

Thank you, @MainRo! :)
@timofey-barmin: shouldn't MZBench do this by itself (ie. ensuring that mz_histogram:notify values are positive). Or rather: is there a specific reason for not doing it?

Hey @ioolkos,
As you can see mzbench throws {value_out_of_range,-63} in that case. I don't think we should always silently write 0 in histogram. mz_histogram is based on hdr_histogram hence only not negative values make sense (they are supposed to be latencies). If we get negative value we don't know what to do with it. In your case maybe it's ok to store 0 but in another case maybe you'll want to crash or increment some kind of "number of anomalies" counter for example. Only mzbench user knows how to handle it.
Does it make sense?

@timofey-barmin @MainRo
Yes, this makes perfect sense. Use cases are different & some "anomalies counter" might be useful for some.
I'll merge the Set to 0 solution for now, so that we can collect experience on this.
Thanks a lot, Timofey and Romain, for your time & effort :+1:

authors: MainRo ioolkos timofey-barmin


text:
🗣 征集一个GPT-4的key

不少人已经用上了gpt-4，也在本项目中发帖希望支持gpt-4，特征集一个gpt-4的key，用于开发测试，一旦用完，可即刻销毁该key。
如有愿意奉献的朋友，请在此帖下边留言。

我可以支援一个

我可以支援一个

感谢，请通过邮箱与我联系 eryajf@163.com

我可以支援一个

感谢，请通过邮箱与我联系 eryajf@163.com

实在是抱歉，我好像理解错了，我还没有通过waitlist，单纯的plus是没用的

我Plus订阅，官方网页可以GPT-4模型，也可以用accessToken实现gpt-4模型

这个accessToken与api_key应该还是两回事儿吧，咱们这个项目还不支持使用那种方式登陆的能力

GPT-4还没有开放API

GPT-4还没有开放API

好的，那就再等等，有的朋友在issue里直接问gpt-4咋不能用，我还以为可以用了呢

API可以使用GPT-4的，需要提交申请加入waitlist，最近已经陆陆续续有人通过了。

我Plus订阅，官方网页可以GPT-4模型，也可以用accessToken实现gpt-4模型

这个怎么实现的 指点一下 谢谢

repo: eryajf/chatgpt-dingtalk


text:
can i draw two or more types of chart in one container ?

just like this
http://www.humblesoftware.com/flotr2/#!color-gradients
i want to draw a linechart and a barchart in the same container.

No. We only support one type of chat in a container


text:
Make per-user global_configs use per-user home_dir

write /home/username/.composer.json as user instead of /usr/local/bin/composer.json

Re: https://github.com/escapestudios-cookbooks/composer/issues/47

Thanks for your contribution @john-coleman-w!
Kind regards,
David

@djoos the version needs to be bumped and this change published to the supermarket.  Please!

Sorry for that guys - I remember having issues getting it 'thor release'd and forgot about it afterwards once fixed...
I've just published 2.2.0 on the supermarket, thanks for the heads up!

authors: bluespurs-jenkins djoos john-coleman-w

repo: escapestudios-cookbooks/composer


text:
Note about your absence

Please add a note about your absence.
If you have no time to develop, please allow more maintainers or at least add a note. Just answering to one of the many issues would help too.
Since you seem to be pushing in other repositories it seems like you simply ignore this project which is very sad.
Yo spent a lot of time on esdoc and it would be nice to know what's going on or if anybody can be of any help.
Right now I'm not sure if it's safe to assume that this project is dead. If so please tell us so we can start looking for other options.
With the highest respect THANK YOU

This is why I created esdoc2 -> https://github.com/esdoc2/esdoc2 - because, if you see my post with the owner here: https://github.com/esdoc/esdoc/issues/480

He refuses to add contributors, and in my opinion, is breaking the TOS with Github, because he created an organization called "esdoc" but it is his "personal project" -

THIS PROJECT IS DEAD - until he decides to commit to it, which given his history I would be surprised

He doesn't speak english, which makes things very hard to communicate with him

ESDOC2 - USE THAT PLEASE!  ESDOC2 is the contributor version, and is looking for contributors.  I know you have an issue on there, but I can't maintain esdoc2 myself.  I need help, and so if people could send me their npm logins, I will add them as contributors so they can publish to npm as well.

Thanks!!

@MattMcFarland IMHO esdoc2 is not production ready. I opened several issues.
https://github.com/esdoc2/esdoc2-plugins/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc
I want to move away from esdoc ASAP but right now I don't see an option without doing a lot of adjustments in my project.

authors: MattMcFarland pixelass

repo: esdoc/esdoc


text:
Transparent colors aren't converted to hex properly (alpha is dropped)

The function concerned is colorToHex. Ignores the alpha field of the toRgb record and it probably shouldn't.
Here's a relevant caniuse.com chart.
The best solution is probably to generate a #rrggbb if alpha == 1 and #rrggbbaa otherwise?
This issue surfaced in https://github.com/terezka/line-charts/issues/40.

@Janiczek  could you please add a pull request for this, as I have no time to work on this at the moment.

authors: Janiczek eskimoblood

repo: eskimoblood/elm-color-extra


text:
brace-style & object-curly-newline: infinite loop on typescript interface

Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.

Describe the bug
ESlint version: 9.6.0 (with flat config format)
@stylistic/eslint-plugin version: 2.3.0
File extension: .ts
Code:
export interface SomeInterface {
    hasMethod(): boolean;
}

It gives that error on the curly brackets:

Unexpected line break after this opening brace.eslint@stylistic/object-curly-newline

If I format with ESLint, I get this format:
export interface UnreadMessagesPresenter { hasUnreadMessages(): boolean; }

It gives that error on the curly brackets:

Statement inside of curly braces should be on next line.eslint@stylistic/brace-style

If I format with ESLint, I go back to the first format 🔁
Config rules:

'@stylistic/object-curly-newline': ['error', { 'multiline': true }],
'@stylistic/brace-style': 'error',

Reproduction
?
Contributes

[ ] I am willing to submit a PR to fix this issue
[ ] I am willing to submit a PR with failing tests

I also didn't get why there are two rules doing the same thing 🤔

For this case, have a try with this config?
'@stylistic/object-curly-newline': ['error', { 'multiline': true }],
'@stylistic/brace-style': ['error', '1tbs', { 'allowSingleLine': true }],

authors: 9romise baphony seahindeniz

repo: eslint-stylistic/eslint-stylistic


text:
Fix Camelcase allow type

as described here
https://eslint.org/docs/latest/rules/camelcase#options
the type should be a list of string

Please check
https://github.com/eslint/eslint/blob/b91f9dc072f17f5ea79803deb86cf002d031b4cf/lib/rules/camelcase.js#L48-57
and if it is correctly
The rule types are generated from these schematas

oooh 🤔  maybe it's the translation that is wrong 🤔
bc
                            {
                                type: "string"
                            }
                        ]
                        ```
i guess it means an array of string?

but open upstream https://github.com/bcherny/json-schema-to-typescript/issues/584

repo: eslint-types/eslint-define-config


text:
Basic Support for ESP32S3

Get to the point that at least "hello_world" can be flashed and runs. Ideally also the other examples besides "blinky" (since GPIO will be a bigger task)

Closed by #14

authors: bjoernQ jessebraham

repo: esp-rs/esp-hal


text:
streamer mode fix

Toggle the streamer mode in the add-on config to protect your secrets:

Resolves one part of https://github.com/esphome/issues/issues/4709

repo: esphome/dashboard


text:
Redundant ljspeech vits models

Hi all, I noticed that these two model tags link to the same download. Is there a pre-trained ljspeech vits model with space/pauses?
kan-bayashi/ljspeech_tts_train_vits_raw_phn_tacotron_g2p_en_no_space_train.total_count.ave
kan-bayashi/ljspeech_vits

Thanks for the report.
@kan-bayashi, can you check them?

This is intended, kind of symlink.

You can use this one:
https://github.com/espnet/espnet/tree/master/egs2/ljspeech/tts1#ljspeech_tts_train_vits_raw_phn_tacotron_espeak_ng_english_us_vits_traintotal_countave

authors: kan-bayashi kelseyjd sw005320


text:
Ethernet + SPI (W5500) commands

Answers checklist.

[X] I have read the documentation ESP-AT Programming Guide and the issue is not addressed there.
[X] I have used the latest released firmware or have updated my ESP-AT branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
Hey,
I have a problem. The AT firmware can't store cmd commands with SPI defined to use Ethernet.
I have implemented the example and I get these logs:
I (2908) eth_example: Ethernet Started
I (2913) eth_example: SPI Driver installed correctly
E (2918) esp_eth: esp_eth_driver_install(189): can't set eth->mac or eth->phy to null
regist ethernet cmd fail
I (2930) main_task: Returned from app_main()
D (4913) w5500.mac: working in 100Mbps
D (4914) w5500.mac: working in full duplex
D (4914) w5500.mac: link is up
D (4914) event: running post ETH_EVENT:2 with handler 0x400dc820 and context 0x3ffb8288 on loop 0x3ffbc400
D (4924) event: running post ETH_EVENT:2 with handler 0x4013e168 and context 0x3ffb965c on loop 0x3ffbc400
D (4933) esp_eth.netif.netif_glue: eth_action_connected: 0x3ffb95c8, 0x3f4110a4, 2, 0x3ffb9830, 0x3ffb9550
D (4943) esp_netif_handlers: esp_netif action connected with netif0x3ffb82a8 from event_id=2
D (4951) esp_netif_lwip: check: remote, if=0x3ffb82a8 fn=0x40124a94

D (4958) esp_netif_lwip: esp_netif_up_api esp_netif:0x3ffb82a8
D (4963) esp_netif_lwip: check: local, if=0x3ffb82a8 fn=0x4012568c

D (4970) esp_netif_lwip: esp_netif_update_default_netif_lwip 0x3ffb82a8
D (4976) esp_netif_lwip: call api in lwip: ret=0x0, give sem
D (4982) esp_netif_lwip: check: remote, if=0x3ffb82a8 fn=0x401242c0

D (4989) esp_netif_lwip: esp_netif_dhcpc_start_api esp_netif:0x3ffb82a8
D (4995) esp_netif_lwip: esp_netif_start_ip_lost_timer esp_netif:0x3ffb82a8
D (5002) esp_netif_lwip: if0x3ffb82a8 start ip lost tmr: no need start because netif=0x3ffb832c interval=120 ip=0
D (5012) esp_netif_lwip: starting dhcp client
D (5019) esp_netif_lwip: call api in lwip: ret=0x0, give sem
D (5023) event: running post ETH_EVENT:2 with handler 0x400ecdbc and context 0x3ffb96e0 on loop 0x3ffbc400
I (5032) eth_example: Ethernet Link Up
I (5037) eth_example: Ethernet HW Addr 02:00:00:12:34:56
D (5052) w5500.mac: receive len=60
D (5146) w5500.mac: receive len=60
D (7092) w5500.mac: receive len=365
D (7212) w5500.mac: receive len=365
D (8021) esp_netif_lwip: esp_netif_internal_dhcpc_cb lwip-netif:0x3ffb832c
D (8022) esp_netif_lwip: if0x3ffb82a8 ip changed=1
D (8023) event: running post IP_EVENT:4 with handler 0x400dc820 and context 0x3ffb8254 on loop 0x3ffbc400
D (8033) event: running post IP_EVENT:4 with handler 0x4013e0f0 and context 0x3ffb96ac on loop 0x3ffbc400
D (8042) esp_eth.netif.netif_glue: eth_action_got_ip: 0x3ffb95c8, 0x3f40c9cc, 4, 0x3ffb9894, 0x3ffb82a8
D (8051) esp_netif_handlers: esp_netif action got_ip with netif0x3ffb82a8 from event_id=4
I (8059) esp_netif_handlers: eth0 ip: 192.168.1.157, mask: 255.255.255.0, gw: 192.168.1.1
D (8068) event: running post IP_EVENT:4 with handler 0x400ecd14 and context 0x3ffb9700 on loop 0x3ffbc400
I (8078) eth_example: Ethernet Got IP Address
I (8083) eth_example: ~~~~~~~~~~~
I (8086) eth_example: ETHIP:192.168.1.157
I (8091) eth_example: ETHMASK:255.255.255.0
I (8096) eth_example: ETHGW:192.168.1.1
I (8100) eth_example: ~~~~~~~~~~~

The driver install is working at components/at/src/at_eth_init.c but I think this function esp_at_eth_cmd_regist try to do something similar, but it is using the old physical layers models instead the SPI configured.
I tried already with some releases (3.2, 3.4 and 4.0) and master. In any of them works.
Can you give me some help?

I added this custom commands while the issue is not fixed.
uint8_t get_mac_spi_eth() {
  uint8_t mac_addr[6] = {0};
  esp_netif_t *eth_netif = get_spi_eth_netif(0);
  ESP_ERROR_CHECK(esp_netif_get_mac(eth_netif, mac_addr));
  char text[64] = {0};
  snprintf(text, sizeof(text), "+MAC:%02X:%02X:%02X:%02X:%02X:%02X\r\n",
           mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4],
           mac_addr[5]);
  esp_at_port_write_data((uint8_t *)text, sizeof(text));
  return ESP_AT_RESULT_CODE_OK;
}

uint8_t set_mac_spi_eth(const uint8_t *mac) {
  ESP_LOGI(TAG, "Setting SPI MAC %s", mac);
  uint8_t res = ESP_AT_RESULT_CODE_OK;
  uint8_t mac_bytes[6] = {0, 0, 0, 0, 0, 0};

  int success_parsed_vbles =
      sscanf((const char *)mac, "%02X:%02X:%02X:%02X:%02X:%02X", &mac_bytes[0],
             &mac_bytes[1], &mac_bytes[2], &mac_bytes[3], &mac_bytes[4],
             &mac_bytes[5]);
  ESP_LOGI(TAG, "Parsed %d variables: %02X:%02X:%02X:%02X:%02X:%02X",
           success_parsed_vbles, mac_bytes[0], mac_bytes[1], mac_bytes[2],
           mac_bytes[3], mac_bytes[4], mac_bytes[5]);

  if (success_parsed_vbles != 6) {
    ESP_LOGE(TAG, "Error scanning MAC");
    res = ESP_AT_RESULT_CODE_FAIL;
    return res;
  }

  esp_netif_t *eth_netif = get_spi_eth_netif(0);
  ESP_ERROR_CHECK(esp_netif_set_mac(eth_netif, mac_bytes));

  return ESP_AT_RESULT_CODE_OK;
}

uint8_t get_ip_spi_eth() {
  uint8_t ip_addr[4] = {0};
  esp_netif_ip_info_t ip_info;
  esp_netif_t *eth_netif = get_spi_eth_netif(0);

  ESP_ERROR_CHECK(esp_netif_get_ip_info(eth_netif, &ip_info));

  char *ip = ip4addr_ntoa(&ip_info.ip);
  ESP_LOGI(TAG, "IP: %s", ip);
  char text[64] = {0};
  snprintf(text, sizeof(text), "+IP:%s\r\n", ip);
  esp_at_port_write_data((uint8_t *)text, sizeof(text));

  return ESP_AT_RESULT_CODE_OK;
}

uint8_t set_ip_spi_eth(const uint8_t *ip) {
  uint8_t res = ESP_AT_RESULT_CODE_OK;

  uint8_t ip_bytes[4] = {0, 0, 0, 0};
  ip4_addr_t toCheck;

  int success_parsed_vbles =
      sscanf((const char *)ip, "%u.%u.%u.%u", &ip_bytes[0], &ip_bytes[1],
             &ip_bytes[2], &ip_bytes[3]);
  ESP_LOGI(TAG, "Parsed %d variables: %u.%u.%u.%u", success_parsed_vbles,
           ip_bytes[0], ip_bytes[1], ip_bytes[2], ip_bytes[3]);
  if (success_parsed_vbles != 4) {
    ESP_LOGE(TAG, "Error scanning IP");
    res = ESP_AT_RESULT_CODE_FAIL;
    return res;
  }

  esp_netif_t *eth_netif = get_spi_eth_netif(0);
  esp_netif_ip_info_t ip_info;
  ESP_ERROR_CHECK(esp_netif_dhcpc_stop(eth_netif)); // Stop DHCP client

  // Set static IP
  IP4_ADDR(&ip_info.ip, ip_bytes[0], ip_bytes[1], ip_bytes[2], ip_bytes[3]);
  IP4_ADDR(&ip_info.gw, ip_bytes[0], ip_bytes[1], ip_bytes[2], 1);
  IP4_ADDR(&ip_info.netmask, 255, 255, 255, 0);

  ESP_ERROR_CHECK(esp_netif_set_ip_info(eth_netif, &ip_info));

  return ESP_AT_RESULT_CODE_OK;
}

repo: espressif/esp-at


text:
Secure Download Mode - Failed to enter Flash download mode 01060000 (IDFGH-9611)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
The Security Features are set as the following:

Disable download stub is also selected.
The eFuse is burnt to Secure Download mode.
I am able to flash the app partitions, bootloader and so on. Also via esptool.py.
However, I am not able to flash generic .bins that contain data on e.g. data-nvs partitions.
Is this an intended behavior?

@mahavirj  Thanks for the reply, sorry missed that. Here are some logs:
Full flashing via IDE:
Executing action: flash
Running ninja in directory c:\users\USER\documents\esp\ksc-2n\build
Executing "ninja flash"...
[1/5] cmd.exe /C "cd /D C:\Users\USER\Documents\esp\ksc-2n\build\esp-idf\esptool_py && python C:/Espressif/frameworks/esp-idf-v5.0/components/partition_table/check_sizes.py --offset 0xc000 partition --type app C:/Users/USER/Documents/esp/ksc-2n/build/partition_table/partition-table.bin C:/Users/USER/Documents/esp/ksc-2n/build/Appl.bin"
Appl.bin binary size 0x1e1000 bytes. Smallest app partition is 0x280000 bytes. 0x9f000 bytes (25%) free.
[2/5] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\Users\USER\Documents\esp\ksc-2n\build\bootloader\esp-idf\esptool_py && python C:/Espressif/frameworks/esp-idf-v5.0/components/partition_table/check_sizes.py --offset 0xc000 bootloader 0x0 C:/Users/USER/Documents/esp/ksc-2n/build/bootloader/bootloader.bin"
Bootloader binary size 0xa000 bytes. 0x2000 bytes (17%) free.
[2/3] cmd.exe /C "cd /D C:\Espressif\frameworks\esp-idf-v5.0\components\esptool_py && C:\Espressif\tools\cmake\3.24.0\bin\cmake.exe -D IDF_PATH=C:/Espressif/frameworks/esp-idf-v5.0 -D SERIAL_TOOL=python;;C:/Espressif/frameworks/esp-idf-v5.0/components/esptool_py/esptool/esptool.py;--chip;esp32s3 -D SERIAL_TOOL_ARGS=--before=default_reset;--after=no_reset;--no-stub;write_flash;@flash_args -D WORKING_DIRECTORY=C:/Users/USER/Documents/esp/xxx/build -P C:/Espressif/frameworks/esp-idf-v5.0/components/esptool_py/run_serial_tool.cmake"
esptool esp32s3 -p COM4 -b 1500000 --before=default_reset --after=no_reset --no-stub write_flash --flash_mode dio --flash_freq 80m --flash_size keep 0x10000 Appl.bin 0xc000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin

esptool.py v4.5.1
Serial port COM4
Connecting....
Chip is ESP32-S3 in Secure Download Mode
Changing baud rate to 1500000
Changed.
Enabling default SPI flash mode...
Configuring flash size...
Flash will be erased from 0x00010000 to 0x001f0fff...
Flash will be erased from 0x0000c000 to 0x0000cfff...
Flash will be erased from 0x0000d000 to 0x0000efff...
Erasing flash...
Took 1.08s to erase flash block
Writing at 0x00010000... (0 %)
Writing at 0x00010400... (0 %)
Writing at 0x00010800... (0 %)
-> works

Generic .bin flashing:
esptool.py -p COM4 write_flash 0x613000 .\generic_data\nvs.bin
esptool.py v4.5.1
Serial port COM4
Connecting....
Detecting chip type... ESP32-S3
Chip is ESP32-S3 in Secure Download Mode
WARNING: Stub loader is not supported in Secure Download Mode, setting --no-stub
Enabling default SPI flash mode...
Configuring flash size...
Flash will be erased from 0x00613000 to 0x0061bfff...
Erasing flash...

A fatal error occurred: Failed to enter Flash download mode (result was 01060000: Operation or feature not supported)

Writing built partition table:
esptool.py -p COM4 write_flash 0xc000 .\build\partition_table\partition-table.bin
esptool.py v4.5.1
Serial port COM4
Connecting....
Detecting chip type... ESP32-S3
Chip is ESP32-S3 in Secure Download Mode
WARNING: Stub loader is not supported in Secure Download Mode, setting --no-stub
Enabling default SPI flash mode...
Configuring flash size...
Flash will be erased from 0x0000c000 to 0x0000cfff...
Erasing flash...
Took 0.06s to erase flash block
Wrote 3072 bytes at 0x0000c000 in 0.4 seconds (69.8 kbit/s)...

Leaving...
Hard resetting via RTS pin...

Erasing flash:
esptool.py -p COM4 erase_flash
esptool.py v4.5.1
Serial port COM4
Connecting....
Detecting chip type... ESP32-S3
Chip is ESP32-S3 in Secure Download Mode
WARNING: Stub loader is not supported in Secure Download Mode, setting --no-stub
Enabling default SPI flash mode...
Erasing flash (this may take a while)...

A fatal error occurred: ESP32-S3 ROM does not support function erase_flash.

Could it be that I have to somehow sign manually created binaries?

@ddomnik Please check the start address + length and flash chip size. (0x00613000 + 0x0061cfff > flash chip size?)

@gm-jiang thanks for the reply, but the size and offset should be fine. (And it also worked at that region before enabling secure download mode)
Chip has 16MB flash.
Reading info does not work either now anymore ...
esptool.py -p COM4 chip_id
esptool.py v4.5.1
Serial port COM4
Connecting....
Detecting chip type... ESP32-S3
Chip is ESP32-S3 in Secure Download Mode
WARNING: Stub loader is not supported in Secure Download Mode, setting --no-stub
Enabling default SPI flash mode...
Warning: ESP32-S3 has no Chip ID. Reading MAC instead.
Traceback (most recent call last):
  File "C:\Espressif\python_env\idf5.0_py3.8_env\lib\site-packages\esptool\cmds.py", line 999, in chip_id
    chipid = esp.chip_id()
  File "C:\Espressif\python_env\idf5.0_py3.8_env\lib\site-packages\esptool\targets\esp32.py", line 284, in chip_id
    raise NotSupportedError(self, "chip_id")
esptool.util.NotSupportedError: Function chip_id is not supported for ESP32-S3.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "runpy.py", line 194, in _run_module_as_main
  File "runpy.py", line 87, in _run_code
  File "C:\Espressif\python_env\idf5.0_py3.8_env\lib\site-packages\esptool\__main__.py", line 9, in <module>
    esptool._main()
  File "C:\Espressif\python_env\idf5.0_py3.8_env\lib\site-packages\esptool\__init__.py", line 1032, in _main
    main()
  File "C:\Espressif\python_env\idf5.0_py3.8_env\lib\site-packages\esptool\__init__.py", line 832, in main
    operation_func(esp, args)
  File "C:\Espressif\python_env\idf5.0_py3.8_env\lib\site-packages\esptool\cmds.py", line 1003, in chip_id
    read_mac(esp, args)
  File "C:\Espressif\python_env\idf5.0_py3.8_env\lib\site-packages\esptool\cmds.py", line 989, in read_mac
    mac = esp.read_mac()
  File "C:\Espressif\python_env\idf5.0_py3.8_env\lib\site-packages\esptool\targets\esp32s3.py", line 212, in read_mac
    mac0 = self.read_reg(self.MAC_EFUSE_REG)
  File "C:\Espressif\python_env\idf5.0_py3.8_env\lib\site-packages\esptool\loader.py", line 705, in read_reg
    val, data = self.command(
  File "C:\Espressif\python_env\idf5.0_py3.8_env\lib\site-packages\esptool\loader.py", line 418, in command
    raise UnsupportedCommandError(self, op)
esptool.util.UnsupportedCommandError: This command (0xa) is not supported in Secure Download Mode

@ddomnik Could you please add option --trace for esptool.py, it will show more detailed logs to help debugging.

@ddomnik
Please note that once secure DL mode is enabled, esptool can only support limited commands. Please refer to this section. You may get basic efuse summary using esptool.py get_security_info command.
As I see it from the logs you shared:
esptool esp32s3 -p COM4 -b 1500000 --before=default_reset --after=no_reset --no-stub write_flash --flash_mode dio --flash_freq 80m --flash_size keep 0x10000 Appl.bin 0xc000 partition_table/partition-table.bin 0xd000 ota_data_initial.bin

This command works fine.
esptool.py -p COM4 write_flash 0x613000 .\generic_data\nvs.bin

This one fails. Is it possible for you to try this command with similar arguments (flash configuration, baud etc.) as the 1st one and see the result? Also does NVS offset makes any difference here, maybe keep it just after partition table?
Note: Secure signing does not apply to NVS partition. This problem is more of flash programming failure. And it would help if you try these experiments with --trace option to esptool.py.

@mahavirj  @gm-jiang
Thanks, I am aware that secure download mode limits some functions, although the doc is not very precise here.
esptool.py --trace --chip esp32s3 -p COM4 -b 1500000 --before=default_reset --after=no_reset --no-stub write_flash --flash_mode dio --flash_freq 80m --flash_size keep 0x613000 .\generic_data\nvs.bin
esptool.py v4.5.1
Serial port COM4
Connecting...TRACE +0.000 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
    0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    55555555                          | UUUU
TRACE +0.003 Write 46 bytes:
    c000082400000000 0007071220555555 | ...$........ UUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    5555555555555555 5555555555c0     | UUUUUUUUUUUUU.
TRACE +0.101 No serial data received.
.TRACE +0.056 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
    0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    55555555                          | UUUU
TRACE +0.005 Write 46 bytes:
    c000082400000000 0007071220555555 | ...$........ UUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    5555555555555555 5555555555c0     | UUUUUUUUUUUUU.
TRACE +0.010 Read 1 bytes: c0
TRACE +0.003 Read 58 bytes:
    0108040007071220 00000000c0c00108 | ....... ........
    0400070712200000 0000c0c001080400 | ..... ..........
    0707122000000000 c0c0010804000707 | ... ............
    122000000000c0c0 0108             | . ........
TRACE +0.001 Received full packet: 010804000707122000000000
TRACE +0.003 Received full packet: 010804000707122000000000
TRACE +0.003 Received full packet: 010804000707122000000000
TRACE +0.003 Received full packet: 010804000707122000000000
TRACE +0.006 Read 53 bytes:
    0400070712200000 0000c0c001080400 | ..... ..........
    0707122000000000 c0c0010804000707 | ... ............
    122000000000c0c0 0108040007071220 | . .............
    00000000c0                        | .....
TRACE +0.001 Received full packet: 010804000707122000000000
TRACE +0.001 Received full packet: 010804000707122000000000
TRACE +0.002 Received full packet: 010804000707122000000000
TRACE +0.002 Received full packet: 010804000707122000000000

TRACE +0.005 command op=0x0a data len=4 wait_response=1 timeout=3.000 data=00100040
TRACE +0.000 Write 14 bytes: c0000a04000000000000100040c0
TRACE +0.002 Read 1 bytes: c0
TRACE +0.000 Read 1 bytes: 01
TRACE +0.016 Read 1 bytes: 08
TRACE +0.001 Read 109 bytes:
    0400070712200105 0000c0c001080400 | ..... ..........
    0707122001050000 c0c0010804000707 | ... ............
    122001050000c0c0 0108040007071220 | . .............
    01050000c0c00108 0400070712200105 | ............. ..
    0000c0c001080400 0707122001050000 | ........... ....
    c0c0010804000707 122001050000c0c0 | ......... ......
    0108040007071220 01050000c0       | ....... .....
TRACE +0.002 Received full packet: 010804000707122001050000
TRACE +0.003 command op=0x14 data len=0 wait_response=1 timeout=3.000 data=
TRACE +0.001 Write 10 bytes: c00014000000000000c0
TRACE +0.009 Read 1 bytes: c0
TRACE +0.000 Read 33 bytes:
    0114180007071220 0400000000000000 | ....... ........
    0000000c09000000 0000000000050000 | ................
    c0                                | .
TRACE +0.001 Received full packet:
    0114180007071220 0400000000000000 | ....... ........
    0000000c09000000 0000000000050000 | ................
Chip is ESP32-S3 in Secure Download Mode
Changing baud rate to 1500000
TRACE +0.002 command op=0x0f data len=8 wait_response=1 timeout=3.000 data=60e3160000000000
TRACE +0.000 Write 18 bytes:
    c0000f0800000000 0060e31600000000 | .........`......
    00c0                              | ..
TRACE +0.013 Read 1 bytes: c0
TRACE +0.000 Read 15 bytes: 010f04000707122000000000c0c0c0
TRACE +0.001 Received full packet: 010f04000707122000000000
Changed.
Enabling default SPI flash mode...
TRACE +0.054 command op=0x0d data len=8 wait_response=1 timeout=3.000 data=0000000000000000
TRACE +0.001 Write 18 bytes:
    c0000d0800000000 0000000000000000 | ................
    00c0                              | ..
TRACE +0.008 Read 1 bytes: c0
TRACE +0.002 Read 13 bytes: 010d04000707122000000000c0
TRACE +0.000 Received full packet: 010d04000707122000000000
Configuring flash size...
TRACE +0.002 command op=0x14 data len=0 wait_response=1 timeout=3.000 data=
TRACE +0.001 Write 10 bytes: c00014000000000000c0
TRACE +0.011 Read 1 bytes: c0
TRACE +0.000 Read 33 bytes:
    0114180007071220 0400000000000000 | ....... ........
    0000000c09000000 0000000000000000 | ................
    c0                                | .
TRACE +0.001 Received full packet:
    0114180007071220 0400000000000000 | ....... ........
    0000000c09000000 0000000000000000 | ................
Flash will be erased from 0x00613000 to 0x0061bfff...
Erasing flash...
TRACE +0.003 command op=0x02 data len=20 wait_response=1 timeout=3.000 data=
    0090000024000000 0004000000306100 | ....$........0a.
    00000000                          | ....
TRACE +0.000 Write 30 bytes:
    c000021400000000 0000900000240000 | .............$..
    0000040000003061 0000000000c0     | ......0a......
TRACE +0.012 Read 1 bytes: c0
TRACE +0.000 Read 13 bytes: 010204000707122001060000c0
TRACE +0.001 Received full packet: 010204000707122001060000

A fatal error occurred: Failed to enter Flash download mode (result was 01060000: Operation or feature not supported)

esptool.py --trace --chip esp32s3 -p COM4 write_flash --flash_size keep 0x613000 .\generic_data\nvs.bin
esptool.py v4.5.1
Serial port COM4
Connecting...TRACE +0.000 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
    0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    55555555                          | UUUU
TRACE +0.004 Write 46 bytes:
    c000082400000000 0007071220555555 | ...$........ UUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    5555555555555555 5555555555c0     | UUUUUUUUUUUUU.
TRACE +0.101 No serial data received.
.TRACE +0.056 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
    0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    55555555                          | UUUU
TRACE +0.005 Write 46 bytes:
    c000082400000000 0007071220555555 | ...$........ UUU
    5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
    5555555555555555 5555555555c0     | UUUUUUUUUUUUU.
TRACE +0.010 Read 1 bytes: c0
TRACE +0.003 Read 60 bytes:
    0108040007071220 00000000c0c00108 | ....... ........
    0400070712200000 0000c0c001080400 | ..... ..........
    0707122000000000 c0c0010804000707 | ... ............
    122000000000c0c0 01080400         | . ..........
TRACE +0.001 Received full packet: 010804000707122000000000
TRACE +0.003 Received full packet: 010804000707122000000000
TRACE +0.003 Received full packet: 010804000707122000000000
TRACE +0.001 Received full packet: 010804000707122000000000
TRACE +0.005 Read 1 bytes: 07
TRACE +0.001 Read 50 bytes:
    07122000000000c0 c001080400070712 | .. .............
    2000000000c0c001 0804000707122000 |  ............. .
    000000c0c0010804 0007071220000000 | ............ ...
    00c0                              | ..
TRACE +0.000 Received full packet: 010804000707122000000000
TRACE +0.002 Received full packet: 010804000707122000000000
TRACE +0.002 Received full packet: 010804000707122000000000
TRACE +0.002 Received full packet: 010804000707122000000000

TRACE +0.007 command op=0x0a data len=4 wait_response=1 timeout=3.000 data=00100040
TRACE +0.000 Write 14 bytes: c0000a04000000000000100040c0
TRACE +0.002 Read 1 bytes: c0
TRACE +0.016 Read 1 bytes: 01
TRACE +0.001 Read 110 bytes:
    0804000707122001 050000c0c0010804 | ...... .........
    0007071220010500 00c0c00108040007 | .... ...........
    07122001050000c0 c001080400070712 | .. .............
    2001050000c0c001 0804000707122001 |  ............. .
    050000c0c0010804 0007071220010500 | ............ ...
    00c0c00108040007 07122001050000c0 | .......... .....
    c001080400070712 2001050000c0     | ........ .....
TRACE +0.012 Received full packet: 010804000707122001050000
TRACE +0.002 command op=0x14 data len=0 wait_response=1 timeout=3.000 data=
TRACE +0.001 Write 10 bytes: c00014000000000000c0
TRACE +0.016 Read 1 bytes: c0
TRACE +0.001 Read 33 bytes:
    0114180007071220 0400000000000000 | ....... ........
    0000000c09000000 0000000000050000 | ................
    c0                                | .
TRACE +0.001 Received full packet:
    0114180007071220 0400000000000000 | ....... ........
    0000000c09000000 0000000000050000 | ................
Chip is ESP32-S3 in Secure Download Mode
WARNING: Stub loader is not supported in Secure Download Mode, setting --no-stub
Enabling default SPI flash mode...
TRACE +0.002 command op=0x0d data len=8 wait_response=1 timeout=3.000 data=0000000000000000
TRACE +0.000 Write 18 bytes:
    c0000d0800000000 0000000000000000 | ................
    00c0                              | ..
TRACE +0.012 Read 1 bytes: c0
TRACE +0.001 Read 13 bytes: 010d04000707122000000000c0
TRACE +0.000 Received full packet: 010d04000707122000000000
Configuring flash size...
TRACE +0.004 command op=0x14 data len=0 wait_response=1 timeout=3.000 data=
TRACE +0.001 Write 10 bytes: c00014000000000000c0
TRACE +0.010 Read 1 bytes: c0
TRACE +0.001 Read 33 bytes:
    0114180007071220 0400000000000000 | ....... ........
    0000000c09000000 0000000000000000 | ................
    c0                                | .
TRACE +0.000 Received full packet:
    0114180007071220 0400000000000000 | ....... ........
    0000000c09000000 0000000000000000 | ................
Flash will be erased from 0x00613000 to 0x0061bfff...
Erasing flash...
TRACE +0.004 command op=0x02 data len=20 wait_response=1 timeout=3.000 data=
    0090000024000000 0004000000306100 | ....$........0a.
    00000000                          | ....
TRACE +0.000 Write 30 bytes:
    c000021400000000 0000900000240000 | .............$..
    0000040000003061 0000000000c0     | ......0a......
TRACE +0.011 Read 1 bytes: c0
TRACE +0.000 Read 13 bytes: 010204000707122001060000c0
TRACE +0.000 Received full packet: 010204000707122001060000

A fatal error occurred: Failed to enter Flash download mode (result was 01060000: Operation or feature not supported)

I tested both commands on a board that has secure download mode disabled as well.
The second one with less arguments worked, the one with more arguments failed there as well.

@mahavirj @ddomnik I think it is a esptool.py bugs, please see these logs

TRACE +0.003 command op=0x14 data len=0 wait_response=1 timeout=3.000 data=
TRACE +0.001 Write 10 bytes: c00014000000000000c0
TRACE +0.009 Read 1 bytes: c0
TRACE +0.000 Read 33 bytes:
0114180007071220 0400000000000000 | ....... ........
0000000c09000000 0000000000050000 | ................
c0                                | .
TRACE +0.001 Received full packet:
0114180007071220 0400000000000000 | ....... ........
0000000c09000000 0000000000050000 | ................
Chip is ESP32-S3 in Secure Download Mode

Configuring flash size...
TRACE +0.002 command op=0x14 data len=0 wait_response=1 timeout=3.000 data=
TRACE +0.001 Write 10 bytes: c00014000000000000c0
TRACE +0.011 Read 1 bytes: c0
TRACE +0.000 Read 33 bytes:
0114180007071220 0400000000000000 | ....... ........
0000000c09000000 0000000000000000 | ................
c0                                | .
TRACE +0.001 Received full packet:
0114180007071220 0400000000000000 | ....... ........
0000000c09000000 0000000000000000 | ................

In fact, op=0x14 is used for GetSecurityInfo, so the Configuring flash size did not succeed at all, so it will cause erase flash failed. (the default flash size is set to 2MB)

@ddomnik  can you have  a try esptool.py --trace --chip esp32s3 -p COM4 -b 1500000 --before=default_reset --after=no_reset --no-stub write_flash --flash_mode dio --flash_freq 80m --flash_size 0x1000000 0x613000 .\generic_data\nvs.bin

@gm-jiang Thanks! The --flash_size 16MB parameter does the trick! Ofc erase_flash is still not working, but I could flash an empty bin as a workaround for that.
If this ticket is not needed for internal bug tracking, feel free to close it.

@ddomnik We have added a fix in the esptool (https://github.com/espressif/esptool/commit/0e9c85ed2a5c80a51a550efea1b99156bbaacc63) to report an error in case flash size is not specified with --keep option for the secure ROM DL mode case. This should help to detect the scenario reported here. Closing the issue.

authors: ddomnik gm-jiang mahavirj

repo: espressif/esp-idf