Commit Graph

537 Commits (75965449fb3cc37f830f88c6807745e629dfd1e1)

Author SHA1 Message Date
Andrey Lihatskiy 83822fd199 Merge branch 'master' into DRTVWR-516-maint
# Conflicts:
#	indra/newview/llvocache.cpp
2020-09-28 22:39:06 +03:00
Andrey Lihatskiy 1d458de949 Merge branch 'master' into DRTVWR-515-maint
# Conflicts:
#	indra/newview/llpanelprimmediacontrols.cpp
2020-09-28 22:29:19 +03:00
Andrey Lihatskiy 32cb17e3bb Merge branch 'master' into DRTVWR-513-maint
# Conflicts:
#	indra/newview/llgroupmgr.cpp
2020-09-28 22:24:12 +03:00
Ansariel 14fb8f66f8 Merge branch 'DRTVWR-516-maint' of https://bitbucket.org/lindenlab/viewer 2020-09-24 16:34:12 +02:00
Andrey Kleshchev 738a651efa Fix line endings 2020-09-23 17:53:31 +03:00
Ansariel 25a1869ce9 Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm 2020-09-23 13:49:04 +02:00
Ansariel 5328e5ed11 Merge LL 2020-09-20 20:25:42 +02:00
Andrey Kleshchev 6936736d17 Revert SL-13927 commit 8c8eac256b.
Got into D503 by accident
2020-09-11 21:00:20 +03:00
Andrey Kleshchev 8c8eac256b SL-13927 Turn SSL verification On for all SL services in viewer 2020-09-11 16:32:19 +03:00
Andrey Kleshchev 8594be3b9a SL-13927 Turn SSL verification On for all SL services in viewer 2020-09-11 16:31:15 +03:00
Andrey Kleshchev 81553d1b8c SL-13919 SSL verification should take mVerifyPeer flag into account 2020-09-09 22:09:39 +03:00
Oz Linden a9d271c5a2 SL-10297 merged 6.4.7 2020-08-24 13:11:07 -04:00
Andrey Lihatskiy 9406b757a3 Merge branch 'DRTVWR-501-maint' into DRTVWR-503-maint
# Conflicts:
#	indra/cmake/DirectX.cmake
#	indra/newview/llviewerparcelmedia.cpp
#	indra/newview/viewer_manifest.py
2020-08-11 01:34:13 +03:00
Ansariel 67255f5d64 Merge branch 'master' of https://vcs.firestormviewer.org/viewer-merges/phoenix-firestorm-501 2020-07-29 13:23:00 +02:00
Ansariel 705b5568c4 Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm 2020-07-24 23:49:28 +02:00
Andrey Lihatskiy ae48c7c8b3 Merge branch 'master' into DRTVWR-513-maint
# Conflicts:
#	indra/llcommon/llerror.cpp
#	indra/newview/llappviewerwin32.cpp
#	indra/newview/llimprocessing.cpp
#	indra/newview/llviewerjoystick.cpp
2020-07-21 11:54:11 +03:00
Ansariel 98129be5ef Merge branch 'DRTVWR-513-maint' of https://bitbucket.org/lindenlab/viewer 2020-06-17 15:45:05 +02:00
Oz Linden 86009f885e SL-10297: merge up to master at 6.4.3 2020-06-15 15:29:04 -04:00
Andrey Kleshchev 71f6b139f8 SL-13348 Thread crashing singleton #1 2020-05-29 20:10:55 +03:00
Nicky Dasmijn 27715d4d03 Merge remote-tracking branch 'll/d476' into fs-eep-vs2017-d476 2020-05-21 06:54:02 +02:00
Nat Goodspeed ca6f092929 DRTVWR-476: Merge branch 'master' of lindenlab/viewer into DRTVWR-476-boost-1.72 2020-05-06 16:06:26 -04:00
Ansariel 6afd505fa8 Merge branch 'DRTVWR-503-maint' of https://bitbucket.org/lindenlab/viewer 2020-05-05 15:24:10 +02:00
Nat Goodspeed 91cca79c14 DRTVWR-476: #include "boost/noncopyable.hpp" in another consumer. 2020-04-09 08:06:46 -04:00
Nat Goodspeed c7cf322be5 DRTVWR-476: #include "boost/noncopyable.hpp" in httpcommon.h.
Apparently, in previous Boost versions, boost::noncopyable was sneaking into
the namespace via other headers. Now the compiler complains about its absence
without an explicit #include.
2020-04-09 06:49:49 -04:00
Nat Goodspeed 4174bb3640 DRTVWR-476: Disable test_httprequest.hpp on Mac Release builds.
For reasons not yet diagnosed, specifically in Mac Release builds, the tests
in test_httprequest.hpp consistently crash with a backtrace suggesting that
the worker thread is calling LLCore::HttpLibcurl::completeRequest() after the
foreground thread calls HttpRequest::destroyService().

Weirdly, even executing a tut::skip() call in every test<n>() function up to
the point of the crash does not eliminate the crash.
2020-03-25 18:44:04 -04:00
Nat Goodspeed 2902f23a41 DRTVWR-476: Remove special llcorehttp test memory manager.
NickyD discovered that the substitute default allocator used for llcorehttp
tests was returning badly-aligned storage, which caused access violations on
alignment-sensitive data such as std::atomic. Thanks Nicky!!

Moreover, the llcorehttp test assertions regarding memory usage, well-
intentioned though they are, have been causing us trouble for years. Many have
already been disabled.

