[ 
https://issues.apache.org/jira/browse/TS-427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12903821#action_12903821
 ] 

Igor Galić edited comment on TS-427 at 9/18/10 8:35 AM:
--------------------------------------------------------

This is the current state. It compiles and runs.. oh well.. almost:
CC="/opt/bw/bin/clang"; export CC
CXX="/opt/bw/bin/clang++"; export CXX
LD="/opt/bw/bin/clang++"; export LD
CFLAGS="-fPIC -march=core2 -msse4.1 -D_FORTIFY_SOURCE=2"; export CFLAGS
CXXFLAGS="-x c++ -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" \
"--enable-debug"

This will get us through the compile, but when running the regression test, and 
port 8080 is busy, we will segfault, as this happens with GCC the same, I'll 
leave that case out and we'll cut to the interesting one:

[SDK_API_INKContDataGet] INKContDataGet : [TestCase1] <<PASS>> { ok }
FATAL: ./P_CacheInternal.h:617: failed assert `!part || this_ethread() != 
part->mutex->thread_holding`
/opt/trafficserver/bin/traffic_server - STACK TRACE: 
/opt/trafficserver/bin/traffic_server(ink_fatal_va+0x111)[0x7fde1fdc6c11]
/opt/trafficserver/bin/traffic_server(ink_fatal+0x150)[0x7fde1fdc6d80]
/opt/trafficserver/bin/traffic_server(_ink_assert+0x112)[0x7fde1fdc5de2]
/opt/trafficserver/bin/traffic_server(CacheVC::callcont(int)+0x8a)[0x7fde1fd5ffea]
/opt/trafficserver/bin/traffic_server(CacheVC::openReadStartEarliest(int, 
Event*)+0xe50)[0x7fde1fd5d890]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, 
void*)+0x78)[0x7fde1fafbcc8]
/opt/trafficserver/bin/traffic_server(CacheVC::handleReadDone(int, 
Event*)+0xc59)[0x7fde1fd34259]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, 
void*)+0x78)[0x7fde1fafbcc8]
/opt/trafficserver/bin/traffic_server(CacheVC::openReadStartEarliest(int, 
Event*)+0xd40)[0x7fde1fd5d780]
/opt/trafficserver/bin/traffic_server(CacheVC::openReadFromWriter(int, 
Event*)+0x1831)[0x7fde1fd5ac01]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, 
void*)+0x78)[0x7fde1fafbcc8]
/opt/trafficserver/bin/traffic_server(Cache::open_read(Continuation*, INK_MD5*, 
CacheFragType, char*, int)+0x589)[0x7fde1fd580a9]
/opt/trafficserver/bin/traffic_server(CacheProcessor::open_read(Continuation*, 
INK_MD5*, CacheFragType, char*, int)+0xbc)[0x7fde1fb210dc]
/opt/trafficserver/bin/traffic_server(INKCacheRead+0x1a6)[0x7fde1fb192e6]
/opt/trafficserver/bin/traffic_server(cache_handler(void*, INKEvent, 
void*)+0x1679)[0x7fde1fb2cdf9]
/opt/trafficserver/bin/traffic_server(INKContInternal::handle_event(int, 
void*)+0xe5)[0x7fde1fb07895]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, 
void*)+0x78)[0x7fde1fafbcc8]
/opt/trafficserver/bin/traffic_server(CacheVC::calluser(int)+0xb6)[0x7fde1fd60146]
/opt/trafficserver/bin/traffic_server(CacheVC::openWriteMain(int, 
Event*)+0x117)[0x7fde1fd69757]
/opt/trafficserver/bin/traffic_server(CacheVC::openWriteWriteDone(int, 
Event*)+0x609)[0x7fde1fd69619]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, 
void*)+0x78)[0x7fde1fafbcc8]
/opt/trafficserver/bin/traffic_server(CacheVC::handleWriteLock(int, 
Event*)+0x16a)[0x7fde1fd50a1a]
/opt/trafficserver/bin/traffic_server(CacheVC::do_write_lock_call()+0xae)[0x7fde1fd6c60e]
/opt/trafficserver/bin/traffic_server(CacheVC::openWriteMain(int, 
Event*)+0x5b6)[0x7fde1fd69bf6]
/opt/trafficserver/bin/traffic_server(CacheVC::openWriteWriteDone(int, 
Event*)+0x609)[0x7fde1fd69619]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, 
void*)+0x78)[0x7fde1fafbcc8]
/opt/trafficserver/bin/traffic_server(CacheVC::handleWriteLock(int, 
Event*)+0x16a)[0x7fde1fd50a1a]
/opt/trafficserver/bin/traffic_server(CacheVC::do_write_lock_call()+0xae)[0x7fde1fd6c60e]
/opt/trafficserver/bin/traffic_server(CacheVC::openWriteMain(int, 
Event*)+0x5b6)[0x7fde1fd69bf6]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, 
void*)+0x78)[0x7fde1fafbcc8]
/opt/trafficserver/bin/traffic_server(CacheVC::callcont(int)+0x11c)[0x7fde1fd6007c]
/opt/trafficserver/bin/traffic_server(Cache::open_write(Continuation*, 
INK_MD5*, CacheFragType, int, long, char*, int)+0x594)[0x7fde1fd6b344]
/opt/trafficserver/bin/traffic_server(CacheProcessor::open_write(Continuation*, 
INK_MD5*, CacheFragType, int, int, long, char*, int)+0x124)[0x7fde1fb21214]
/opt/trafficserver/bin/traffic_server(INKCacheWrite+0x1c9)[0x7fde1fb19509]
/opt/trafficserver/bin/traffic_server(RegressionTest_SDK_API_INKCache(RegressionTest*,
 int, int*)+0x327)[0x7fde1fb2e147]
/opt/trafficserver/bin/traffic_server(+0x437abd)[0x7fde1fdddabd]
/opt/trafficserver/bin/traffic_server(RegressionTest::run(char*)+0xa5)[0x7fde1fddd9e5]
/opt/trafficserver/bin/traffic_server(RegressionCont::mainEvent(int, 
Event*)+0xb6)[0x7fde1fb56d16]
/opt/trafficserver/bin/traffic_server(Continuation::handleEvent(int, 
void*)+0x78)[0x7fde1fafbcc8]
/opt/trafficserver/bin/traffic_server(EThread::process_event(Event*, 
int)+0x171)[0x7fde1fdbc321]
/opt/trafficserver/bin/traffic_server(EThread::execute()+0x27f)[0x7fde1fdbc77f]
/opt/trafficserver/bin/traffic_server(main+0x194e)[0x7fde1fb5097e]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7fde1d444c4d]
/opt/trafficserver/bin/traffic_server(+0x12ead9)[0x7fde1fad4ad9]
Aborted

I guess I'll have to look into those cases closer.

      was (Author: i.galic):
    This is the current state. It compiles and runs.. oh well.. almost:
CC="/opt/bw/bin/clang"; export CC
CXX="/opt/bw/bin/clang++"; export CXX
LD="/opt/bw/bin/clang++"; export LD
CFLAGS="-fPIC -march=core2 -msse4.1 -D_FORTIFY_SOURCE=2"; export CFLAGS
CXXFLAGS="-x c++ -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" \
"--enable-debug"

This will get us through the compile, but when running the regression test, and 
port 8080 is busy, we will segfault:
r...@phoenix:~# /opt/trafficserver/bin/traffic_server -R 1
Layout configuration
          --prefix = '/opt/trafficserver'
     --exec_prefix = '/opt/trafficserver'
          --bindir = '/opt/trafficserver/bin'
         --sbindir = '/opt/trafficserver/sbin'
      --sysconfdir = '/etc/opt/trafficserver'
         --datadir = '/opt/trafficserver/share'
      --includedir = '/opt/trafficserver/include'
          --libdir = '/opt/trafficserver/lib'
      --libexecdir = '/opt/trafficserver/libexec'
   --localstatedir = '/var/opt/trafficserver'
  --sharedstatedir = '/opt/trafficserver'
      --runtimedir = '/var/opt/trafficserver/run'
          --logdir = '/var/opt/trafficserver/logs'
          --mandir = '/opt/trafficserver/man'
         --infodir = '/opt/trafficserver/info'
        --cachedir = '/var/opt/trafficserver/cache'
[TrafficServer] using root directory '/opt/trafficserver'
[Aug 28 15:15:29.056] {139700967716640} STATUS: opened 
/var/opt/trafficserver/logs/diags.log
[Aug 28 15:15:29.235] Server {139700967716640} ERROR: Could not bind or listen 
to port 8080 (error: -1)
[Aug 28 15:15:29.237] Server {139700771809040} FATAL: <HttpAccept.cc:98 
(mainEvent)> HTTP accept received fatal error: errno = 9
FATAL: UnixUDPNet.cc:295: failed assert `event != NULL`
/opt/trafficserver/bin/traffic_server - STACK TRACE: 
/opt/trafficserver/bin/traffic_server(ink_fatal_va+0x111)[0x7f0eaad33711]
/opt/trafficserver/bin/traffic_server(ink_fatal+0x150)[0x7f0eaad33880]
NOTE: Traffic Server received Sig 11: Segmentation fault
/opt/trafficserver/bin/traffic_server - STACK TRACE: 
/opt/trafficserver/bin/traffic_server(_ink_assert+0x112)[0x7f0eaad328d2]
/opt/trafficserver/bin/traffic_server(_ZN19UDPReadContinuationD1Ev+0x50)[0x7f0eaad06530]
/opt/trafficserver/bin/traffic_server(_ZN14ClassAllocatorI19UDPReadContinuationE6_protoD2Ev+0x15)[0x7f0eaad0d085]
/opt/trafficserver/bin/traffic_server(+0x1d2e02)[0x7f0eaaae1e02]
/lib/libpthread.so.0(+0xf8f0)[0x7f0ea9e0a8f0]
[0xffffffff]
Segmentation fault (core dumped)


When the port is not busy, it fails a certain test with abort:
[SDK_API_INKContDataGet] INKContDataGet : [TestCase1] <<PASS>> { ok }
FATAL: ./P_CacheInternal.h:617: failed assert `!part || this_ethread() != 
part->mutex->thread_holding`
/opt/trafficserver/bin/traffic_server - STACK TRACE: 
/opt/trafficserver/bin/traffic_server(ink_fatal_va+0x111)[0x7f29fdf0a711]
/opt/trafficserver/bin/traffic_server(ink_fatal+0x150)[0x7f29fdf0a880]
/opt/trafficserver/bin/traffic_server(_ink_assert+0x112)[0x7f29fdf098d2]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC8callcontEi+0x8a)[0x7f29fdea43da]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC21openReadStartEarliestEiP5Event+0xe37)[0x7f29fdea1c27]
/opt/trafficserver/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x78)[0x7f29fdc3bfb8]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC14handleReadDoneEiP5Event+0xc67)[0x7f29fde78557]
/opt/trafficserver/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x78)[0x7f29fdc3bfb8]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC21openReadStartEarliestEiP5Event+0xd27)[0x7f29fdea1b17]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC18openReadFromWriterEiP5Event+0x1840)[0x7f29fde9efb0]
/opt/trafficserver/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x78)[0x7f29fdc3bfb8]
/opt/trafficserver/bin/traffic_server(_ZN5Cache9open_readEP12ContinuationP7INK_MD513CacheFragTypePci+0x589)[0x7f29fde9c439]
/opt/trafficserver/bin/traffic_server(_ZN14CacheProcessor9open_readEP12ContinuationP7INK_MD513CacheFragTypePci+0xbc)[0x7f29fdc6131c]
/opt/trafficserver/bin/traffic_server(INKCacheRead+0x1a6)[0x7f29fdc594e6]
/opt/trafficserver/bin/traffic_server(_Z13cache_handlerPv8INKEventS_+0x1679)[0x7f29fdc6d069]
/opt/trafficserver/bin/traffic_server(_ZN15INKContInternal12handle_eventEiPv+0xe5)[0x7f29fdc47bf5]
/opt/trafficserver/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x78)[0x7f29fdc3bfb8]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC8calluserEi+0xb6)[0x7f29fdea4536]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC13openWriteMainEiP5Event+0x117)[0x7f29fdead867]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC18openWriteWriteDoneEiP5Event+0x609)[0x7f29fdead729]
/opt/trafficserver/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x78)[0x7f29fdc3bfb8]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC15handleWriteLockEiP5Event+0x16a)[0x7f29fde94dda]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC18do_write_lock_callEv+0xae)[0x7f29fdeb073e]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC13openWriteMainEiP5Event+0x5b6)[0x7f29fdeadd06]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC18openWriteWriteDoneEiP5Event+0x609)[0x7f29fdead729]
/opt/trafficserver/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x78)[0x7f29fdc3bfb8]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC15handleWriteLockEiP5Event+0x16a)[0x7f29fde94dda]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC18do_write_lock_callEv+0xae)[0x7f29fdeb073e]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC13openWriteMainEiP5Event+0x5b6)[0x7f29fdeadd06]
/opt/trafficserver/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x78)[0x7f29fdc3bfb8]
/opt/trafficserver/bin/traffic_server(_ZN7CacheVC8callcontEi+0x11c)[0x7f29fdea446c]
/opt/trafficserver/bin/traffic_server(_ZN5Cache10open_writeEP12ContinuationP7INK_MD513CacheFragTypeilPci+0x594)[0x7f29fdeaf454]
/opt/trafficserver/bin/traffic_server(_ZN14CacheProcessor10open_writeEP12ContinuationP7INK_MD513CacheFragTypeiilPci+0x124)[0x7f29fdc61454]
/opt/trafficserver/bin/traffic_server(INKCacheWrite+0x1c9)[0x7f29fdc59709]
/opt/trafficserver/bin/traffic_server(_Z31RegressionTest_SDK_API_INKCacheP14RegressionTestiPi+0x327)[0x7f29fdc6e3b7]
/opt/trafficserver/bin/traffic_server(+0x43b82d)[0x7f29fdf2182d]
/opt/trafficserver/bin/traffic_server(_ZN14RegressionTest3runEPc+0xa5)[0x7f29fdf21755]
/opt/trafficserver/bin/traffic_server(_ZN14RegressionCont9mainEventEiP5Event+0xb8)[0x7f29fdc970f8]
/opt/trafficserver/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x78)[0x7f29fdc3bfb8]
/opt/trafficserver/bin/traffic_server(_ZN7EThread13process_eventEP5Eventi+0x171)[0x7f29fdefff41]
/opt/trafficserver/bin/traffic_server(_ZN7EThread7executeEv+0x282)[0x7f29fdf003a2]
/opt/trafficserver/bin/traffic_server(main+0x1a0d)[0x7f29fdc90cad]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7f29fb584c4d]
/opt/trafficserver/bin/traffic_server(+0x12f0f9)[0x7f29fdc150f9]
Aborted

I guess I'll have to look into those cases closer.
  
> 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-trunk.clang-trunk.patch, 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.

Reply via email to