Comments (6)
Excerpt from current CI run https://github.com/capnm/godot4/actions/runs/6051776183/job/16426617328
WARNING: ThreadSanitizer: data race (pid=7060)
Read of size 8 at 0x7b1000013b88 by thread T2:
#0 std::vector<std::thread, std::allocator<std::thread> >::size() const /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/stl_vector.h:919:40 (godot.linuxbsd.editor.dev.x86_64.llvm.san+0x56b1969)
#1 tvg::TaskSchedulerImpl::run(unsigned int) /home/runner/work/godot4/godot4/thirdparty/thorvg/src/renderer/tvgTaskScheduler.cpp:134:46
https://github.com/thorvg/thorvg/blame/main/src/renderer/tvgTaskScheduler.cpp#L134
Previous write of size 8 at 0x7b1000013b88 by main thread:
#0 std::thread& std::vector<std::thread, std::allocator<std::thread> >::emplace_back<tvg::TaskSchedulerImpl::TaskSchedulerImpl(unsigned int)::'lambda'()>(tvg::TaskSchedulerImpl::TaskSchedulerImpl(unsigned int)::'lambda'()&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/vector.tcc:117:6 (godot.linuxbsd.editor.dev.x86_64.llvm.san+0x6f0b1d6)
#1 tvg::TaskSchedulerImpl::TaskSchedulerImpl(unsigned int) /home/runner/work/godot4/godot4/thirdparty/thorvg/src/renderer/tvgTaskScheduler.cpp:117:21
...
SUMMARY: ThreadSanitizer: data race lib/gcc/x86_64-linux-gnu/.../include/c++/10/bits/stl_vector.h:919:40
in std::vector<std::thread, std::allocator<std::thread> >::size() const
https://github.com/thorvg/thorvg/blob/main/src/renderer/tvgTaskScheduler.cpp#L117
from thorvg.
TODO:
-
since cd71c66 good – 8f9bdeb first bad
Godot stops rendering svg images:
ERROR: ImageLoaderSVG: Couldn't draw ThorVG pictures on canvas.
at: create_image_from_utf8_buffer (modules/svg/image_loader_svg.cpp:125) -
ThreadSanitizer data race in std::vector
77de620 ?
Maybe also related to changes in Godot 4.2,
see Multi-threaded Scene Processing in Godot 4.1+
- compare older releases
from thorvg.
Thanks for information.
I guess this patch could cause the problem.
77daecc764a0a8d59394fac7b3302b4ba53c80d4 (in v0.10.3)
renderer task-scheduler: ++thread safety
Currently, tasks are expected to be triggered from the main thread.
This ensures preventing the popping of a thread from a worker thread.
Previously, there was a potential deadlock problem...
Could you please revert only that patch?
from thorvg.
Could you please revert only that patch?
Branch with 77daecc was deleted?
from thorvg.
Oh ok. It is the same one I found with bisect as the first bad in main:
git revert 77de620
git revert 8f9bdeb
on curent ThorVG main b6e168b fixes the Error mentioned above and Godot renders all SVGs again :)
from thorvg.
77de620 obvisouly problem and i reverted. thanks!
from thorvg.
Related Issues (20)
- Adding a web build test CI HOT 2
- Lottie: Animation Segment(Marker) Support
- Lottie/slot: multiple properties in single slot not working
- broken lottie trimpath (individual)
- Feature Request: Clear canvas without deleting paints HOT 2
- Storing the address of local variable HOT 2
- CAPI: update colorspace interfaces
- Lottie: Support feasibility of accessing a specific Lottie node by identifier
- Lost compose effect when call canvas::draw second time
- lottie compatibility issue HOT 2
- Embedded compilers doesn't like `_A`, `_B`, and `_C` function names.
- ThorVG 0.13 Release HOT 1
- Memory leak lottie2gif fails to converte file
- Random crashes/leaks, when trying to convert invalid lottie files to gifs HOT 3
- feture request: generate documentation with meson
- Stack overflow and crash when using svg2png HOT 2
- thorvg msys2 package support HOT 6
- Crash when using a clippath with an empty path shape HOT 3
- Handling of very large size stroke-width HOT 4
- Thin rounded rectangle path stroke artifacts HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from thorvg.