The problem is that use of test_allocator.h affected *everything* defined with
that header file's declarations visible. That inevitably included specific
functions in other subsystems. Those functions then (unintentionally) consumed
the special allocator, throwing off the memory tracking and making certain
memory-related assertions consistently fail.

This is a particular, observable bad effect of One Definition Rule violations.
Within a given program, C++ allows multiple definitions for the same entity,
but requires that all such definitions be the same. Partial visibility of the
global operator new() and operator delete() overrides meant that some
definitions of certain entities used the default global allocator, some used
llcorehttp's. There may have been other, more subtle bad effects of these ODR
violations.

If one wanted to reimplement verification of the memory consumption of
llcorehttp classes:

* Each llcorehttp class (for which memory tracking was desired) should declare
  class-specific operator new() and operator delete() methods. Naturally,
  these would all consume a central llcorehttp-specific allocator, but that
  allocator should *not* be named global operator new().
* Presumably that would require runtime indirection to allow using the default
  allocator in production while substituting the special allocator for tests.
* Recording and verifying the memory consumption in each test should be
  performed in the test-object constructor and destructor, rather than being
  sprinkled throughout the test<n>() methods.
* With that mechanism in place, the test object should provide methods to
  adjust (or entirely disable) memory verification for a particular test.
* The test object should also provide a "yes, we're still consuming llcorehttp
  memory" method to be used for spot checks in the middle of tests -- instead
  of sprinkling in explicit comparisons as before.
* In fact, the llcorehttp test object in each test_*.hpp file should be
  derived from a central llcorehttp test-object base class providing those
  methods.
2020-03-25 18:44:04 -04:00
Nat Goodspeed c56601bc22 DRTVWR-476: Add LLCOREHTTP_TESTS CMake var, OFF by default on Mac.
Hopefully this is temporary until we solve the problem of crashy llcorehttp
test executable on Mac.
2020-03-25 18:44:04 -04:00
Anchor ca66cea70d [DRTVWR-476] - revert 2020-03-25 18:40:44 -04:00
Anchor cc230eef30 [DRTVWR-476] - disable llcorehttp test on mac 2020-03-25 18:40:44 -04:00
Anchor 201ff48cb1 [DRTVWR-476] - temporarily disable llcorehttptest on mac 2020-03-25 18:40:44 -04:00
Anchor b5bb0794f0 [DRTVWR-476] - fix linking 2020-03-25 18:39:20 -04:00
Nat Goodspeed 663b9ff6af DRTVWR-476: pthread_self() also needs CRYPTO_THREADID_set_pointer() 2020-03-25 16:12:46 -04:00
Nat Goodspeed 25a658440d DRTVWR-476: Remove throw(T) from operator new(), operator delete().
llcorehttp's test_allocator.{h,cpp} overrides global operator new(), operator
new[](), operator delete() and operator delete[](). The two operator new()
functions used to be declared with throw(std::bad_alloc). Worse, for VS 2013
and previous, we needed _THROW0() and _THROW1(std::bad_alloc) instead,
requiring #if logic.

But with dynamic throw declarations deprecated, we must actually remove those.
That obviates the THROW_BAD_ALLOC() / THROW_NOTHING() workarounds in
test_allocator.cpp.
2020-03-25 16:12:46 -04:00
Nat Goodspeed 3753dbd5ed DRTVWR-476: Use OpenSSL API suitable for 64-bit pointers.
In three different places we use the same pattern: an ssl_thread_id_callback()
function (a static member of LLCrashLogger, in that case) that used to be
passed to CRYPTO_set_id_callback() and therefore returned an unsigned long
representing the ID of the current thread.

But GetCurrentThread() is a HANDLE, an alias for a pointer, and you can't
uniquely cram a 64-bit pointer into an unsigned long.

Fortunately OpenSSL has a more modern API for retrieving thread ID. Pass
each ssl_thread_id_callback() function to CRYPTO_THREADID_set_callback()
instead, converting it to accept CRYPTO_THREADID* and call
CRYPTO_THREADID_set_pointer() or CRYPTO_THREADID_set_numeric() as appropriate().
2020-03-25 16:12:46 -04:00
Nat Goodspeed 5e7df752a6 DRTVWR-494: Use std:🧵:id for LLThread::currentID().
LLThread::currentID() used to return a U32, a distinct unsigned value
incremented by explicitly constructing LLThread or by calling LLThread::
registerThreadID() early in a thread launched by other means. The latter
imposed an unobvious requirement on new code based on std::thread. Using
std:🧵:id instead delegates to the compiler/library the problem of
distinguishing threads launched by any means.

Change lots of explicit U32 declarations. Introduce LLThread::id_t typedef to
avoid having to run around fixing uses again if we later revisit this decision.

LLMutex, which stores an LLThread::id_t, wants a distinguished value meaning
NO_THREAD, and had an enum with that name. But as std:🧵:id promises
that the default-constructed value is distinct from every valid value,
NO_THREAD becomes unnecessary and goes away.

Because LLMutex now stores LLThread::id_t instead of U32, make llmutex.h
#include "llthread.h" instead of the other way around. This makes LLMutex an
incomplete type within llthread.h, so move LLThread::lockData() and
unlockData() to the .cpp file. Similarly, remove llrefcount.h's #include
"llmutex.h" to break circularity; instead forward-declare LLMutex.

It turns out that a number of source files assumed that #include "llthread.h"
would get the definition for LLMutex. Sprinkle #include "llmutex.h" as needed.

In the SAFE_SSL code in llcorehttp/httpcommon.cpp, there's an ssl_thread_id()
callback that returns an unsigned long to the SSL library. When LLThread::
currentID() was U32, we could simply return that. But std:🧵:id is very
deliberately opaque, and can't be reinterpret_cast to unsigned long.
Fortunately it can be hashed because std::hash is specialized with that type.
2020-03-25 15:28:17 -04:00
Andrey Kleshchev 82e5f6c24f SL-12421 Viewer's certificate validation does not reject connections 2020-03-04 19:13:55 +02:00
Nicky Dasmijn a135b5b428 Merge remote-tracking branch 'origin/ll-vs2017' into fs-vs2017 2019-12-21 13:14:51 +01:00
Nicky Dasmijn 7f9bce5ada Merge branch 'master' into fs-vs2017 2019-12-21 01:52:19 +01:00
Nat Goodspeed 271e0c6e80 Automated merge with ssh://bitbucket.org/nat_linden/viewer-llsingleton 2019-12-09 14:46:16 -05:00
Nat Goodspeed 55d7ac5e81 DRTVWR-494: Use std:🧵:id for LLThread::currentID().
LLThread::currentID() used to return a U32, a distinct unsigned value
incremented by explicitly constructing LLThread or by calling LLThread::
registerThreadID() early in a thread launched by other means. The latter
imposed an unobvious requirement on new code based on std::thread. Using
std:🧵:id instead delegates to the compiler/library the problem of
distinguishing threads launched by any means.

Change lots of explicit U32 declarations. Introduce LLThread::id_t typedef to
avoid having to run around fixing uses again if we later revisit this decision.

LLMutex, which stores an LLThread::id_t, wants a distinguished value meaning
NO_THREAD, and had an enum with that name. But as std:🧵:id promises
that the default-constructed value is distinct from every valid value,
NO_THREAD becomes unnecessary and goes away.

Because LLMutex now stores LLThread::id_t instead of U32, make llmutex.h
#include "llthread.h" instead of the other way around. This makes LLMutex an
incomplete type within llthread.h, so move LLThread::lockData() and
unlockData() to the .cpp file. Similarly, remove llrefcount.h's #include
"llmutex.h" to break circularity; instead forward-declare LLMutex.

It turns out that a number of source files assumed that #include "llthread.h"
would get the definition for LLMutex. Sprinkle #include "llmutex.h" as needed.

In the SAFE_SSL code in llcorehttp/httpcommon.cpp, there's an ssl_thread_id()
callback that returns an unsigned long to the SSL library. When LLThread::
currentID() was U32, we could simply return that. But std:🧵:id is very
deliberately opaque, and can't be reinterpret_cast to unsigned long.
Fortunately it can be hashed because std::hash is specialized with that type.
2019-12-06 16:31:49 -05:00
Ansariel 6e340961c0 Merge viewer-neko 2019-10-30 18:05:01 +01:00
andreykproductengine 1b4d5492c6 SL-11727 Fix build warnings 2019-10-23 16:37:15 +03:00
Nicky 73affdca83 Merge with phoenix-firestorm-lgpl 2019-09-15 17:25:48 +02:00
Nat Goodspeed 24c7d14199 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2019-09-10 11:54:43 -04:00
Nicky 30f3b4da5e Merge with vs2017 2019-07-02 15:23:42 +02:00
Nat Goodspeed aeebb452e6 DRTVWR-476: Disable test_httprequest.hpp on Mac Release builds.
For reasons not yet diagnosed, specifically in Mac Release builds, the tests
in test_httprequest.hpp consistently crash with a backtrace suggesting that
the worker thread is calling LLCore::HttpLibcurl::completeRequest() after the
foreground thread calls HttpRequest::destroyService().

Weirdly, even executing a tut::skip() call in every test<n>() function up to
the point of the crash does not eliminate the crash.
2019-06-28 16:12:46 -04:00
Nat Goodspeed ef1f82bab7 DRTVWR-476: Remove special llcorehttp test memory manager.
NickyD discovered that the substitute default allocator used for llcorehttp
tests was returning badly-aligned storage, which caused access violations on
alignment-sensitive data such as std::atomic. Thanks Nicky!!

Moreover, the llcorehttp test assertions regarding memory usage, well-
intentioned though they are, have been causing us trouble for years. Many have
already been disabled.

The problem is that use of test_allocator.h affected *everything* defined with
that header file's declarations visible. That inevitably included specific
functions in other subsystems. Those functions then (unintentionally) consumed
the special allocator, throwing off the memory tracking and making certain
memory-related assertions consistently fail.

This is a particular, observable bad effect of One Definition Rule violations.
Within a given program, C++ allows multiple definitions for the same entity,
but requires that all such definitions be the same. Partial visibility of the
global operator new() and operator delete() overrides meant that some
definitions of certain entities used the default global allocator, some used
llcorehttp's. There may have been other, more subtle bad effects of these ODR
violations.

If one wanted to reimplement verification of the memory consumption of
llcorehttp classes:

* Each llcorehttp class (for which memory tracking was desired) should declare
  class-specific operator new() and operator delete() methods. Naturally,
  these would all consume a central llcorehttp-specific allocator, but that
  allocator should *not* be named global operator new().
* Presumably that would require runtime indirection to allow using the default
  allocator in production while substituting the special allocator for tests.
* Recording and verifying the memory consumption in each test should be
  performed in the test-object constructor and destructor, rather than being
  sprinkled throughout the test<n>() methods.
* With that mechanism in place, the test object should provide methods to
  adjust (or entirely disable) memory verification for a particular test.
* The test object should also provide a "yes, we're still consuming llcorehttp
  memory" method to be used for spot checks in the middle of tests -- instead
  of sprinkling in explicit comparisons as before.
* In fact, the llcorehttp test object in each test_*.hpp file should be
  derived from a central llcorehttp test-object base class providing those
  methods.
2019-06-27 10:57:34 -04:00
Nicky 6ca7831872 Merge with viewer-vs2017 2019-06-27 10:14:49 +02:00
Nat Goodspeed 7a417c9405 DRTVWR-476: Add LLCOREHTTP_TESTS CMake var, OFF by default on Mac.
Hopefully this is temporary until we solve the problem of crashy llcorehttp
test executable on Mac.
2019-06-26 11:23:33 -04:00
Nicky e6e66a953e Merge with viewer-vs2017 2019-06-06 14:37:27 +02:00
Nicky 1969b4bf52 Merge with phoenix-firestorm-lgpl 2019-06-06 09:59:44 +02:00
Nat Goodspeed ebcfbf277e Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2019-06-05 14:15:15 -04:00
Anchor be97efc06c [DRTVWR-476] - revert 2019-05-21 02:09:50 -07:00
Anchor f791526695 [DRTVWR-476] - disable llcorehttp test on mac 2019-05-21 01:50:27 -07:00
Anchor f47a2e88ed [DRTVWR-476] - temporarily disable llcorehttptest on mac 2019-05-21 01:28:20 -07:00
Anchor 9c9601ce8a [DRTVWR-476] - fix linking 2019-05-08 18:57:33 -06:00
Ansariel 579b76dcf3 Merge viewer-neko 2019-04-15 12:40:44 +02:00
Brad Kittenbrink 6f9ea467c2 SL-10948: Fix for crash in llcorehttp/_httplibcurl.cpp.
The crash can appear on some non-windows platforms (any LP64 model platforms).
Depending on alignment this can overwrite one word of the pointer `op` declared
above.  Subsequently it will crash when later writing to memory through that
pointer
2019-04-11 17:14:15 -07:00
Ansariel b75b1eb789 Merge viewer-vs2017 2019-03-31 01:37:56 +01:00
Oz Linden e409c0492f convert to an explicit USE_BUGSPLAT switch in cmake, revise LL_ERRS approach 2019-03-02 11:58:11 -05:00
Ansariel 6a624eb242 Merge viewer-neko 2019-02-19 17:30:44 +01:00
andreykproductengine 344a3a040f Teamcity W64 build freeze. 2019-02-15 22:05:44 +02:00
Ansariel c764079389 Merge viewer-neko 2019-02-14 21:21:38 +01:00
andreykproductengine eb1c3c5cbb Fix for teamcity W64 build freeze. 2019-02-08 22:22:06 +02:00
andreykproductengine d785c87d62 SL-2364 Fixed Viewer Caches Login Host DNS Entries Indefinetely 2019-01-29 21:33:31 +02:00
Ansariel 536a3f6c8e Merge viewer-neko 2019-01-18 23:41:21 +01:00
andreykproductengine fa15830e02 SL-10291 Replace apr_atomic with standard C++11 functionality 2019-01-15 18:31:17 +02:00
andreykproductengine 26fae750ba SL-10291 Replace apr_mutex with standard C++11 functionality 2019-01-14 22:04:44 +02:00
Nat Goodspeed dcc2bbbd30 DRTVWR-476: pthread_self() also needs CRYPTO_THREADID_set_pointer() 2018-10-28 22:30:42 -04:00
Nat Goodspeed fba4b6ce76 DRTVWR-476: Remove throw(T) from operator new(), operator delete().
llcorehttp's test_allocator.{h,cpp} overrides global operator new(), operator
new[](), operator delete() and operator delete[](). The two operator new()
functions used to be declared with throw(std::bad_alloc). Worse, for VS 2013
and previous, we needed _THROW0() and _THROW1(std::bad_alloc) instead,
requiring #if logic.

But with dynamic throw declarations deprecated, we must actually remove those.
That obviates the THROW_BAD_ALLOC() / THROW_NOTHING() workarounds in
test_allocator.cpp.
2018-10-25 11:07:43 -04:00
Nat Goodspeed 1d11bc3c03 DRTVWR-476: Use OpenSSL API suitable for 64-bit pointers.
In three different places we use the same pattern: an ssl_thread_id_callback()
function (a static member of LLCrashLogger, in that case) that used to be
passed to CRYPTO_set_id_callback() and therefore returned an unsigned long
representing the ID of the current thread.

But GetCurrentThread() is a HANDLE, an alias for a pointer, and you can't
uniquely cram a 64-bit pointer into an unsigned long.

