From 915689dd79c23128d01ef6356ba8881a3a25d37d Mon Sep 17 00:00:00 2001 From: rabuzarus <> Date: Mon, 7 Nov 2016 22:12:11 +0100 Subject: [PATCH 1/3] chache: check for valid serialized data + uncomment caching of contact suggestion --- include/cache.php | 21 +++++++++++++++++---- include/socgraph.php | 19 +++++++++++++------ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/include/cache.php b/include/cache.php index b8016ac45..eee61dcd9 100644 --- a/include/cache.php +++ b/include/cache.php @@ -84,9 +84,14 @@ class Cache { $memcache = self::memcache(); if (is_object($memcache)) { // We fetch with the hostname as key to avoid problems with other applications - $value = $memcache->get(get_app()->get_hostname().":".$key); - if (!is_bool($value)) { - return unserialize($value); + $cached = $memcache->get(get_app()->get_hostname().":".$key); + $value = @unserialize($cached); + + // Only return a value if the serialized value is valid and + // We also check if the db entry is a serialized + // boolean 'false' value which we want to return) + if ($cached === 'b:0;' || $value !== false) { + return $value; } return null; @@ -100,7 +105,15 @@ class Cache { ); if (dbm::is_result($r)) { - return unserialize($r[0]['v']); + $cached = $r[0]['v']; + $value = @unserialize($cached); + + // Only return a value if the serialized value is valid and + // We also check if the db entry is a serialized + // boolean 'false' value which we want to return) + if ($cached === 'b:0;' || $value !== false) { + return $value; + } } return null; diff --git a/include/socgraph.php b/include/socgraph.php index 349869c40..d4ecec459 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -1079,10 +1079,12 @@ function suggestion_query($uid, $start = 0, $limit = 80) { return array(); } - $list = Cache::get("suggestion_query:".$uid.":".$start.":".$limit); - if (!is_null($list)) { - return $list; - } +// Uncommented because the result of the queries are to big to store it in the cache +// We need to decide if we want to change the db column type or if we want to delte it +// $list = Cache::get("suggestion_query:".$uid.":".$start.":".$limit); +// if (!is_null($list)) { +// return $list; +// } $network = array(NETWORK_DFRN); @@ -1116,7 +1118,10 @@ function suggestion_query($uid, $start = 0, $limit = 80) { ); if (count($r) && count($r) >= ($limit -1)) { - Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $r, CACHE_FIVE_MINUTES); +// Uncommented because the result of the queries are to big to store it in the cache +// We need to decide if we want to change the db column type or if we want to delte it +// Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $r, CACHE_FIVE_MINUTES); + return $r; } @@ -1147,7 +1152,9 @@ function suggestion_query($uid, $start = 0, $limit = 80) { while (sizeof($list) > ($limit)) array_pop($list); - Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $list, CACHE_FIVE_MINUTES); +// Uncommented because the result of the queries are to big to store it in the cache +// We need to decide if we want to change the db column type or if we want to delte it +// Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $list, CACHE_FIVE_MINUTES); return $list; } From a337021c319f417250546bcd8edab5d85d25287d Mon Sep 17 00:00:00 2001 From: rabuzarus <> Date: Mon, 7 Nov 2016 22:20:13 +0100 Subject: [PATCH 2/3] chache: correct misspelling --- include/cache.php | 8 ++++---- include/socgraph.php | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/cache.php b/include/cache.php index eee61dcd9..0d12f8aef 100644 --- a/include/cache.php +++ b/include/cache.php @@ -87,9 +87,9 @@ class Cache { $cached = $memcache->get(get_app()->get_hostname().":".$key); $value = @unserialize($cached); - // Only return a value if the serialized value is valid and + // Only return a value if the serialized value is valid. // We also check if the db entry is a serialized - // boolean 'false' value which we want to return) + // boolean 'false' value (which we want to return). if ($cached === 'b:0;' || $value !== false) { return $value; } @@ -108,9 +108,9 @@ class Cache { $cached = $r[0]['v']; $value = @unserialize($cached); - // Only return a value if the serialized value is valid and + // Only return a value if the serialized value is valid. // We also check if the db entry is a serialized - // boolean 'false' value which we want to return) + // boolean 'false' value (which we want to return). if ($cached === 'b:0;' || $value !== false) { return $value; } diff --git a/include/socgraph.php b/include/socgraph.php index d4ecec459..421a68cc9 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -1079,8 +1079,8 @@ function suggestion_query($uid, $start = 0, $limit = 80) { return array(); } -// Uncommented because the result of the queries are to big to store it in the cache -// We need to decide if we want to change the db column type or if we want to delte it +// Uncommented because the result of the queries are to big to store it in the cache. +// We need to decide if we want to change the db column type or if we want to delete it. // $list = Cache::get("suggestion_query:".$uid.":".$start.":".$limit); // if (!is_null($list)) { // return $list; @@ -1118,8 +1118,8 @@ function suggestion_query($uid, $start = 0, $limit = 80) { ); if (count($r) && count($r) >= ($limit -1)) { -// Uncommented because the result of the queries are to big to store it in the cache -// We need to decide if we want to change the db column type or if we want to delte it +// Uncommented because the result of the queries are to big to store it in the cache. +// We need to decide if we want to change the db column type or if we want to delete it. // Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $r, CACHE_FIVE_MINUTES); return $r; @@ -1152,8 +1152,8 @@ function suggestion_query($uid, $start = 0, $limit = 80) { while (sizeof($list) > ($limit)) array_pop($list); -// Uncommented because the result of the queries are to big to store it in the cache -// We need to decide if we want to change the db column type or if we want to delte it +// Uncommented because the result of the queries are to big to store it in the cache. +// We need to decide if we want to change the db column type or if we want to delete it. // Cache::set("suggestion_query:".$uid.":".$start.":".$limit, $list, CACHE_FIVE_MINUTES); return $list; } From 721ac5fb9e8119f1fcf2191a0004c2165a3f3dc3 Mon Sep 17 00:00:00 2001 From: rabuzarus Date: Sun, 20 Nov 2016 17:32:37 +0100 Subject: [PATCH 3/3] cache: use unserialize(false) --- include/cache.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/cache.php b/include/cache.php index 0d12f8aef..e8af8f9de 100644 --- a/include/cache.php +++ b/include/cache.php @@ -90,7 +90,7 @@ class Cache { // Only return a value if the serialized value is valid. // We also check if the db entry is a serialized // boolean 'false' value (which we want to return). - if ($cached === 'b:0;' || $value !== false) { + if ($cached === serialize(false) || $value !== false) { return $value; } @@ -111,7 +111,7 @@ class Cache { // Only return a value if the serialized value is valid. // We also check if the db entry is a serialized // boolean 'false' value (which we want to return). - if ($cached === 'b:0;' || $value !== false) { + if ($cached === serialize(false) || $value !== false) { return $value; } }