From 99016f5b4a3d95fddb6c3f95beb95e59f81489a2 Mon Sep 17 00:00:00 2001
From: Cameron <e107inc@gmail.com>
Date: Wed, 1 Jul 2020 13:02:58 -0700
Subject: [PATCH] Fix for error: session_start(): Failed to decode session
 object under some circumstances when 'db' method is used. 'session' set as
 default user tracking.

---
 e107_core/sql/core_sql.php              |  2 +-
 e107_core/xml/default_install.xml       |  2 +-
 e107_tests/tests/unit/e_sessionTest.php | 13 +++++++++++++
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/e107_core/sql/core_sql.php b/e107_core/sql/core_sql.php
index e42b3b210..b7ce4474b 100755
--- a/e107_core/sql/core_sql.php
+++ b/e107_core/sql/core_sql.php
@@ -476,7 +476,7 @@ CREATE TABLE session (
   session_id varchar(250) NOT NULL default '',
   session_expires int(10) unsigned NOT NULL default 0,
   session_user int(10) unsigned default NULL,
-  session_data text NOT NULL,
+  session_data mediumtext NOT NULL,
   PRIMARY KEY  (session_id)
 ) ENGINE=MyISAM;
 # --------------------------------------------------------
diff --git a/e107_core/xml/default_install.xml b/e107_core/xml/default_install.xml
index 08f26e96b..2bf3325dd 100644
--- a/e107_core/xml/default_install.xml
+++ b/e107_core/xml/default_install.xml
@@ -402,7 +402,7 @@ City, State, Country
 		<core name="user_reg">1</core>
 		<core name="user_reg_secureveri">1</core>
 		<core name="user_reg_veri">1</core>
-		<core name="user_tracking">cookie</core>
+		<core name="user_tracking">session</core>
 		<core name="version">2.2.0</core>
 		<core name="wm_enclose">1</core>
 		<core name="wmessage_sc">0</core>
diff --git a/e107_tests/tests/unit/e_sessionTest.php b/e107_tests/tests/unit/e_sessionTest.php
index 8233ea284..edaf7d309 100644
--- a/e107_tests/tests/unit/e_sessionTest.php
+++ b/e107_tests/tests/unit/e_sessionTest.php
@@ -47,6 +47,19 @@
 			$this->assertEquals($opt,$newOpt);
 
 
+		}
+
+		public function testSetGet()
+		{
+			$expected = '123456';
+
+			$this->sess->set('whatever', $expected);
+
+			$result = $this->sess->get('whatever');
+
+			$this->assertEquals($expected, $result);
+
+
 		}
 /*
 		public function testGetOption()