Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Citrix_NS10 format: TSan error #1980

Closed
frank-dittrich opened this issue Jan 5, 2016 · 4 comments
Closed

Citrix_NS10 format: TSan error #1980

frank-dittrich opened this issue Jan 5, 2016 · 4 comments
Assignees
Labels
invalid Issue created in error, misunderstanding, etc.

Comments

@frank-dittrich
Copy link
Collaborator

(bleeding-jumbo)run $ ./john --test --format=Citrix_NS10
Will run 8 OpenMP threads
NOTE: This is a debug build, speed will be lower than normal
Benchmarking: Citrix_NS10, Netscaler 10 [SHA1 128/128 AVX 4x]... (8xOMP) Illegal instruction (core dumped)
(gdb) run --test --format=Citrix_NS10
Starting program: /home/fd/git/JtR/run/john --test --format=Citrix_NS10
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Will run 8 OpenMP threads
NOTE: This is a debug build, speed will be lower than normal
Benchmarking: Citrix_NS10, Netscaler 10 [SHA1 128/128 AVX 4x]... (8xOMP) 
Program received signal SIGILL, Illegal instruction.
0x000000000065670c in set_salt (salt=0x60200000e4d4) at citrix_ns_fmt_plug.c:276
276             saved_key[0][GETPOS(i, index)] =
Missing separate debuginfos, use: dnf debuginfo-install gmp-6.0.0-9.fc22.x86_64 keyutils-libs-1.5.9-4.fc22.x86_64 krb5-libs-1.13.2-10.fc22.x86_64 libasan-5.3.1-2.fc22.x86_64 libcom_err-1.42.12-4.fc22.x86_64 libgcc-5.3.1-2.fc22.x86_64 libgomp-5.3.1-2.fc22.x86_64 libselinux-2.3-10.fc22.x86_64 libstdc++-5.3.1-2.fc22.x86_64 openssl-libs-1.0.1k-13.fc22.x86_64 pcre-8.38-1.fc22.x86_64 zlib-1.2.8-7.fc22.x86_64
(gdb) bt
#0  0x000000000065670c in set_salt (salt=0x60200000e4d4) at citrix_ns_fmt_plug.c:276
#1  0x00000000007db4c0 in fmt_self_test_body (format=format@entry=0xde7f80 <fmt_ctrxns>, binary_copy=binary_copy@entry=0x60300000efe4, salt_copy=<optimized out>, 
    db=db@entry=0x60d00000cf70, full_lvl=<optimized out>) at formats.c:706
#2  0x00000000007dd09e in fmt_self_test (format=format@entry=0xde7f80 <fmt_ctrxns>, db=db@entry=0x60d00000cf70) at formats.c:1593
#3  0x00000000007bc043 in benchmark_format (format=format@entry=0xde7f80 <fmt_ctrxns>, salts=<optimized out>, results=results@entry=0x7fffffffdd10, test_db=test_db@entry=0x60d00000cf70)
    at bench.c:255
#4  0x00000000007bdda9 in benchmark_all () at bench.c:687
#5  0x00000000007ec013 in john_run () at john.c:1587
#6  0x00000000007ed89f in main (argc=3, argv=0x7fffffffe098) at john.c:1973
(bleeding-jumbo)run $ ./john --list=build-info 
Version: 1.8.0.6-jumbo-1-1819-gbcc9c47
Build: linux-gnu 64-bit AVX-ac OMP ASan UbSan
SIMD: AVX, interleaving: MD4:3 MD5:3 SHA1:1 SHA256:1 SHA512:1
$JOHN is ./
Format interface version: 13
Max. number of reported tunable costs: 3
Rec file version: REC4
Charset file version: CHR3
CHARSET_MIN: 1 (0x01)
CHARSET_MAX: 255 (0xff)
CHARSET_LENGTH: 24
SALT_HASH_SIZE: 1048576
Max. Markov mode level: 400
Max. Markov mode password length: 30
gcc version: 5.3.1
GNU libc version: 2.21 (loaded: 2.21)
Crypto library: OpenSSL
OpenSSL library version: 0100010bf
OpenSSL 1.0.1k-fips 8 Jan 2015
GMP library version: 6.0.0
Regex library version: 1.3  (loaded: 1.3.1)
File locking: fcntl()
fseek(): fseek
ftell(): ftell
fopen(): fopen
memmem(): System's
Built with these debugging options
    ASan (Address Sanitizer debugging)
    UbSan (Undefined Behavior Sanitizer debugging)
@frank-dittrich
Copy link
Collaborator Author

Might have been my fault, building with OpenMP and UbSan.
I think UbSan with OPenMP is buggy.

Without OpenMP the error disappears

@frank-dittrich frank-dittrich added the invalid Issue created in error, misunderstanding, etc. label Jan 5, 2016
@frank-dittrich frank-dittrich changed the title Citrix_NS10 format: Illegal instruction (core dumped) Citrix_NS10 format: TSan error Jan 5, 2016
@frank-dittrich frank-dittrich reopened this Jan 5, 2016
@frank-dittrich
Copy link
Collaborator Author

Turns out ThreadSanitizer found a data race in /home/fd/git/JtR/src/citrix_ns_fmt_plug.c:228 set_key.

May be we should add TSan support to autoconf.
For now I just replaced all occurrences of

-fsanitize=address -fno-sanitize=alignment -fsanitize-undefined-trap-on-error

with

-fsanitize=thread

and built with "UbSan" support.
I'll attach the stderr output of a

./john --test --format=citrix_ns10

citrix_ns10-tsan-errors.txt

Testing other formats as well will provide even more TSan errors. Test is still running. So far I got

$ grep "^SUMMARY" *tsan-error*|cut -d: -f 2- -s|LC_ALL=C sort|uniq -c
(bleeding-jumbo)run $ grep "^SUMMARY" *tsan-error*|cut -d: -f 2- -s|LC_ALL=C sort|uniq -c
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs.c:212 DES_bs_set_key
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs.c:221 DES_bs_set_key
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs.c:489 DES_bs_cmp_all
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs.c:490 DES_bs_cmp_all
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs.c:492 DES_bs_cmp_all
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs.c:493 DES_bs_cmp_all
     14 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs.c:498 DES_bs_cmp_all
     14 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs.c:501 DES_bs_cmp_all
     32 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs.c:550 DES_bs_cmp_one
     89 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1192 DES_bs_finalize_keys
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1193 DES_bs_finalize_keys
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1194 DES_bs_finalize_keys
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1195 DES_bs_finalize_keys
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1196 DES_bs_finalize_keys
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1197 DES_bs_finalize_keys
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1198 DES_bs_finalize_keys
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1199 DES_bs_finalize_keys
      2 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1229 DES_bs_set_salt_for_thread
      7 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1245 DES_bs_set_salt_for_thread
      7 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1246 DES_bs_set_salt_for_thread
      7 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1247 DES_bs_set_salt_for_thread
      7 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1248 DES_bs_set_salt_for_thread
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1336 DES_bs_crypt_25
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1349 DES_bs_crypt_25._omp_fn.0
      1 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1354 DES_bs_crypt_25._omp_fn.0
     15 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1372 DES_bs_crypt_25._omp_fn.0
     14 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1375 DES_bs_crypt_25._omp_fn.0
     12 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1378 DES_bs_crypt_25._omp_fn.0
     12 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1382 DES_bs_crypt_25._omp_fn.0
     15 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1386 DES_bs_crypt_25._omp_fn.0
     14 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1389 DES_bs_crypt_25._omp_fn.0
     12 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1392 DES_bs_crypt_25._omp_fn.0
     12 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1396 DES_bs_crypt_25._omp_fn.0
     15 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1404 DES_bs_crypt_25._omp_fn.0
     14 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1407 DES_bs_crypt_25._omp_fn.0
     12 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1410 DES_bs_crypt_25._omp_fn.0
     12 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1414 DES_bs_crypt_25._omp_fn.0
     15 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1418 DES_bs_crypt_25._omp_fn.0
     14 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1421 DES_bs_crypt_25._omp_fn.0
     12 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1424 DES_bs_crypt_25._omp_fn.0
     12 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/DES_bs_b.c:1428 DES_bs_crypt_25._omp_fn.0
      4 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/citrix_ns_fmt_plug.c:203 set_key
     28 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/citrix_ns_fmt_plug.c:228 set_key
      4 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/citrix_ns_fmt_plug.c:292 cmp_all
      2 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/citrix_ns_fmt_plug.c:315 cmp_one
      6 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/citrix_ns_fmt_plug.c:317 cmp_one
      6 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/citrix_ns_fmt_plug.c:319 cmp_one
      6 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/citrix_ns_fmt_plug.c:321 cmp_one
      6 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/citrix_ns_fmt_plug.c:323 cmp_one
      2 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/citrix_ns_fmt_plug.c:344 crypt_all
     40 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/simd-intrinsics.c:1346 SIMDSHA1body
     30 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/simd-intrinsics.c:1347 SIMDSHA1body
     26 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/simd-intrinsics.c:1348 SIMDSHA1body
     15 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/simd-intrinsics.c:1349 SIMDSHA1body
     14 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/simd-intrinsics.c:1350 SIMDSHA1body
      7 SUMMARY: ThreadSanitizer: data race /home/fd/git/JtR/src/simd-intrinsics.c:1351 SIMDSHA1body
    109 SUMMARY: ThreadSanitizer: data race /usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/emmintrin.h:710 _mm_store_si128

@jfoug
Copy link
Collaborator

jfoug commented Jan 6, 2016

These 'might' be false alarms. There are no threads (well 1 thread) for many of these functions (the setkey() cmp*() for sure)

@kholia
Copy link
Member

kholia commented Mar 8, 2017

No further action is required here, closing.

@kholia kholia closed this as completed Mar 8, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
invalid Issue created in error, misunderstanding, etc.
Projects
None yet
Development

No branches or pull requests

3 participants