lidavidm commented on a change in pull request #12609:
URL: https://github.com/apache/arrow/pull/12609#discussion_r826337991
##########
File path: cpp/build-support/lsan-suppressions.txt
##########
@@ -19,3 +19,10 @@
leak:*__new_exitfn*
# Leak at shutdown in OpenSSL
leak:CRYPTO_zalloc
+
+# OpenTelemetry. These seem like false positives and go away if the
+# CPU thread pool is manually shut down before exit.
+# Note that ASan has trouble backtracing these and may not be able to
+# without LSAN_OPTIONS=fast_unwind_on_malloc=0:malloc_context_size=100
+leak:opentelemetry::v1::context::ThreadLocalContextStorage::GetStack
+leak:opentelemetry::v1::context::ThreadLocalContextStorage::Stack::Resize
Review comment:
We should probably test and ensure we don't get issues anymore once the
new version of OTel comes out.
##########
File path: cpp/src/arrow/dataset/file_csv.cc
##########
@@ -190,11 +196,20 @@ static inline
Future<std::shared_ptr<csv::StreamingReader>> OpenReaderAsync(
}));
return reader_fut.Then(
// Adds the filename to the error
- [](const std::shared_ptr<csv::StreamingReader>& reader)
- -> Result<std::shared_ptr<csv::StreamingReader>> { return reader; },
- [source](const Status& err) ->
Result<std::shared_ptr<csv::StreamingReader>> {
- return err.WithMessage("Could not open CSV input source '",
source.path(),
- "': ", err);
+ [=](const std::shared_ptr<csv::StreamingReader>& reader)
+ -> Result<std::shared_ptr<csv::StreamingReader>> {
+#ifdef ARROW_WITH_OPENTELEMETRY
+ span->SetStatus(opentelemetry::trace::StatusCode::kOk);
+ span->End();
+#endif
Review comment:
similarly `MARK_SPAN(span, Status::OK())`?
##########
File path: cpp/src/arrow/dataset/file_csv.cc
##########
@@ -167,9 +168,14 @@ static inline Result<csv::ReadOptions> GetReadOptions(
static inline Future<std::shared_ptr<csv::StreamingReader>> OpenReaderAsync(
const FileSource& source, const CsvFileFormat& format,
const std::shared_ptr<ScanOptions>& scan_options, Executor* cpu_executor) {
+#ifdef ARROW_WITH_OPENTELEMETRY
+ auto tracer = arrow::internal::tracing::GetTracer();
+ auto span =
tracer->StartSpan("arrow::dataset::CsvFileFormat::OpenReaderAsync");
Review comment:
Maybe we can use the START_SPAN macro for this?
##########
File path: cpp/src/arrow/dataset/file_csv.cc
##########
@@ -190,11 +196,20 @@ static inline
Future<std::shared_ptr<csv::StreamingReader>> OpenReaderAsync(
}));
return reader_fut.Then(
// Adds the filename to the error
- [](const std::shared_ptr<csv::StreamingReader>& reader)
- -> Result<std::shared_ptr<csv::StreamingReader>> { return reader; },
- [source](const Status& err) ->
Result<std::shared_ptr<csv::StreamingReader>> {
- return err.WithMessage("Could not open CSV input source '",
source.path(),
- "': ", err);
+ [=](const std::shared_ptr<csv::StreamingReader>& reader)
+ -> Result<std::shared_ptr<csv::StreamingReader>> {
+#ifdef ARROW_WITH_OPENTELEMETRY
+ span->SetStatus(opentelemetry::trace::StatusCode::kOk);
+ span->End();
+#endif
+ return reader;
+ },
+ [=](const Status& err) -> Result<std::shared_ptr<csv::StreamingReader>> {
+#ifdef ARROW_WITH_OPENTELEMETRY
+ arrow::internal::tracing::MarkSpan(err, span.get());
+ span->End();
+#endif
Review comment:
`MARK_SPAN(span, err)`?
##########
File path: cpp/src/arrow/dataset/file_base.cc
##########
@@ -42,6 +42,7 @@
#include "arrow/util/map.h"
#include "arrow/util/string.h"
#include "arrow/util/task_group.h"
+#include "arrow/util/tracing_internal.h"
Review comment:
Is this used here?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]