Giter VIP home page Giter VIP logo

Comments (8)

Tradias avatar Tradias commented on June 8, 2024

You must either compile gRPC with TSAN enabled or set preprocessor variable GRPC_TSAN_SUPPRESSED. See also grpc/grpc#22325

from asio-grpc.

criatura2 avatar criatura2 commented on June 8, 2024

or set preprocessor variable GRPC_TSAN_SUPPRESSED

Where should I add this definition? I have added it to cmake preset but then I get

CMake Warning:
  Manually-specified variables were not used by the project:

    GRPC_TSAN_SUPPRESSED

Thanks.

from asio-grpc.

Tradias avatar Tradias commented on June 8, 2024

Preprocessor variable means to the compiler. E.g. gcc -DGRPC_TSAN_SUPPRESSED or in CMake

target_compile_definitions(your_app PUBLIC GRPC_TSAN_SUPPRESSED)

from asio-grpc.

criatura2 avatar criatura2 commented on June 8, 2024

I was expecting the to be able to put this only in our tsan preset not in cmake files for all presets.

from asio-grpc.

criatura2 avatar criatura2 commented on June 8, 2024

By the way, target_compile_definitions is not working. Do you think something like this will be needed?

from asio-grpc.

Tradias avatar Tradias commented on June 8, 2024

You are free to elevate the compile definition into a CMake variable. In my code I have this for example:

option(USE_SANITIZER "Compiles with sanitizer flags." off)

target_compile_definitions(grpc-objects PUBLIC "$<$<BOOL:${USE_SANITIZER}>:GRPC_TSAN_SUPPRESSED>"
                                               "$<$<BOOL:${USE_SANITIZER}>:GRPC_ASAN_SUPPRESSED>")

And then in CMakePresets.json:

    "configurePresets": [
        {
            "name": "local",
            "cacheVariables": {
                "USE_SANITIZER": true,

You must compile that all that includes gRPC files with those definitions, this includes the generated gRPC sources. I cannot try it myself at the moment, but doing it this way has always worked for me (haven't tested it with recent gRPC versions though). If you continue to see issues then you might need to create an issue at gRPC. Note that asio-grpc, has nothing to do with the data race, as you can see in the (abbreviated) logs:

SUMMARY: data race in grpc_event_engine::experimental::Epoll1Poller::DoEpollWait

from asio-grpc.

criatura2 avatar criatura2 commented on June 8, 2024

I have put it on my preset like this

"cacheVariables": {
                "CMAKE_CXX_FLAGS": "-fsanitize=thread -DGRPC_TSAN_SUPPRESSED"
            }

and can see it being passed to the compilation of all sources. But I still have the warnings.

But thanks you for your help.

from asio-grpc.

Tradias avatar Tradias commented on June 8, 2024

I cannot reproduce the issue even without setting GRPC_TSAN_SUPPRESSED using

  • gcc 13.1.1
  • gRPC 1.15.1 (compiled in RelWithDebInfo)
  • asio-grpc v2.6.0
  • streaming-server.cpp from the examples (compiled in Debug/Release with -g and -fsanitize=thread)

from asio-grpc.

Related Issues (20)

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.