Skip to content

[Validator] Callback constraint with Closure cannot be serialized #10083

@Koc

Description

@Koc

This is very strange issue. There is edit form for Country entities and on one of entity this occurs.

I don't know how it possible to reproduce it on small test case. The problem is PDO instance and closures stores in the Apc cache when parsing metadata.

[1] PDOException: You cannot serialize or unserialize PDO instances
    at n/a
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Validator/Mapping/Cache/ApcCache.php line 44

    at PDO->__wakeup()
        in  line 

    at apc_fetch('validator_66707dc10d9ce0f6680a042bb025bfd833eed70a6da1a1c506598b89de13182dProxies\__CG__\Metal\TerritorialBundle\Entity\Country')
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Validator/Mapping/Cache/ApcCache.php line 44

    at Symfony\Component\Validator\Mapping\Cache\ApcCache->read('Proxies\__CG__\Metal\TerritorialBundle\Entity\Country')
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Validator/Mapping/ClassMetadataFactory.php line 61

    at Symfony\Component\Validator\Mapping\ClassMetadataFactory->getMetadataFor(object(Country))
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Validator/ValidationVisitor.php line 162

    at Symfony\Component\Validator\ValidationVisitor->validate(object(Country), 'Default', 'data', true, false)
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Validator/ExecutionContext.php line 227

    at Symfony\Component\Validator\ExecutionContext->validate(object(Country), 'data', 'Default', true)
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php line 59

    at Symfony\Component\Form\Extension\Validator\Constraints\FormValidator->validate(object(Form), object(Form))
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Validator/ExecutionContext.php line 276

    at Symfony\Component\Validator\ExecutionContext->executeConstraintValidators(object(Form), array(object(Form)))
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Validator/ExecutionContext.php line 241

    at Symfony\Component\Validator\ExecutionContext->validateValue(object(Form), array(object(Form)))
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Validator/ValidationVisitor.php line 110

    at Symfony\Component\Validator\ValidationVisitor->visit(object(ClassMetadata), object(Form), 'Default', '')
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Validator/Mapping/ClassMetadata.php line 107

    at Symfony\Component\Validator\Mapping\ClassMetadata->accept(object(ValidationVisitor), object(Form), 'Default', '')
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Validator/ValidationVisitor.php line 162

    at Symfony\Component\Validator\ValidationVisitor->validate(object(Form), 'Default', '', false, false)
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Validator/Validator.php line 90

    at Symfony\Component\Validator\Validator->validate(object(Form))
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Validator/EventListener/ValidationListener.php line 55

    at Symfony\Component\Form\Extension\Validator\EventListener\ValidationListener->validateForm(object(FormEvent), 'form.post_bind', object(EventDispatcher))
        in  line 

    at call_user_func(array(object(ValidationListener), 'validateForm'), object(FormEvent), 'form.post_bind', object(EventDispatcher))
        in /vhosts/ololo.com/new/app/cache/metalloprokat/prod/classes.php line 1747

    at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(array(object(ValidationListener), 'validateForm')), 'form.post_bind', object(FormEvent))
        in /vhosts/ololo.com/new/app/cache/metalloprokat/prod/classes.php line 1680

    at Symfony\Component\EventDispatcher\EventDispatcher->dispatch('form.post_bind', object(FormEvent))
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php line 42

    at Symfony\Component\EventDispatcher\ImmutableEventDispatcher->dispatch('form.post_bind', object(FormEvent))
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php line 653

    at Symfony\Component\Form\Form->submit(object(Request))
        in /vhosts/ololo.com/new/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php line 667

    at Symfony\Component\Form\Form->bind(object(Request))
        in /vhosts/ololo.com/new/vendor/sonata-project/admin-bundle/Sonata/AdminBundle/Controller/CRUDController.php line 301

    at Sonata\AdminBundle\Controller\CRUDController->editAction('209')
        in  line 

    at call_user_func_array(array(object(CRUDController), 'editAction'), array('209'))
        in /vhosts/ololo.com/new/app/bootstrap.php.cache line 2911

    at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
        in /vhosts/ololo.com/new/app/bootstrap.php.cache line 2883

    at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
        in /vhosts/ololo.com/new/app/bootstrap.php.cache line 3022

    at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
        in /vhosts/ololo.com/new/app/bootstrap.php.cache line 2303

    at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
        in /vhosts/ololo.com/new/web/app.php line 49

    at require_once('/vhosts/ololo.com/new/web/app.php')
        in /vhosts/ololo.com/app.php line 11

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions