Coder Social home page Coder Social logo

wcventure / period Goto Github PK

View Code? Open in Web Editor NEW
29.0 2.0 4.0 7.12 MB

[ICSE 2022] Controlled Concurrency Testing via Periodical Scheduling

Home Page: https://sites.google.com/view/period-cct/

License: MIT License

Dockerfile 0.03% C 39.66% Makefile 0.40% Shell 2.60% Roff 0.37% C++ 44.25% HTML 4.21% Perl 0.13% M4 0.06% Ruby 0.04% JavaScript 2.49% CSS 1.33% Assembly 0.09% Python 4.26% CMake 0.11%
concurrency-testing concurrency-control

period's Introduction

period's People

Contributors

wcventure avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

period's Issues

Static analysis error when handling FFmpeg

Hi, there.

Period is an inspiring work. Unfortunately, when we are running the experiment for FFmpeg, we find there is error in the static analysis framework.

To reproduce this error, run:

$ROOT_DIR/tool/staticAnalysis.sh ffmpeg

Here is the error message:

opt: prototype/PERIOD/clang+llvm/include/llvm/Support/Casting.h:105: static bool llvm::isa_impl_cl<llvm::Instruction, const llvm::Value *>::doit(const From *) [To = llvm::Instruction, From = const llvm::Value *]: Assertion `Val && "isa<> used on a null pointer"' failed.
Stack dump:
0.	Program arguments: opt -load prototype/PERIOD/tool/staticAnalysis/LLVM-PASS/SensitiveOperationsPass/libSensitiveOperationsPass.so -so ./ffmpeg.bc -o /dev/null 
1.	Running pass 'SensitiveOperations Instrumentation' on module './ffmpeg.bc'.
 #0 0x0000000001f11504 PrintStackTraceSignalHandler(void*) (prototype/PERIOD/clang+llvm/bin/opt+0x1f11504)
 #1 0x0000000001f0f2ee llvm::sys::RunSignalHandlers() (prototype/PERIOD/clang+llvm/bin/opt+0x1f0f2ee)
 #2 0x0000000001f118f5 SignalHandler(int) (prototype/PERIOD/clang+llvm/bin/opt+0x1f118f5)
 #3 0x00007f6df0cc1420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #4 0x00007f6df077200b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #5 0x00007f6df0751859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #6 0x00007f6df0751729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #7 0x00007f6df0762fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #8 0x00007f6df0722ee0 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.tcc:212:4
 #9 0x00007f6df0722ee0 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char const*>(char const*, char const*, std::__false_type) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:251:11
#10 0x00007f6df0722ee0 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:270:4
#11 0x00007f6df0722ee0 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:531:9
#12 0x00007f6df0722ee0 (anonymous namespace)::SensitiveOperations::runOnModule(llvm::Module&) prototype/PERIOD/tool/staticAnalysis/LLVM-PASS/SensitiveOperationsPass/SensitiveOperationsPass.cpp:580:52
#13 0x00000000019528f8 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/prototype/PERIOD/clang+llvm/bin/opt+0x19528f8)
#14 0x000000000074d9c8 main (/prototype/PERIOD/clang+llvm/bin/opt+0x74d9c8)
#15 0x00007f6df0753083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#16 0x000000000073a1da _start (prototype/PERIOD/clang+llvm/bin/opt+0x73a1da)
prototype/PERIOD/tool/staticAnalysis/staticAnalysis.sh: line 47: 823029 Aborted                 opt -load $ROOT_DIR/tool/staticAnalysis/LLVM-PASS/SensitiveOperationsPass/libSensitiveOperationsPass.so -so ./$NAME.bc -o /dev/null > so.$NAME

Here is the binary for analysis:

ffmpeg.zip

Segmentation fault during the instrumentation with 'Combine redundant instructions'

Hi, there.

There is a segmentation fault raised when instrumenting the result from SVF.

I notice that there is a modification in your code already tackling this issue. Is there any further modification for this problem?

//if (std::string("conn_sett") == std::string(function->getName())) // some function in tests cause Segmentation fault when running pass 'Combine redundant instructions'

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.