f5252b569a
Squash-merge of Jan's #608 and Otto's #611. * r3726: * Updated closure compiler flags for static JS files. * r3729: * Centralize parsing of FetchHttps in SystemRewriteOptions so ngx_pagespeed can get it too. * To keep the helpful error_message from SerfUrlAsyncFetcher, wire it through RewriteOptions as a new-fangled error_detail. * r3735: * Follow-up changes for downstream caching integration with beaconing dependent filters: If a downstream cache rebeaconing key is configured, we should instrument the page only if the key present in the PS-ShouldBeacon header matches the one in the configuration. This allows us to send no-cache headers for anything that carries the right beaconing key, and continue to send out the original cache control headers in other cases where downstream caching is enabled. * Native fetcher: fortify handling of content length (and absense). * Native fetcher: fail when the stream terminates before having completely parsed the headers. * Tests: Rename `test_filter` -> `start_test` in ngx_system_test.sh for a test. * Tests: Move blockingrewrite key to the http {} block. * Tests: Update localhost -> 127.0.0.1. The native fetcher uses dns to resolve, and won't be able to retreive an ip for localhost. * Tests: Allow outstanding proxy fetches some time to finish when running under valgrind, before terminating nginx. * Valgrind: Add suppressions to make testing a release build pass. This pull update was extra work because the valgrind and native fetcher flows had rotted a bit. We need to make sure to test them with every update.
166 lines
4.0 KiB
Plaintext
166 lines
4.0 KiB
Plaintext
# Copyright 2013 Google Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
# Author: oschaaf@we-amp.com (Otto van der Schaaf)
|
|
|
|
|
|
# The first few suppressions can be found in other modules
|
|
# and easily found when searched for, and seem false positives.
|
|
{
|
|
<nginx false positive>
|
|
Memcheck:Param
|
|
socketcall.sendmsg(msg.msg_iov[i])
|
|
fun:__sendmsg_nocancel
|
|
fun:ngx_write_channel
|
|
fun:ngx_signal_worker_processes
|
|
fun:ngx_master_process_cycle
|
|
fun:main
|
|
}
|
|
{
|
|
<nginx false positive>
|
|
Memcheck:Param
|
|
socketcall.sendmsg(msg.msg_iov[i])
|
|
fun:__sendmsg_nocancel
|
|
fun:ngx_write_channel
|
|
fun:ngx_master_process_cycle
|
|
fun:main
|
|
}
|
|
{
|
|
<nginx false positive>
|
|
Memcheck:Param
|
|
socketcall.sendmsg(msg.msg_iov[i])
|
|
fun:__sendmsg_nocancel
|
|
fun:ngx_write_channel
|
|
fun:ngx_pass_open_channel
|
|
fun:ngx_start_cache_manager_processes
|
|
fun:ngx_master_process_cycle
|
|
fun:main
|
|
}
|
|
{
|
|
<nginx false positive>
|
|
Memcheck:Param
|
|
socketcall.sendmsg(msg.msg_iov[i])
|
|
fun:__sendmsg_nocancel
|
|
fun:ngx_write_channel
|
|
fun:ngx_pass_open_channel
|
|
fun:ngx_start_cache_manager_processes
|
|
fun:ngx_master_process_cycle
|
|
fun:main
|
|
}
|
|
{
|
|
<nginx false positive>
|
|
Memcheck:Leak
|
|
fun:malloc
|
|
fun:ngx_alloc
|
|
fun:ngx_event_process_init
|
|
fun:ngx_worker_process_init
|
|
fun:ngx_worker_process_cycle
|
|
fun:ngx_spawn_process
|
|
fun:ngx_start_worker_processes
|
|
fun:ngx_master_process_cycle
|
|
fun:main
|
|
}
|
|
{
|
|
<nginx false positive>
|
|
Memcheck:Param
|
|
socketcall.sendmsg(msg.msg_iov[i])
|
|
fun:__sendmsg_nocancel
|
|
fun:ngx_write_channel
|
|
fun:ngx_pass_open_channel
|
|
fun:ngx_start_worker_processes
|
|
fun:ngx_master_process_cycle
|
|
fun:main
|
|
}
|
|
|
|
# similar to http://trac.nginx.org/nginx/ticket/369
|
|
{
|
|
<nginx false positive>
|
|
Memcheck:Param
|
|
pwrite64(buf)
|
|
obj:/lib/x86_64-linux-gnu/libpthread-2.15.so
|
|
fun:ngx_write_file
|
|
fun:ngx_write_chain_to_file
|
|
fun:ngx_write_chain_to_temp_file
|
|
fun:ngx_event_pipe_write_chain_to_temp_file
|
|
fun:ngx_event_pipe
|
|
fun:ngx_http_upstream_process_upstream
|
|
fun:ngx_http_upstream_process_header
|
|
fun:ngx_http_upstream_handler
|
|
fun:ngx_epoll_process_events
|
|
fun:ngx_process_events_and_timers
|
|
fun:ngx_worker_process_cycle
|
|
}
|
|
# Mentioned in https://github.com/pagespeed/ngx_pagespeed/issues/103
|
|
# Assuming a false postives as the issue is closed.
|
|
{
|
|
<nginx false positive>
|
|
Memcheck:Param
|
|
write(buf)
|
|
obj:/lib/x86_64-linux-gnu/libpthread-2.15.so
|
|
fun:ngx_log_error_core
|
|
fun:ngx_http_parse_complex_uri
|
|
fun:ngx_http_process_request_uri
|
|
fun:ngx_http_process_request_line
|
|
fun:ngx_http_wait_request_handler
|
|
fun:ngx_epoll_process_events
|
|
fun:ngx_process_events_and_timers
|
|
fun:ngx_worker_process_cycle
|
|
fun:ngx_spawn_process
|
|
fun:ngx_start_worker_processes
|
|
fun:ngx_master_process_cycle
|
|
}
|
|
|
|
# Extra suppresions for testing in release mode:
|
|
|
|
{
|
|
<re2 uninitialised value in optimized code>
|
|
Memcheck:Cond
|
|
fun:_ZN3re24Prog8OptimizeEv
|
|
...
|
|
}
|
|
{
|
|
<re2 uninitialised value in optimized code>
|
|
Memcheck:Value8
|
|
fun:_ZN3re24Prog8OptimizeEv
|
|
...
|
|
}
|
|
|
|
{
|
|
<re2 uninitialised value in optimized code>
|
|
Memcheck:Cond
|
|
fun:_ZN3re2L4AddQEPNS_9SparseSetEi
|
|
...
|
|
}
|
|
|
|
{
|
|
<re2 uninitialised value in optimized code>
|
|
Memcheck:Value8
|
|
fun:_ZN3re2L4AddQEPNS_9SparseSetEi
|
|
...
|
|
}
|
|
|
|
{
|
|
<re2 uninitialized value in optimized code>
|
|
Memcheck:Value8
|
|
fun:_ZN3re23DFA10AddToQueueEPNS0_5WorkqEij
|
|
...
|
|
}
|
|
|
|
{
|
|
<re2 uninitialized value in optimized code>
|
|
Memcheck:Cond
|
|
fun:_ZN3re23DFA10AddToQueueEPNS0_5WorkqEij
|
|
...
|
|
}
|