Uploaded image for project: 'eZ Publish / Platform'
  1. eZ Publish / Platform
  2. EZP-26088

Exception when accessing my cluster installation using Redis with php7

    XMLWordPrintable

Details

    • Icon: Bug Bug
    • Resolution: Invalid
    • Icon: High High
    • QA tracked issues
    • 1.4.1
    • Caching, Documentation
    • Ubuntu 16.04
      php 7.0
      cluster with Redis
      Env: Prod

    Description

      I'm trying to configure cluster with php7.0 and redis.
      I installed redis server and redis extensions for php7

      My cluster configuration is set with 4 servers as:

      • Server1(Varnish in round robin) -
      • Server2 (ezdfs1)(with ezplatform) -> 10.0.5.2
      • Server3 (ezdfs1)(with ezplatform) -> 10.0.5.3
      • Server4 (with MariaDB DB) - 10.0.5.4

      My redis server on server2 (10.0.5.2), so I configured /etc/redis/redis.conf to accept all interfaces, commenting the "bind" line:

      # bind 127.0.0.1
      

      Regarding sessions, I have in php.ini:

      session.save_handler = redis
      session.save_path = "tcp://10.0.5.2:6379" ;sessions are kept in first server
      

      And I have my ezplatform set as:

      zpublish:
          # Repositories configuration, setup default repository to support solr if enabled
          repositories:
              default:
                  storage: ~
                  search:
                      engine: %search_engine%
                      connection: default
      
          # Siteaccess configuration, with one siteaccess per default
          siteaccess:
              list: [site]
              groups:
                  site_group: [site]
              default_siteaccess: site
              match:
                  URIElement: 1
      
          # System settings, grouped by siteaccess and/or siteaccess group
          http_cache:
              # As of 5.4 only use "http"
              # "single_http" and "multiple_http" are deprecated but will still work.
              purge_type: http
          system:
              default:
                  io:
                      metadata_handler: dfs
                      binarydata_handler: nfs
                      url_prefix: "storage"
              site_group:
                  # Pool to use for cache, needs to be differant per repository (database).
                  cache_pool_name: '%cache_pool%'
                  # These reflect the current installers, complete installation before you change them. For changing var_dir
                  # it is recommended to install clean, then change setting before you start adding binary content, otherwise you'll
                  # need to manually modify your database data to reflect this to avoid exceptions.
                  var_dir: var/site
                  # System languages. Note that by default, content, content types, and other data are in eng-GB locale,
                  # so removing eng-GB from this list may lead to errors or content not being shown, unless you change
                  # all eng-GB data to other locales first.
                  languages: [eng-GB]
                  http_cache:
                      # Fill in your Varnish server(s) address(es).
                      purge_servers: [http://192.168.2.201:6081]
                  session:
                      name: ~
      
      # new doctrine connection for the dfs legacy_dfs_cluster metadata handler.
      doctrine:
          dbal:
              connections:
                  dfs:
                      driver: pdo_mysql
                      host: 10.0.5.4
                      port: 3306
                      dbname: ezp
                      user: ezp
                      password: "ezp"
                      charset: UTF8
      
      # declare the handlers
      ez_io:
          binarydata_handlers:
              nfs:
                  flysystem:
                      adapter: nfs_adapter
          metadata_handlers:
              dfs:
                  legacy_dfs_cluster:
                      connection: doctrine.dbal.dfs_connection
      
      oneup_flysystem:
          adapters:
              nfs_adapter:
                  local:
                      # The last part, $var_dir$/$storage_dir$, is required for legacy compatibility
                      directory: "/mnt/ezdfs/$var_dir$/$storage_dir$"
      
      stash:
          caches:
              default:
                  drivers: [ Redis ]
                  Redis:
                      servers:
                          -
                              server: 10.0.5.2
                              port: 6379
                          -
                              server: 10.0.5.3
                              port: 6379
      
      
      

      in the first server, where I have the redis server installed, when doing redis-cli monitor, i can see that redis server is working

      1468840211.117536 [0 10.0.5.3:50146] "GET" "4df4fa77cab7a7627564bd0e86e0673f"
      1468840211.118033 [0 10.0.5.3:50146] "GET" "3ab8980e5770099deea0eb2640c858e9"
      

      But when trying to access one of my installations, i have in app/logs/prod.log error:

      [2016-07-18 13:00:56] request.CRITICAL: Uncaught PHP Exception RedisException: "Connection closed" at /var/www/html/ezplatform/vendor/tedivm/stash/src/Stash/Driver/Redis.php line 270 {"exception":"[object] (RedisException(code: 0): Connection closed at /var/www/html/ezplatform/vendor/tedivm/stash/src/Stash/Driver/Redis.php:270)"} []
      

      Full stack trace

      [1] RedisException: Connection closed
          at n/a
              in /var/www/html/ezplatform/vendor/tedivm/stash/src/Stash/Driver/Redis.php line 270
      
          at Redis->get('e010dd0b3db0b24844e2b6f73f7680d7')
              in  line 
      
          at RedisArray->__call('get', array('e010dd0b3db0b24844e2b6f73f7680d7'))
              in /var/www/html/ezplatform/vendor/tedivm/stash/src/Stash/Driver/Redis.php line 270
      
          at Stash\Driver\Redis->makeKeyString(array('0fea6a13c52b4d4725368f24b045ca84', 'c21f969b5f03d33d43e04f8f136e7682', '4a1c6be177996f9e03934ae1c1c02ffc', 'ee11cbb19052e40b07aac0ca060c23ee', '29a7e96467b69a9f5a93332e29e9b0de', '17b32329e54191537595822b7b2794a3', 'a8b43746d096f4c37974afede1b81dcb', 'cae4eae4c3b46142380966d00cc5e446', 'd3d9446802a44259755d38e6d163e820'))
              in /var/www/html/ezplatform/vendor/tedivm/stash/src/Stash/Driver/Redis.php line 181
      
          at Stash\Driver\Redis->getData(array('cache', 'default', 'ez_spi', 'user', 'role', 'assignments', 'bygroup', 'inherited', '10'))
              in /var/www/html/ezplatform/vendor/tedivm/stash/src/Stash/Driver/Composite.php line 76
      
          at Stash\Driver\Composite->getData(array('cache', 'default', 'ez_spi', 'user', 'role', 'assignments', 'bygroup', 'inherited', '10'))
              in /var/www/html/ezplatform/vendor/tedivm/stash/src/Stash/Item.php line 457
      
          at Stash\Item->getRecord()
              in /var/www/html/ezplatform/vendor/tedivm/stash/src/Stash/Item.php line 264
      
          at Stash\Item->executeGet(array('0'), null, null)
              in /var/www/html/ezplatform/vendor/tedivm/stash/src/Stash/Item.php line 225
      
          at Stash\Item->get('0', null, null)
              in /var/www/html/ezplatform/vendor/tedivm/stash-bundle/Service/CacheItem.php line 45
      
          at Tedivm\StashBundle\Service\CacheItem->get()
              in /var/www/html/ezplatform/vendor/ezsystems/ezpublish-kernel/eZ/Publish/Core/Persistence/Cache/UserHandler.php line 200
      
          at eZ\Publish\Core\Persistence\Cache\UserHandler->loadRoleAssignmentsByGroupId('10', true)
              in /var/www/html/ezplatform/vendor/ezsystems/ezpublish-kernel/eZ/Publish/Core/Repository/Repository.php line 413
      
          at eZ\Publish\Core\Repository\Repository->hasAccess('user', 'login')
              in /var/www/html/ezplatform/vendor/ezsystems/ezpublish-kernel/eZ/Publish/Core/Repository/Repository.php line 478
      
          at eZ\Publish\Core\Repository\Repository->canUser('user', 'login', object(SiteAccess), null)
              in /var/www/html/ezplatform/app/cache/dev/appDevDebugProjectContainer.php line 34150
      
          at eZPublishCoreRepositoryRepository_0000000070d2ac81000000002b64749dabb1b94583b27935e2b5557d2df93d20->canUser('user', 'login', object(SiteAccess), null)
              in /var/www/html/ezplatform/vendor/ezsystems/ezpublish-kernel/eZ/Publish/Core/SignalSlot/Repository.php line 241
      
          at eZ\Publish\Core\SignalSlot\Repository->canUser('user', 'login', object(SiteAccess), null)
              in /var/www/html/ezplatform/app/cache/dev/appDevDebugProjectContainer.php line 39340
      
          at eZPublishCoreSignalSlotRepository_0000000070d2acaa000000002b64749dabb1b94583b27935e2b5557d2df93d20->canUser('user', 'login', object(SiteAccess), null)
              in /var/www/html/ezplatform/vendor/ezsystems/ezpublish-kernel/eZ/Publish/Core/MVC/Symfony/Security/Authorization/Voter/ValueObjectVoter.php line 71
      
          at eZ\Publish\Core\MVC\Symfony\Security\Authorization\Voter\ValueObjectVoter->vote(object(AnonymousToken), null, array(object(Attribute)))
              in /var/www/html/ezplatform/vendor/symfony/symfony/src/Symfony/Component/Security/Core/Authorization/AccessDecisionManager.php line 117
      
          at Symfony\Component\Security\Core\Authorization\AccessDecisionManager->decideAffirmative(object(AnonymousToken), array(object(Attribute)), null)
              in /var/www/html/ezplatform/vendor/symfony/symfony/src/Symfony/Component/Security/Core/Authorization/AccessDecisionManager.php line 72
      
          at Symfony\Component\Security\Core\Authorization\AccessDecisionManager->decide(object(AnonymousToken), array(object(Attribute)), null)
              in /var/www/html/ezplatform/vendor/symfony/symfony/src/Symfony/Component/Security/Core/Authorization/AuthorizationChecker.php line 68
      
          at Symfony\Component\Security\Core\Authorization\AuthorizationChecker->isGranted(array(object(Attribute)))
              in /var/www/html/ezplatform/vendor/ezsystems/ezpublish-kernel/eZ/Publish/Core/MVC/Symfony/Security/EventListener/SecurityListener.php line 255
      
          at eZ\Publish\Core\MVC\Symfony\Security\EventListener\SecurityListener->hasAccess(object(SiteAccess), 'anon.')
              in /var/www/html/ezplatform/vendor/ezsystems/ezpublish-kernel/eZ/Publish/Core/MVC/Symfony/Security/EventListener/SecurityListener.php line 218
      
          at eZ\Publish\Core\MVC\Symfony\Security\EventListener\SecurityListener->onKernelRequest(object(GetResponseEvent), 'kernel.request', object(TraceableEventDispatcher))
              in  line 
      
          at call_user_func(array(object(SecurityListener), 'onKernelRequest'), object(GetResponseEvent), 'kernel.request', object(TraceableEventDispatcher))
              in /var/www/html/ezplatform/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php line 61
      
          at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(GetResponseEvent), 'kernel.request', object(ContainerAwareEventDispatcher))
              in  line 
      
          at call_user_func(object(WrappedListener), object(GetResponseEvent), 'kernel.request', object(ContainerAwareEventDispatcher))
              in /var/www/html/ezplatform/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php line 184
      
          at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.request', object(GetResponseEvent))
              in /var/www/html/ezplatform/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php line 46
      
          at Symfony\Component\EventDispatcher\EventDispatcher->dispatch('kernel.request', object(GetResponseEvent))
              in /var/www/html/ezplatform/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php line 140
      
          at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch('kernel.request', object(GetResponseEvent))
              in /var/www/html/ezplatform/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php line 125
      
          at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
              in /var/www/html/ezplatform/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php line 64
      
          at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
              in /var/www/html/ezplatform/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/DependencyInjection/ContainerAwareHttpKernel.php line 69
      
          at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
              in /var/www/html/ezplatform/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php line 193
      
          at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
              in /var/www/html/ezplatform/web/app.php line 66
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            paulo.nunes-obsolete@ez.no Paulo Nunes (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: