Thread: [Cppcms-users] Getting ready to 1.0.5
Brought to you by:
artyom-beilis
|
From: Artyom B. <art...@ya...> - 2014-10-19 08:32:20
|
Dear CppCMS Users, Hello, I'm getting ready to release 1.0.5 it includes many fixes to support different compilers. Especially clang and libc++ and some bug fixes. I need help for the following platforms: - Mac OS X with clang + libc++ as per this bug it has many issues: https://sourceforge.net/p/cppcms/bugs/112/ I think they should be fixed by now but testing needed. - Net BSD with clang and libc++ - Windows VS 2013... I think it should work as the issue was fixed (in json.cpp) but still if somebody can confirm I'd love to see. I also must admit that libc++ isn't very mature so some tests may fail and I'd like to know which ones (there are bugs in libc++ itself). Also you are welcome to run tests on your own. I'm talking about v1.0_fixes branch, NOT trunk, i.e. svn://svn.code.sf.net/p/cppcms/code/framework/branches/v1.0_fixes Make sure to untar cppcms_boost.tar.bz2. Thanks Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ |
|
From: Sergei <ser...@gm...> - 2014-10-19 11:24:35
|
Artyom please check make and test. Ubuntu 14.04, cppcms 1.0.5 http://sourceforge.net/p/cppcms/bugs/136/ |
|
From: Joerg S. <jo...@br...> - 2014-10-19 11:45:48
|
On Sun, Oct 19, 2014 at 01:32:13AM -0700, Artyom Beilis wrote: > I'm getting ready to release 1.0.5 it includes many fixes to support > different compilers. Especially clang and libc++ and some bug fixes. Can you wait a few days? I'd like to get everything tested and hopefully write a regression test for the escape option... Joerg |
|
From: Artyom B. <art...@ya...> - 2014-10-19 11:38:03
|
> Can you wait a few days? Of course > I'd like to get everything tested > and hopefully > write a regression test for the escape option... > Note - I do not put any new features to 1.0.x branch - it is a maintenance branch with minimal changes. Anything new goes to trunk for future 1.2 >Joerg > Artyom |
|
From: Joerg S. <jo...@br...> - 2014-10-22 10:31:40
|
On Sun, Oct 19, 2014 at 01:32:13AM -0700, Artyom Beilis wrote:
> - Net BSD with clang and libc++
The current list of failures is:
wing tests FAILED:
3 - storage_test (Failed)
19 - internal_forwarder_test (OTHER_FAULT)
23 - http_timeouts_test_write (Failed)
24 - file_server_test (Failed)
25 - file_server_with_listing_test (Failed)
34 - cppcms_service_test (Failed)
46 - proto_test_async_fastcgi (Failed)
59 - test_thread_thread (Timeout)
75 - test_locale_codepage (Failed)
76 - test_locale_message (Failed)
89 - test_locale_std_formatting (Failed)
90 - test_locale_std_collate (Failed)
3 is the lack of process shared mutex. Might be better to mark it as
skipped?
19 is somewhat nasty as it hang -- possibly related to redirecting
output as it worked earlier when executed normally.
23: output from running manually:
build# ./http_timeouts_test -c tests/proto_test.js "--service-api=http"
"--service-port=8080" "--service-ip=127.0.0.1" "--http-timeout=5"
"--logging-level=debug" --test-write=true
--test-exec="/usr/pkg/bin/python2.7 tests/http_timeouts_test.py write"
Write to the client timeout
Tesing GET /async/long HTTP/1.0 with 0 reads
SO_RCVBUF=32768
2014-10-22 10:09:31; cppcms_http, info: GET /async/long
(http_api.cpp:251)
Error
File "tests/http_timeouts_test.py", line 72, in <module>
test_unfinished_read('GET /async/long HTTP/1.0',0,0)
File "tests/http_timeouts_test.py", line 65, in test_unfinished_read
test(n < read_size * 16 or n < 1000000)
File "tests/http_timeouts_test.py", line 16, in test
traceback.print_stack()
Statistics:
sync_bad_count =0
async_bad_count =0
count_timeouts =0
above 15 =0
below 10 =0
eof =0
Failed
24: Failed to open filename:tests/file_server_test.js
25: same
34: not sure how to run?
46: not sure how to run?
59: hangs in "Test recursive_shared_mutex recursive shared lock"
75: charset translation fails, haven't checked why
76: not checked
89: 10% of test cases fail, likely minor output differences
90: expected, missing libc support in NetBSD
The bashism patches for bin/cppcms_run are still present?
Joerg
|
|
From: Artyom B. <art...@ya...> - 2014-10-22 11:21:57
|
No I didn't commit cppcms_run changes yet. Locale tests... they are just mostly tricky. If you use ICU most probably you wouldn't have any issues in reality. Can you send the full Testing/LatestTest.log under build directory? The rest are much more disturbing. There may be some problems with old libc & pthreads model or some non-standard stuff. May I just ask from curiosity why NetBSD? According to the changelog it looks like very outdated system. Only recently implemented TLS. Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ From: Joerg Sonnenberger <jo...@br...> To: cpp...@li... Sent: Wednesday, October 22, 2014 12:31 PM Subject: Re: [Cppcms-users] Getting ready to 1.0.5 On Sun, Oct 19, 2014 at 01:32:13AM -0700, Artyom Beilis wrote: > - Net BSD with clang and libc++ The current list of failures is: wing tests FAILED: 3 - storage_test (Failed) 19 - internal_forwarder_test (OTHER_FAULT) 23 - http_timeouts_test_write (Failed) 24 - file_server_test (Failed) 25 - file_server_with_listing_test (Failed) 34 - cppcms_service_test (Failed) 46 - proto_test_async_fastcgi (Failed) 59 - test_thread_thread (Timeout) 75 - test_locale_codepage (Failed) 76 - test_locale_message (Failed) 89 - test_locale_std_formatting (Failed) 90 - test_locale_std_collate (Failed) 3 is the lack of process shared mutex. Might be better to mark it as skipped? 19 is somewhat nasty as it hang -- possibly related to redirecting output as it worked earlier when executed normally. 23: output from running manually: build# ./http_timeouts_test -c tests/proto_test.js "--service-api=http" "--service-port=8080" "--service-ip=127.0.0.1" "--http-timeout=5" "--logging-level=debug" --test-write=true --test-exec="/usr/pkg/bin/python2.7 tests/http_timeouts_test.py write" Write to the client timeout Tesing GET /async/long HTTP/1.0 with 0 reads SO_RCVBUF=32768 2014-10-22 10:09:31; cppcms_http, info: GET /async/long (http_api.cpp:251) Error File "tests/http_timeouts_test.py", line 72, in <module> test_unfinished_read('GET /async/long HTTP/1.0',0,0) File "tests/http_timeouts_test.py", line 65, in test_unfinished_read test(n < read_size * 16 or n < 1000000) File "tests/http_timeouts_test.py", line 16, in test traceback.print_stack() Statistics: sync_bad_count =0 async_bad_count =0 count_timeouts =0 above 15 =0 below 10 =0 eof =0 Failed 24: Failed to open filename:tests/file_server_test.js 25: same 34: not sure how to run? 46: not sure how to run? 59: hangs in "Test recursive_shared_mutex recursive shared lock" 75: charset translation fails, haven't checked why 76: not checked 89: 10% of test cases fail, likely minor output differences 90: expected, missing libc support in NetBSD The bashism patches for bin/cppcms_run are still present? Joerg ------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://p.sf.net/sfu/Zoho _______________________________________________ Cppcms-users mailing list Cpp...@li... https://lists.sourceforge.net/lists/listinfo/cppcms-users |
|
From: Joerg S. <jo...@br...> - 2014-10-22 11:43:13
Attachments:
LastTest.log.gz
|
On Wed, Oct 22, 2014 at 11:21:49AM +0000, Artyom Beilis wrote: > No I didn't commit cppcms_run changes yet. > Locale tests... they are just mostly tricky. If you use ICU most probably you wouldn't have any issues in reality. > Can you send the full Testing/LatestTest.log under build directory? > The rest are much more disturbing. There may be some problems with old libc & pthreads model or some non-standard stuff. Attached is the log. > May I just ask from curiosity why NetBSD? > According to the changelog it looks like very outdated system. Only recently implemented TLS. Artyom Beilis So does Windows. TLS in any form has been standardised only very recently... Joerg |
|
From: Artyom B. <art...@ya...> - 2014-10-22 13:03:10
|
Ok...
Now I can work
Ok it is a bug I fixed it in: cs2274
3 - storage_test (Failed)
Check if the prort 8081 is avalible?
19 - internal_forwarder_test (OTHER_FAULT)
I have same problem on FreeBSD... it may be actually some OS problem
I don't think it is a bug
23 - http_timeouts_test_write (Failed) -
interesting something to do with realpath and symlinks need to debug...
it fails on symlink handling
Can you add debug outputs to file src/internal_file_server.cpp
around lines 192 - pelase print what realpath returns
24 - file_server_test (Failed)
25 - file_server_with_listing_test (Failed)
No bash... Check if possible to change to /bin/sh and make it work.
34 - cppcms_service_test (Failed)
Ok looks like problem to look into... but it isn't trivial - lets see if other get solved
46 - proto_test_async_fastcgi (Failed)
booster/lib/thread/src/pthread.cpp lines 155 & 175 - try to change to that it would handle it like on Darwin
if works give a patch
59 - test_thread_thread (Timeout)
Locale: try to install ICU :-)
Ok probably due to iconv... not really sure
75 - test_locale_codepage (Failed)
this is due to iconv problematic work try to build with icu but in general it works fine
76 - test_locale_message (Failed)
Need to see what libc++ uses for localization in general not a big problem.
89 - test_locale_std_formatting (Failed)
90 - test_locale_std_collate (Failed)
Artyom Beilis
--------------
CppCMS - C++ Web Framework: http://cppcms.com/
CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/
>________________________________
> From: Joerg Sonnenberger <jo...@br...>
>To: Artyom Beilis <art...@ya...>; cpp...@li...
>Sent: Wednesday, October 22, 2014 2:43 PM
>Subject: Re: [Cppcms-users] Getting ready to 1.0.5
>
>
>On Wed, Oct 22, 2014 at 11:21:49AM +0000, Artyom Beilis wrote:
>> No I didn't commit cppcms_run changes yet.
>> Locale tests... they are just mostly tricky. If you use ICU most probably you wouldn't have any issues in reality.
>> Can you send the full Testing/LatestTest.log under build directory?
>> The rest are much more disturbing. There may be some problems with old libc & pthreads model or some non-standard stuff.
>
>Attached is the log.
>
>> May I just ask from curiosity why NetBSD?
>> According to the changelog it looks like very outdated system. Only recently implemented TLS. Artyom Beilis
>
>So does Windows. TLS in any form has been standardised only very
>
>recently...
>
>Joerg
>
>
> |
|
From: Joerg S. <jo...@br...> - 2014-10-22 13:35:28
Attachments:
service_test.diff
|
On Wed, Oct 22, 2014 at 06:03:03AM -0700, Artyom Beilis wrote: > 19 - internal_forwarder_test (OTHER_FAULT) > 46 - proto_test_async_fastcgi (Failed) This two are spurious failures. Small patch to avoid the bash depency in test/ is attached. Joerg |
|
From: Artyom B. <art...@ya...> - 2014-10-26 13:25:54
|
Ok... II installed NetBSD 6.1.5 on VBox and run the tests. 1st I didn't see clang but rather gcc is used systemwise so I tested with gcc (not really big difference I think) I did several fixed and adaptations for NetBSD and no problem with internal_forwarder_test and proto_* test werevisible BUT... I discovered a huge issue with TLS implementation in the pthreads library that requires workaround. If you run pthread_key_create more than 255 times (even if you call pthread_key_delete and release the keys) the key creation. 256 is the total number of TLS keys allowed at NetBSD. However pthread_key_delete does not "free" the spot - it caused all ICU tests that use TLS for optimization fail and it may cause other problems that aren't visible right now. Bottom line - TLS implementation requires workaround or fix in standard library for NetBSD to be used safely with CppCMS. I'll commit various fixes for NetBSD for 1.0.5 but I need to think whether to implement TLS workaround because it is a clear pthreads library bug that MUST be solved by NetBSD developers. Also service_test fix does not work as it looks like under NetBSD killall behaves differently. Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ |
|
From: Joerg S. <jo...@br...> - 2014-10-26 20:02:49
|
On Sun, Oct 26, 2014 at 01:25:45PM +0000, Artyom Beilis wrote: > BUT... I discovered a huge issue with TLS implementation > in the pthreads library that requires workaround. > > If you run pthread_key_create more than 255 times > (even if you call pthread_key_delete and release the keys) > the key creation. > 256 is the total number of TLS keys allowed at NetBSD. > > > However pthread_key_delete does not "free" the spot - it > caused all ICU tests that use TLS for optimization > fail and it may cause other problems that aren't > visible right now. That one has been addressed after NetBSD 6 has been branches. The core of the issue is that pthread_key_destroy was added as an afterthought with some non-trivial implications for how it behaves on existing threads. Please avoid the term TLS when talking about pthread_key -- it is normally used for __thread and the related C++11 feature. Joerg |
|
From: Artyom B. <art...@ya...> - 2014-10-27 08:03:17
|
> >> BUT... I discovered a huge issue with TLS implementation >> in the pthreads library that requires workaround. >> >> If you run pthread_key_create more than 255 times >> (even if you call pthread_key_delete and release the keys) >> the key creation. >> 256 is the total number of TLS keys allowed at NetBSD. >> >> >> However pthread_key_delete does not "free" the spot - it >> caused all ICU tests that use TLS for optimization >> fail and it may cause other problems that aren't >> visible right now. > > That one has been addressed after NetBSD 6 has been branches. The core > of the issue is that pthread_key_destroy was added as an afterthought > with some non-trivial implications for how it behaves on existing > threads. Destructors are not called if data still exists, use of the key afterwards leads to undefined behavior. It is very well defined practically defining the implementation. http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_key_delete.html All implementation I'm aware of follow this spec. > Please avoid the term TLS when talking about pthread_key -- it > is normally used for __thread and the related C++11 feature. > AFAIK Thread local storage is still called TLS regardless implementaion: using API like POSIX pthread_key_create or WinAPI TlsAlloc or using language based features. > Joerg > In any case it implies some limits on use of CppCMS in NetBSD other than that I don't see any other problems. I commited latest fixes so you are welcome to take a look on them. > ------------------------------------------------------------------------------ > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > |