25142497 Updated memcached to version 1.4.33
authorRich Burridge <rich.burridge@oracle.com>
Tue, 13 Dec 2016 06:38:49 -0800
changeset 7487 6506549e143f
parent 7486 57b5a32e1ae4
child 7493 46e92ce6f797
25142497 Updated memcached to version 1.4.33 25139575 problem in DATABASE/MEMCACHED
components/memcached/Makefile
components/memcached/memcached.license
components/memcached/memcached.p5m
components/memcached/patches/02-lru-maintainer.patch
components/memcached/patches/03-fix-build.patch
components/memcached/test/results-64.master
--- a/components/memcached/Makefile	Fri Dec 02 08:08:33 2016 -0800
+++ b/components/memcached/Makefile	Tue Dec 13 06:38:49 2016 -0800
@@ -26,14 +26,14 @@
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		memcached
-COMPONENT_VERSION=	1.4.25
+COMPONENT_VERSION=	1.4.33
 COMPONENT_PROJECT_URL=	http://memcached.org/
 COMPONENT_ARCHIVE_HASH=	\
-	sha256:f058437b3c224d321919a9a6bb4e3eedb2312ed718c0caf087ff2f04ab795dda
+    sha256:83726c8d68258c56712373072abb25a449c257398075a39ec0867fd8ba69771d
 COMPONENT_ARCHIVE_URL=	http://memcached.org/files/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	database/memcached
 
-TPNO=			31391
+TPNO=			32788
 
 include $(WS_MAKE_RULES)/common.mk
 
@@ -42,8 +42,6 @@
 COMPONENT_PRE_CONFIGURE_ACTION = \
     ($(CLONEY) $(SOURCE_DIR) $(@D))
 
-COMPONENT_TEST_TARGETS=	test
-
 studio_OPT = -xO5
 
 CFLAGS += -D__ATTRIBUTE_DISABLED
@@ -61,12 +59,16 @@
 
 # lru-maintainer.t is inconsistent and usually fails.
 
-# Transforms remove unnecessary text from results
+COMPONENT_TEST_TARGETS=	test
+
+# Just retain test result output that's useful.
 COMPONENT_TEST_TRANSFORMS += \
-	'-e "s|\(failed to listen on TCP port \).*|\1|" ' \
-	'-e "s|\(Tests=6851\).*|\1|" '\
-	'-e "/\(slab class\).*/d" ' \
-	'-e "/\(<\).*/d" ' 
+	'-n ' \
+	'-e "/^ok/p" ' \
+	'-e "/ ok/p" ' \
+	'-e "/^not ok/p" ' \
+	'-e "/^All tests/p" ' \
+	'-e "/^Result/p" '
 
 REQUIRED_PACKAGES += library/libevent
 REQUIRED_PACKAGES += shell/ksh93
--- a/components/memcached/memcached.license	Fri Dec 02 08:08:33 2016 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-Copyright (c) 2003, Danga Interactive, Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-
-    * Neither the name of the Danga Interactive nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--- a/components/memcached/memcached.p5m	Fri Dec 02 08:08:33 2016 -0800
+++ b/components/memcached/memcached.p5m	Tue Dec 13 06:38:49 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
@@ -43,4 +43,4 @@
 file path=usr/lib/memcached mode=0555
 file Solaris/memcached.8 path=usr/share/man/man8/memcached.8
 #
-license memcached.license license=BSD
+license COPYING license=BSD
--- a/components/memcached/patches/02-lru-maintainer.patch	Fri Dec 02 08:08:33 2016 -0800
+++ b/components/memcached/patches/02-lru-maintainer.patch	Tue Dec 13 06:38:49 2016 -0800
@@ -1,19 +1,34 @@
 Ignore lru-maintainer.t because it is inconsistent.
 Upstream is irresponsible https://groups.google.com/forum/#!topic/memcached/35wG9noM9rM
 
---- a/t/lru-maintainer.t	2015-11-18 22:49:43.000000000 -0800
-+++ /dev/null	2016-09-20 11:14:16.000000000 -0700
-@@ -1,90 +0,0 @@
+--- memcached-1.4.33/t/lru-maintainer.t.orig	2016-11-23 08:09:00.238033621 +0000
++++ memcached-1.4.33/t/lru-maintainer.t	1969-12-31 16:00:00.000000000 +0000
+@@ -1,105 +0,0 @@
 -#!/usr/bin/perl
 -
 -use strict;
--use Test::More tests => 224;
+-use warnings;
+-use Test::More tests => 225;
 -use FindBin qw($Bin);
 -use lib "$Bin/lib";
 -use MemcachedTest;
 -
--my $server = new_memcached('-m 6 -o lru_maintainer,lru_crawler');
+-# Regression test for underestimating the size of items after the large memory
+-# change.
+-my $server = new_memcached('-m 3 -o lru_maintainer,lru_crawler');
 -my $sock = $server->sock;
+-my $keystub = "X"x200;
+-for (1 .. 15000) {
+-    print $sock "set $keystub$_ 0 0 2 noreply\r\nok\r\n";
+-}
+-# There's probably already an error on the wire, so we'll see that.
+-$keystub .= "20001";
+-print $sock "set $keystub 0 0 2\r\nok\r\n";
+-is(scalar <$sock>, "STORED\r\n", "stored key without OOM");
+-
+-# Basic tests
+-$server = new_memcached('-m 6 -o lru_maintainer,lru_crawler');
+-$sock = $server->sock;
 -
 -for (1 .. 10) {
 -    print $sock "set ifoo$_ 0 1 2\r\nok\r\n";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/memcached/patches/03-fix-build.patch	Tue Dec 13 06:38:49 2016 -0800
@@ -0,0 +1,29 @@
+Adjustments needed to get memcached version 1.4.33 to build with the Studio
+compiler on Solaris.
+
+These changes will be passed upstream.
+
+--- memcached-1.4.33/logger.c.orig	2016-11-23 07:59:46.959952180 +0000
++++ memcached-1.4.33/logger.c	2016-11-23 08:01:04.874324240 +0000
+@@ -7,6 +7,10 @@
+ #include <poll.h>
+ #include <ctype.h>
+ 
++#if !defined(HAVE_GCC_64ATOMICS) && defined(__sun)
++#include <atomic.h>
++#endif
++
+ #include "memcached.h"
+ #include "bipbuffer.h"
+ 
+--- memcached-1.4.33/memcached.c.orig	2016-11-23 08:01:32.066440520 +0000
++++ memcached-1.4.33/memcached.c	2016-11-23 08:01:55.766437536 +0000
+@@ -358,8 +358,6 @@
+                     sleep_time);
+         usleep((useconds_t) sleep_time * 1000000);
+     }
+-
+-    return NULL;
+ }
+ 
+ static int start_conn_timeout_thread() {
--- a/components/memcached/test/results-64.master	Fri Dec 02 08:08:33 2016 -0800
+++ b/components/memcached/test/results-64.master	Tue Dec 13 06:38:49 2016 -0800
@@ -1,18 +1,3 @@
-make[1]: Entering directory '$(@D)'
-./sizes
-Slab Stats	64
-Thread stats	-8568
-Global stats	304
-Settings	184
-Item (no cas)	48
-Item (cas)	56
-Libevent thread	176
-Connection	528
-----------------------------------------
-libevent thread cumulative	4408
-Thread stats cumulative		4232
-./testapp
-1..52
 ok 1 - cache_create
 ok 2 - cache_constructor
 ok 3 - cache_constructor_fail
@@ -63,78 +48,60 @@
 ok 48 - binary_stat
 ok 49 - binary_illegal
 ok 50 - binary_pipeline_hickup
-Signal handled: Interrupt.
 ok 51 - shutdown
 ok 52 - stop_server
-prove ./t
-getaddrinfo(): node name or service name not known
-failed to listen on TCP port 
-Invalid value for binding protocol: http
- -- should be one of auto, binary, or ascii
-Number of threads must be greater than 0
-t/00-startup.t ....... ok
-t/64bit.t ............ ok
-t/binary-get.t ....... ok
-This server is not built with SASL support.
-t/binary-sasl.t ...... ok
-t/binary.t ........... ok
-t/bogus-commands.t ... ok
-t/cas.t .............. ok
-t/daemonize.t ........ ok
-t/dash-M.t ........... ok
-t/evictions.t ........ ok
-t/expirations.t ...... ok
-t/flags.t ............ ok
-t/flush-all.t ........ ok
-t/getset.t ........... ok
-t/incrdecr.t ......... ok
-t/issue_104.t ........ ok
-t/issue_108.t ........ ok
-t/issue_14.t ......... ok
-t/issue_140.t ........ skipped: Fix for Issue 140 was only an illusion
-t/issue_152.t ........ ok
-t/issue_163.t ........ ok
-t/issue_183.t ........ ok
-t/issue_192.t ........ ok
-t/issue_22.t ......... ok
-t/issue_260.t ........ skipped: Only possible to test #260 under artificial conditions
-t/issue_29.t ......... ok
-t/issue_3.t .......... ok
-t/issue_41.t ......... ok
-t/issue_42.t ......... ok
-t/issue_50.t ......... ok
-t/issue_61.t ......... ok
-t/issue_67.t ......... ok
-t/issue_68.t ......... ok
-t/issue_70.t ......... ok
-Item max size cannot be less than 1024 bytes.
-Cannot set item size limit higher than 128 mb.
-WARNING: Setting item max size above 1MB is not recommended!
- Raising this limit increases the minimum memory requirements
- and will decrease your memory efficiency.
-WARNING: Setting item max size above 1MB is not recommended!
- Raising this limit increases the minimum memory requirements
- and will decrease your memory efficiency.
-t/item_size_max.t .... ok
-t/line-lengths.t ..... ok
-t/lru-crawler.t ...... ok
-t/lru.t .............. ok
-t/maxconns.t ......... ok
-t/multiversioning.t .. ok
-t/noreply.t .......... ok
-t/refhang.t .......... ok
-t/slabs-reassign2.t .. ok
-t/slabs_reassign.t ... ok
-t/stats-conns.t ...... ok
-t/stats-detail.t ..... ok
-t/stats.t ............ ok
-t/touch.t ............ ok
-t/udp.t .............. ok
-t/unixsocket.t ....... ok
-fatal: Not a git repository (or any parent up to mount point /builds)
-Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
-t/whitespace.t ....... skipped: Skipping tests probably because you don't have git.
+t/00-startup.t .............. ok
+t/64bit.t ................... ok
+t/binary-get.t .............. ok
+t/binary-sasl.t ............. ok
+t/binary.t .................. ok
+t/bogus-commands.t .......... ok
+t/cas.t ..................... ok
+t/chunked-items.t ........... ok
+t/daemonize.t ............... ok
+t/dash-M.t .................. ok
+t/dyn-maxbytes.t ............ ok
+t/evictions.t ............... ok
+t/expirations.t ............. ok
+t/flags.t ................... ok
+t/flush-all.t ............... ok
+t/getset.t .................. ok
+t/idle-timeout.t ............ ok
+t/incrdecr.t ................ ok
+t/issue_104.t ............... ok
+t/issue_108.t ............... ok
+t/issue_14.t ................ ok
+t/issue_152.t ............... ok
+t/issue_163.t ............... ok
+t/issue_183.t ............... ok
+t/issue_192.t ............... ok
+t/issue_22.t ................ ok
+t/issue_29.t ................ ok
+t/issue_3.t ................. ok
+t/issue_41.t ................ ok
+t/issue_42.t ................ ok
+t/issue_50.t ................ ok
+t/issue_61.t ................ ok
+t/issue_67.t ................ ok
+t/issue_68.t ................ ok
+t/issue_70.t ................ ok
+t/item_size_max.t ........... ok
+t/line-lengths.t ............ ok
+t/lru-crawler.t ............. ok
+t/lru.t ..................... ok
+t/maxconns.t ................ ok
+t/multiversioning.t ......... ok
+t/noreply.t ................. ok
+t/refhang.t ................. ok
+t/slabs-reassign-chunked.t .. ok
+t/slabs-reassign2.t ......... ok
+t/slabs_reassign.t .......... ok
+t/stats-conns.t ............. ok
+t/stats-detail.t ............ ok
+t/stats.t ................... ok
+t/touch.t ................... ok
+t/udp.t ..................... ok
+t/unixsocket.t .............. ok
+t/watcher.t ................. ok
 All tests successful.
-Files=51, Tests=7296, 83 wallclock secs ( 1.13 usr  0.28 sys +  5.88 cusr  3.32 csys = 10.61 CPU)
 Result: PASS
-make[1]: Leaving directory '$(@D)'