Fortunately OpenSSL has a more modern API for retrieving thread ID. Pass
each ssl_thread_id_callback() function to CRYPTO_THREADID_set_callback()
instead, converting it to accept CRYPTO_THREADID* and call
CRYPTO_THREADID_set_pointer() or CRYPTO_THREADID_set_numeric() as appropriate().
2018-10-25 10:58:12 -04:00
Ansariel d93b92ec1d Merge viewer-bear 2018-09-12 20:13:12 +02:00
Oz Linden f561b11fb8 disable RefCounted tests in llcorehttp because they hang the win64 build in TeamCity 2018-08-30 14:56:52 -04:00
Oz Linden f1d4e788e7 SL-967 simplify viewer log file field syntax
MAINT-8991: only escape log message characters once, add unit test
remove extra log line created by LL_ERRS
document that tags may not contain spaces
2018-08-29 16:43:45 -04:00
Ansariel 106d34da3a Merge viewer-neko 2018-06-12 21:54:15 +02:00
andreykproductengine c76f10adcf MAINT-8686 Better http termination logging 2018-06-04 17:57:49 +03:00
Ansariel e97c25531c Merge viewer-neko 2018-05-25 22:05:19 +02:00
Nat Goodspeed ec8ee33939 MAINT-8675: In Darwin-specific CMake, use cp, not cmake -E copy.
cmake -E copy does only one file at a time, and older CMake versions don't
handle wildcards. But cmake -E copy is specifically for portability. When the
copy operation itself is Darwin-only, we can count on having 'cp' available.
2018-05-24 16:01:50 -04:00
Nicky 7cc408a5cd Merge. 2018-04-10 12:33:45 +02:00
Nicky ef20e3f523 Replace ARP Mutex and Condition with std::mutx and std::conditional_variable 2018-04-05 12:02:12 +02:00
Ansariel 9c55d820ab Merge viewer-vivox 2018-01-18 15:08:59 +01:00
Oz Linden 5bfc1e7ed7 copy all versions of libnghttp for tests 2018-01-18 08:23:49 -05:00
Ansariel 3a1fcb9521 Merge Firestorm LGPL 2018-01-17 20:28:45 +01:00
Oz Linden d7c8678c3a merge 5.1.0-release 2018-01-17 12:43:28 -05:00
Ansariel e7715f7a31 Merge Firestorm LGPL 2017-11-30 20:33:07 +01:00
Ansariel 36934fffc2 Merge Firestorm LGPL 2017-11-30 00:27:47 +01:00
Ansariel 409c001755 Fix FSData to download files only if there are newer versions on the server 2017-11-29 22:22:44 +01:00
Ansariel 32cbc9f98b Merge viewer64 2017-11-05 12:46:02 +01:00
Nat Goodspeed ead19aa22c MAINT-7081: Only request HTTP2 with $VIEWERASSET override (testing) 2017-10-24 15:57:36 -04:00
Nat Goodspeed 96ac49c3e2 MAINT-7081: Merge from lindenlab/viewer64. 2017-10-24 11:22:49 -04:00
Nat Goodspeed 0c7bc67814 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2017-10-11 14:35:49 -04:00
Oz Linden d62ad1ef8a merge changes for 5.0.8-release 2017-10-11 09:13:55 -04:00
Ansariel 547df251e4 Merge viewer64 2017-10-02 17:57:56 +02:00
Nat Goodspeed 6b508cd9d4 MAINT-7081: Eliminate unused variable errors after new refactoring.
The new helper functions check_curl_easy_setopt() and
check_curl_multi_setopt() encapsulate the pervasive idiom:

    code = curl_{easy,multi}_setopt(handle, option, arg);
    check_curl_{easy,multi}_code(code, option);

But since each of these helper functions contains its own local CURL{,M}code
variable 'code', having a caller-scope variable reused for every such call is
no longer necessary -- in fact is no longer used at all. That produces a fatal
warning with MSVC. Get rid of those now-unused variables.
2017-09-30 22:05:21 -04:00
Nat Goodspeed 586d697475 MAINT-7081: Try requesting HTTP/2 when a request wants pipelining. 2017-09-29 17:06:42 -04:00
Nat Goodspeed 19bb6fd33e MAINT-7081: Mention nghttp2 library wherever it must be mentioned. 2017-09-27 15:27:30 -04:00
Nat Goodspeed 1e49cd9b00 DRTVWR-418: Disable more needlessly fragile memory consumption tests. 2017-09-20 17:11:06 -04:00
Ansariel c47b8c27ba Merge Firestorm LGPL 2017-08-23 17:53:48 +02:00
Ansariel 13b6febd34 Merge viewer-64 2017-08-16 20:22:58 +02:00
Nat Goodspeed 2368c44a8e DRTVWR-418: Disable another fragile llcorehttp memory-usage check. 2017-08-15 16:31:17 -04:00
Rider Linden 79856e6554 MAINT-7634: Feedback from code review, move enum to string converter to own function. 2017-08-14 14:54:58 -07:00
Rider Linden 1038633526 MAINT-7634: Logging and instrumentation canges to narrow down viewer crashes. 2017-08-08 09:04:32 -07:00
Ansariel e0e09481df Merge Firestorm LGPL 2017-08-05 15:08:10 +02:00
Rider Linden 57d5744f2c MAINT-7634: Move StatsAccumulator into llcommon, collect data sent and error codes from core. 2017-07-28 14:07:25 -07:00
andreykproductengine f2e98838a4 MAINT-7495 Viewer retries too many time apon 504 from login.cgi 2017-07-24 17:06:12 +03:00
andreykproductengine 1a5fa01fb8 MAINT-7495 Viewer retries too many time apon 504 from login.cgi 2017-07-24 17:06:12 +03:00
Ansariel 2fff7fe963 Merge viewer-vivox 2017-04-20 00:33:01 +02:00
Oz Linden fd3628ef45 Change certificate store infrastructure to key off of the Subject Key
Id rather than sha1 hash, since that is rarely used in modern
certs. The previous form was storing trusted certs using an empty sha1
hash value as the key, which meant most certificates matched... not good.

