[
https://issues.apache.org/jira/browse/TS-427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12906407#action_12906407
]
Igor Galić commented on TS-427:
-------------------------------
If I change the assert() to: ink_debug_assert(!part);
The stack trace looks like this:
REGRESSION TEST SDK_API_INKCache started
[SDK_API_INKCache] INKCacheReady : [TestCase1] <<PASS>> { ok }
[SDK_API_INKCache] INKCacheKeyCreate : [TestCase1] <<PASS>> { ok }
[SDK_API_INKCache] INKCacheKeySetDigest : [TestCase1] <<PASS>> { ok }
[SDK_API_INKContDataGet] INKContDataSet : [TestCase1] <<PASS>> { ok }
[SDK_API_INKContDataGet] INKContDataGet : [TestCase1] <<PASS>> { ok }
[SDK_API_INKActionCancel] INKActionCancel : [TestCase1] <<PASS>> { ok }
[SDK_API_INKContSchedule] INKContSchedule : [TestCase2] <<PASS>> { ok }
FATAL: ./P_CacheInternal.h:618: failed assert `!part`
/opt/trafficserver/bin/traffic_server - STACK TRACE:
/opt/trafficserver/bin/traffic_server(ink_fatal_va+0x111)[0x7fd02e8b5bd1]
/opt/trafficserver/bin/traffic_server(ink_fatal+0x150)[0x7fd02e8b5d40]
/opt/trafficserver/bin/traffic_server(_ink_assert+0x112)[0x7fd02e8b4da2]
/opt/trafficserver/bin/traffic_server(CacheVC::callcont(int)+0x4b)[0x7fd02e84efab]
/opt/trafficserver/bin/traffic_server(Cache::open_write(Continuation*,
INK_MD5*, CacheFragType, int, long, char*, int)+0x594)[0x7fd02e85a304]
/opt/trafficserver/bin/traffic_server(CacheProcessor::open_write(Continuation*,
INK_MD5*, CacheFragType, int, int, long, char*, int)+0x124)[0x7fd02e610214]
/opt/trafficserver/bin/traffic_server(INKCacheWrite+0x1c9)[0x7fd02e608509]
/opt/trafficserver/bin/traffic_server(RegressionTest_SDK_API_INKCache(RegressionTest*,
int, int*)+0x327)[0x7fd02e61d147]
/opt/trafficserver/bin/traffic_server(+0x437a7d)[0x7fd02e8cca7d]
/opt/trafficserver/bin/traffic_server(RegressionTest::run(char*)+0xa5)[0x7fd02e8cc9a5]
/opt/trafficserver/bin/traffic_server(RegressionCont::mainEvent(int,
Event*)+0xb6)[0x7fd02e645d16]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int,
void*)+0x78)[0x7fd02e5eacc8]
/opt/trafficserver/bin/traffic_server(EThread::process_event(Event*,
int)+0x171)[0x7fd02e8ab2e1]
/opt/trafficserver/bin/traffic_server(EThread::execute()+0x27f)[0x7fd02e8ab73f]
/opt/trafficserver/bin/traffic_server(main+0x194e)[0x7fd02e63f97e]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7fd02bf33c4d]
/opt/trafficserver/bin/traffic_server(+0x12ead9)[0x7fd02e5c3ad9]
For ink_debug_assert(this_ethread() != part->mutex->thread_holding); it will
look like this:
[SDK_API_INKActionCancel] INKActionCancel : [TestCase1] <<PASS>> { ok }
[SDK_API_INKContDataGet] INKContDataSet : [TestCase1] <<PASS>> { ok }
[SDK_API_INKContDataGet] INKContDataGet : [TestCase1] <<PASS>> { ok }
[SDK_API_INKCache] INKCacheWrite : [TestCase1] <<PASS>> { ok }
[SDK_API_INKCache] INKVIOReenable : [TestCase2] <<PASS>> { ok }
[SDK_API_INKCache] INKVIONBytesSet : [TestCase1] <<PASS>> { ok }
[SDK_API_INKCache] INKVConnWrite : [TestCase1] <<PASS>> { ok }
[SDK_API_INKCache] INKVIOBufferGet : [TestCase1] <<PASS>> { ok }
[SDK_API_INKCache] INKVIOContGet : [TestCase1] <<PASS>> { ok }
[SDK_API_INKCache] INKVIOMutexGet : [TestCase1] <<PASS>> { ok }
[SDK_API_INKCache] INKVIOVConnGet : [TestCase1] <<PASS>> { ok }
[SDK_API_INKCache] INKVIOReaderGet : [TestCase1] <<PASS>> { ok }
FATAL: ./P_CacheInternal.h:618: failed assert `this_ethread() !=
part->mutex->thread_holding`
/opt/trafficserver/bin/traffic_server - STACK TRACE:
/opt/trafficserver/bin/traffic_server(ink_fatal_va+0x111)[0x7f4966520c01]
/opt/trafficserver/bin/traffic_server(ink_fatal+0x150)[0x7f4966520d70]
/opt/trafficserver/bin/traffic_server(_ink_assert+0x112)[0x7f496651fdd2]
/opt/trafficserver/bin/traffic_server(CacheVC::callcont(int)+0x74)[0x7f49664b9fd4]
/opt/trafficserver/bin/traffic_server(CacheVC::openReadStartEarliest(int,
Event*)+0xe50)[0x7f49664b7890]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int,
void*)+0x78)[0x7f4966255cc8]
/opt/trafficserver/bin/traffic_server(CacheVC::handleReadDone(int,
Event*)+0xc59)[0x7f496648e259]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int,
void*)+0x78)[0x7f4966255cc8]
/opt/trafficserver/bin/traffic_server(CacheVC::openReadStartEarliest(int,
Event*)+0xd40)[0x7f49664b7780]
/opt/trafficserver/bin/traffic_server(CacheVC::openReadFromWriter(int,
Event*)+0x1831)[0x7f49664b4c01]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int,
void*)+0x78)[0x7f4966255cc8]
/opt/trafficserver/bin/traffic_server(Cache::open_read(Continuation*, INK_MD5*,
CacheFragType, char*, int)+0x589)[0x7f49664b20a9]
/opt/trafficserver/bin/traffic_server(CacheProcessor::open_read(Continuation*,
INK_MD5*, CacheFragType, char*, int)+0xbc)[0x7f496627b0dc]
/opt/trafficserver/bin/traffic_server(INKCacheRead+0x1a6)[0x7f49662732e6]
/opt/trafficserver/bin/traffic_server(cache_handler(void*, INKEvent,
void*)+0x1679)[0x7f4966286df9]
/opt/trafficserver/bin/traffic_server(INKContInternal::handle_event(int,
void*)+0xe5)[0x7f4966261895]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int,
void*)+0x78)[0x7f4966255cc8]
/opt/trafficserver/bin/traffic_server(CacheVC::calluser(int)+0xb6)[0x7f49664ba136]
/opt/trafficserver/bin/traffic_server(CacheVC::openWriteMain(int,
Event*)+0x117)[0x7f49664c3747]
/opt/trafficserver/bin/traffic_server(CacheVC::openWriteWriteDone(int,
Event*)+0x609)[0x7f49664c3609]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int,
void*)+0x78)[0x7f4966255cc8]
/opt/trafficserver/bin/traffic_server(CacheVC::handleWriteLock(int,
Event*)+0x16a)[0x7f49664aaa1a]
/opt/trafficserver/bin/traffic_server(CacheVC::do_write_lock_call()+0xae)[0x7f49664c65fe]
/opt/trafficserver/bin/traffic_server(CacheVC::openWriteMain(int,
Event*)+0x5b6)[0x7f49664c3be6]
/opt/trafficserver/bin/traffic_server(CacheVC::openWriteWriteDone(int,
Event*)+0x609)[0x7f49664c3609]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int,
void*)+0x78)[0x7f4966255cc8]
/opt/trafficserver/bin/traffic_server(CacheVC::handleWriteLock(int,
Event*)+0x16a)[0x7f49664aaa1a]
/opt/trafficserver/bin/traffic_server(CacheVC::do_write_lock_call()+0xae)[0x7f49664c65fe]
/opt/trafficserver/bin/traffic_server(CacheVC::openWriteMain(int,
Event*)+0x5b6)[0x7f49664c3be6]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int,
void*)+0x78)[0x7f4966255cc8]
/opt/trafficserver/bin/traffic_server(CacheVC::callcont(int)+0x106)[0x7f49664ba066]
/opt/trafficserver/bin/traffic_server(Cache::open_write(Continuation*,
INK_MD5*, CacheFragType, int, long, char*, int)+0x594)[0x7f49664c5334]
/opt/trafficserver/bin/traffic_server(CacheProcessor::open_write(Continuation*,
INK_MD5*, CacheFragType, int, int, long, char*, int)+0x124)[0x7f496627b214]
/opt/trafficserver/bin/traffic_server(INKCacheWrite+0x1c9)[0x7f4966273509]
/opt/trafficserver/bin/traffic_server(RegressionTest_SDK_API_INKCache(RegressionTest*,
int, int*)+0x327)[0x7f4966288147]
/opt/trafficserver/bin/traffic_server(+0x437aad)[0x7f4966537aad]
/opt/trafficserver/bin/traffic_server(RegressionTest::run(char*)+0xa5)[0x7f49665379d5]
/opt/trafficserver/bin/traffic_server(RegressionCont::mainEvent(int,
Event*)+0xb6)[0x7f49662b0d16]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int,
void*)+0x78)[0x7f4966255cc8]
/opt/trafficserver/bin/traffic_server(EThread::process_event(Event*,
int)+0x171)[0x7f4966516311]
/opt/trafficserver/bin/traffic_server(EThread::execute()+0x27f)[0x7f496651676f]
/opt/trafficserver/bin/traffic_server(main+0x194e)[0x7f49662aa97e]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7f4963b9ec4d]
/opt/trafficserver/bin/traffic_server(+0x12ead9)[0x7f496622ead9]
> Build ATS with clang
> --------------------
>
> Key: TS-427
> URL: https://issues.apache.org/jira/browse/TS-427
> Project: Traffic Server
> Issue Type: Improvement
> Components: Build
> Affects Versions: 2.3.0
> Environment: OS: Any; Clang --version:
> clang version 1.1 (branches/release_27)
> Target: x86_64-pc-linux-gnu
> Thread model: posix
> Reporter: Igor Galić
> Attachments: ats.clang.compile.patch, ats.clang.patch,
> ats.clang.patch, ats_clang_stuck.strace
>
>
> I've started compiling, and cleaning up traffic-server from trunk with clang,
> with this config:
> i.ga...@phoenix ~/Projects/asf/trafficserver (svn)-[trunk:989985] % cat
> config.notnice
> #! /bin/sh
> #
> # Created by configure
> CC="clang"; export CC
> CXX="clang"; export CXX
> CFLAGS="-fPIC -march=core2 -msse4.1 -D_FORTIFY_SOURCE=2"; export CFLAGS
> CXXFLAGS="-fPIC -march=core2 -msse4.1 -D_FORTIFY_SOURCE=2"; export CXXFLAGS
> LDFLAGS="-Wl,--as-needed -Wl,--warn-common"; export LDFLAGS
> "./configure" \
> "--enable-layout=opt" \
> "--with-user=proxy" \
> "--with-group=proxy" \
> "CC=clang" \
> "CFLAGS=-fPIC -march=core2 -msse4.1 -D_FORTIFY_SOURCE=2" \
> "LDFLAGS=-Wl,--as-needed" \
> "CXX=clang" \
> "$@"
> i.ga...@phoenix ~/Projects/asf/trafficserver (svn)-[trunk:989985] %
> Until I hit errors that seemed to include templates.
> I'm uploading the current patch for you to sanity-check and review. If it
> makes sense, I suppose it does a bit of a clean-up.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.