Modify the LLCertException to pass certificate information back as
LLSD rather than an LLPointer<LLCertificate>, because when the
exception is being thown from the certificate constructor that results
in one of a couple of other exceptions (even refcounting won't save
you when the problem is that the thing you're pointing to never
finished coming into being properly).

Update the certificates in the llsechandler_basic_test to modern
conventions, and extend the classes to allow for an optional
validation date so that the test can use a fixed date. Also make all
the certificates include the plain text form for ease of reference.
2017-04-14 16:05:59 -04:00
Ansariel 915496bbea Merge viewer-vivox 2017-03-21 22:14:02 +01:00
Nicky e19d7a7490 Merge with viewer64. 2017-02-14 19:49:51 +01:00
Nat Goodspeed a0c1842595 DRTVWR-418: Fix syntax for previous test skip. 2017-02-13 16:53:18 -05:00
Nat Goodspeed a971909a34 DRTVWR-418: Reluctantly skip llcorehttp 503-with-retry test on W64. 2017-02-13 16:07:38 -05:00
Nicky 4ff3d43ee8 Merge #7 with lgpl. 2017-02-06 12:26:14 +01:00
Nicky 6d3df79ea9 Merge #3 with lgpl. 2017-02-06 12:07:45 +01:00
Nat Goodspeed 434f0e161a Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2017-02-03 09:54:52 -05:00
Oz Linden 1925fd2b8b merge changes for 5.0.1-release 2017-02-02 15:49:16 -05:00
Nicky 2290d5ed16 Merge with viewer64, first pass. 2017-01-10 19:33:15 +01:00
Nat Goodspeed 40fb9d3e58 DRTVWR-418: Use U32 for int (and hex) of HttpStatus in 64-bit too.
Turns out that Monty didn't intend for the int-flavored representation of
HttpStatus to expand to 64 bits even when unsigned long is that wide. So
change the implicit conversion operator, and its uses, to U32 instead. That
produces a consistent toHex() result for both 32-bit and 64-bit builds.
2016-12-19 16:30:19 -05:00
Nat Goodspeed a4b0159d57 DRTVWR-418: Adjust HttpStatus::toHex() test for 64-bit result. 2016-12-16 19:05:59 -05:00
Ansariel 31be233b66 Merge viewer-lynx 2016-12-15 09:46:35 +01:00
andreykproductengine dcff9513f1 MAINT-6978 Proxy should not be initialized outside of startLLProxy() 2016-12-13 20:29:07 +02:00
Nat Goodspeed 771c7dd3c0 DRTVWR-418: Update some copy commands for 3p library versions. 2016-12-10 12:12:51 -05:00
Nat Goodspeed b6dc755786 Automated merge with ssh://bitbucket.org/lindenlab/viewer-skip-llcorehttp-test 2016-12-08 14:27:40 -05:00
Nat Goodspeed e6513c1eee DRTVWR-418: Change Mac build_directory to build-darwin-x86_64
since we no longer support 32-bit Mac builds.

The old build-darwin-i386 directory name appeared in a shocking number of
files. Change CMake paths to use ${CMAKE_BINARY_DIR} -- or, when trying to
find the packages subdirectory, ${AUTOBUILD_INSTALL_DIR}. Change the rest to
at least look for build-darwin-*.
2016-12-08 12:31:30 -05:00
Nat Goodspeed ba83360f56 DRTVWR-418: Merge backout that restores llcorehttp tests. 2016-12-07 22:50:25 -05:00
Nat Goodspeed 938b803d89 Backed out changeset fbcb5f5fb015: restore llcorehttp tests. 2016-12-07 22:49:59 -05:00
Nat Goodspeed 50a3f19f1a DRTVWR-418: Overriding shutdown_request() wasn't the issue. Remove. 2016-12-07 22:49:32 -05:00
Oz Linden 4eca1769e9 merge changes for nats updates for llcorehttp 2016-12-07 19:15:33 -05:00
Nat Goodspeed 6dd0a500ea Automated merge with ssh://bitbucket.org/lindenlab/viewer-skip-llcorehttp-test 2016-12-07 16:06:32 -05:00
Nat Goodspeed 5bb456d80c DRTVWR-418: Apparently (some) Windows hosts still need freeport().
This is the function in indra/llmessage/tests/testrunner.py that iterates
through ports in a specified range, looking for an available one. Other
platforms understand a specification of port 0 to mean: "You pick one. I'll
just use whichever one you picked."
2016-12-07 14:10:32 -05:00
Oz Linden 07a36b1da4 big hammer - temporarily disable llcorehttp tests completely 2016-12-07 11:51:42 -05:00
Nat Goodspeed 0a9794398c DRTVWR-418: Suppress llcorehttp tests until we solve TC harness issues. 2016-12-07 11:48:20 -05:00
Oz Linden 232c359854 merge nats even newer fix for the llcorehttp test 2016-12-07 10:09:58 -05:00
Nat Goodspeed 0532e298a0 DRTVWR-418: Reinstate test that we THOUGHT was killing test run.
But since the real problem is quite different, try with that suspected test
restored.
2016-12-07 10:05:24 -05:00
Nat Goodspeed e1482838fe DRTVWR-418: Fix a couple variable references in debugging output. 2016-12-07 09:44:55 -05:00
Nat Goodspeed a4ba22fecc DRTVWR-418: Revamp testrunner to shutdown server Thread at end.
Instead of having testrunner.run()'s caller pass a Thread object on which to
run the caller's server instance's serve_forever() method, just pass the
server instance. testrunner.run() now constructs the Thread. This API change
allows run() to also call shutdown() on the server instance when done, and
then join() the Thread.

The hope is that this will avoid the Python runtime forcing the process
termination code to 1 due to forcibly killing the daemon thread still running
serve_forever().

While at it, eliminate calls to testrunner.freeport() -- just make the runtime
pick a suitable port instead.
2016-12-07 09:30:49 -05:00
Nat Goodspeed e1b0317c04 DRTVWR-418: Remove duplicate testrunner.py 2016-12-06 19:44:57 -05:00
Oz Linden 86bd3ffa47 pick up latest fixes from nat 2016-12-06 17:33:23 -05:00
Nat Goodspeed 40b1913af3 DRTVWR-418: Fix minor error in forwarding shutdown_request() call. 2016-12-06 16:20:43 -05:00
Nat Goodspeed 43c9a7d706 Fix minor error in forwarding shutdown_request() call. 2016-12-06 16:19:32 -05:00
Nat Goodspeed e47b178fb9 Try even harder to ignore errors in llcorehttp's dummy server. 2016-12-06 16:09:26 -05:00
Nat Goodspeed 4aae3e8eb4 DRTVWR-418: Try harder to ignore errors in llcorehttp's dummy server. 2016-12-06 16:07:05 -05:00
Nat Goodspeed 4c89e6dea0 DRTVWR-418: Skip the whole of the failing llcorehttp test function. 2016-12-06 15:38:31 -05:00
Oz Linden adf74f8ced merge skip of llcorehttp failing test 2016-12-06 14:58:06 -05:00
Nat Goodspeed 8948c4f001 DRTVWR-418: Skip the llcorehttp test that breaks test machinery.
Loath though I am to skip testing, this consistent failure is not a failure in
the software being tested (llcorehttp) but rather in the dummy server with
which we're testing it.
2016-12-06 14:22:42 -05:00
Oz Linden 26e1f59dcb pull in hack to comment out llcorehttp_test 2016-12-06 13:07:48 -05:00
Oz Linden f43768414d comment out llcorehttp_test until it can be debugged again 2016-12-06 13:07:10 -05:00
Nat Goodspeed 780120dc46 DRTVWR-418: Remove ThreadingMixin from our HTTPServer subclass.
It's possible that raising an exception in a worker thread -- even though
we're TRYING to suppress it -- is what's causing the process to terminate with
nonzero rc.
2016-12-06 12:19:01 -05:00
Nat Goodspeed e9a9e3d4ba DRTVWR-418: Try for more llcorehttp tests error diagnostics. 2016-12-06 09:32:36 -05:00
Nat Goodspeed 73a7b14013 DRTVWR-418: Fold redundant testrunner.py modules together again.
llcorehttp/tests had a clone of llmessage/tests/testrunner.py that was almost
identical save for recognizing an extra optional parameter. Migrate those few
lines into llmessage/tests/testrunner.py; eliminate the copy in llcorehttp;
help test_llcorehttp_peer.py find the testrunner.py in llmessage/tests.
2016-11-17 17:46:50 -05:00
Oz Linden fd2ccb1606 merge changes for 4.1.2-release 2016-11-16 09:52:59 -05:00
Nat Goodspeed af349febb3 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2016-11-16 09:17:44 -05:00
Ansariel c182741596 Merge viewer-lynx 2016-11-16 09:55:54 +01:00
AndreyL ProductEngine 7fceb3a63f Merged in lindenlab/viewer-cleanup 2016-11-14 22:04:37 +02:00
nat@linux-build-phx8.lindenlab.com d80145bf0f MAINT-5232: Ensure BOOST_SYSTEM_LIBRARY follows BOOST_THREAD_LIBRARY.
In recent versions of Boost, BOOST_THREAD_LIBRARY depends on
BOOST_SYSTEM_LIBRARY. In llcorehttp/CMakeLists.txt, these were
incorrectly ordered for Linux. Somewhat oddly, that appears to have
caused Linux link errors even in llmath. Fix at least this problem.
2016-09-27 16:28:16 +00:00
Nat Goodspeed f4ecfd9cb9 MAINT-5232: Disable unrealistic failing checks on GetMemTotal(). 2016-09-27 10:41:24 -04:00
Nat Goodspeed acbee7ffab MAINT-5232: Give up on running mem test twice: doesn't work 2016-09-27 10:36:14 -04:00
Nat Goodspeed 1a34afb1cc MAINT-5232: Try workaround for dubious llcorehttp mem usage test. 2016-09-23 06:16:46 -07:00
Nat Goodspeed c92eb7e591 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2016-08-30 11:36:06 -04:00
Ansariel d47f8e1abe Merge viewer-bear 2016-08-10 21:29:01 +02:00
Oz Linden ba93f428e3 correct cut/paste error for setting PO_HTTP_PROXY, and add logging 2016-07-28 13:19:34 -04:00
Glenn Glazer 5ab6b73d57 MAINT-6585: redirect elementtree to llbase version 2016-07-21 14:03:19 -07:00
Glenn Glazer 3ea324c1c4 MAINT=6585: migrate from local python libraries to canonical llbase 2016-07-20 11:47:08 -07:00
callum_linden 9c4ed8d113 Automated merge with tip of viewer-release to pick up 4.0.5 2016-05-19 11:00:03 -07:00
callum_linden b50df60aa1 DRTVWR-418 remove vestiges of TCMALLOC and GooglePerfTools from the viewer 2016-04-21 16:13:39 -07:00
Ansariel 2797c5938a Merge Firestorm LGPL 2016-04-05 10:47:23 +02:00
Oz Linden 9be58e915a merge with 4.0.3-release 2016-04-04 15:53:09 -04:00
Nicky a50faa943c Merge. 2016-04-01 12:59:37 +02:00
Ansariel 49fa26329b Merge Firestorm LGPL 2016-03-08 09:08:56 +01:00
Ansariel faf58a81eb Merge viewer-bear 2016-03-08 09:08:20 +01:00
Ansariel 3192fe832f Merge viewer-quickgraphics 2016-03-08 01:41:31 +01:00
Rider Linden d51a5a615a Merge 2016-03-07 10:24:39 -08:00
Oz Linden c7ebeb8420 merge with El Capitan and packaging fixes 2016-03-07 09:46:02 -05:00
Ansariel 5d325f4007 Merge viewer-quickgraphics 2016-03-05 00:37:52 +01:00
Nicky 04a14f5599 Fix my own typos ... 2016-03-01 01:08:53 +01:00
Nicky cb0017e821 Merge. 2016-02-29 14:23:07 +01:00
Nicky 447493f484 Merge. 2016-02-29 14:15:48 +01:00
Rider Linden bfabb7bd2b MAINT-6137: Re enable pipelining by default, use new version of CURL (7.47) with corrections for timed out connections in pipelining. Minor fix for safer op retrieval. 2016-02-19 11:19:50 -08:00
JJ Linden 47f6782ad0 kludge for darwin builds on el capitan 2016-02-17 16:46:40 -08:00
Nicky 8b743a2522 Try to detect if some AV messes up http pipelining, if it happens, switch http pipelining off. 2016-02-13 21:58:50 +01:00
Nicky 0184c2fc83 Merge with https://bitbucket.org/rider_linden/maint-4952-v-t-u 2016-01-25 15:06:34 +01:00
Rider Linden 37286b3d39 MAINT-5915: Put in some extra null checks around completed HTTP checks to try and eliminate a crash in the wild. 2016-01-21 16:08:07 -08:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
Nicky c218e524b2 Merge - Step 1; Still enough to do. 2015-10-26 20:20:13 +01:00
rider 7c56430258 MAINT-5271: Microsoft is just too permissive. 2015-10-16 12:15:33 -07:00
Rider Linden 8d334ca1bf MAINT-5271: Converted internal pointers to internal operation to managed shared pointers. Removed direct cast and dereference of handles. 2015-10-16 11:40:48 -07:00
Rider Linden 6ff0bff8f0 Another fix for unit tests. Missed on Windows. 2015-10-15 11:42:43 -07:00
Rider Linden b30e408a42 MAINT-5732: Update unit tests 2015-10-15 11:03:13 -07:00
Rider Linden 3fdd5abf96 MAINT-5732: Issue in texture_load example and some comments regarding NoOpDeletor 2015-10-15 10:12:58 -07:00
rider eca891e261 MAINT-5732: Fixes for Mac build 2015-10-15 09:32:19 -07:00
Rider Linden bbb9d4f21b MAINT-5732: Change to the way event polling handles error conditions and cancel calls.
Refactor any remaining LLCore::HTTPHandlers to use boost::shared_ptr
Started minor refactor in the materials manager into coroutines (unfinished)
2015-10-14 17:46:24 -07:00
Rider Linden 2d2c90157d Remove ares dependency from build. 2015-09-23 15:48:06 -07:00
Rider Linden 2a37a8b1cc Add cleanup to LLCore prevent occasional crash on exit. 2015-09-21 17:01:26 -07:00
Rider Linden 907efc9cc9 MAINT-5507: Remove llcurl, move constant values and untilities to llcorehttp lib 2015-09-15 17:01:26 -07:00
Rider Linden 921478803c Break circular dep. Things get cranky. 2015-08-19 09:07:50 -07:00
Rider Linden 6a6e914286 MAINT-5506: Establish circular dependency between LLMessage & LLCoreHttp 2015-08-18 16:35:03 -07:00
Rider Linden 248d61fe0e MAINT-5500: Finish converting the AIS responders to the new coroutine model, Cleaned up dead an unused code.
MAINT-4952: Added COPY and MOVE methods to Core:Http adapter
2015-08-12 16:32:49 -07:00
Nat Goodspeed 9bde72f784 Automated merge with file:///Users/nat/linden/maint-4952-v-t-u 2015-07-10 19:37:19 -04:00
Nat Goodspeed 768ef45067 Merge suppress http_proxy in INTEGRATION_TEST_llcorehttp 2015-07-09 21:44:02 -04:00
Nat Goodspeed 657944cda7 Suppress http_proxy env var for llcorehttp integration test.
Sometimes it can be useful to have http_proxy set in the environment, but if
we leave it set while INTEGRATION_TEST_llcorehttp is running, the test hangs.
Suppress that variable for that integration test.
2015-07-09 21:42:34 -04:00