Skip to content
This repository has been archived by the owner on Feb 20, 2024. It is now read-only.

app.CRITICAL: [dizda-backup] Unexpected exception. #83

Closed
yohann-teisseire opened this issue Nov 6, 2015 · 22 comments
Closed

app.CRITICAL: [dizda-backup] Unexpected exception. #83

yohann-teisseire opened this issue Nov 6, 2015 · 22 comments
Milestone

Comments

@yohann-teisseire
Copy link

Hi,
This is my conf :

config.xml
dizda_cloud_backup:
# By default backup files will have your servers hostname as prefix
# such as: hostname_2014-01-01_21-08-39.tar
output_file_prefix: hostname
timeout: 300
processor:
type: tar # Required: tar|zip|7z
options:
compression_ratio: 6
password: qwerty
# Split into many files of split_size bytes
split:
enable: false # Default false
split_size: 1000 # Make each zip files no larger than "split_size" in bytes
storages: [ Gaufrette ] # Which cloud storages will upload split files
folders: [ web/bdd ]
cloud_storages:
# Local storage definition
local:
path: C:\wamp\www\trunkRefonte
gaufrette:
service_name: # Gaufrette filesystem(s) service name
- foo_filesystem
databases:
mysql: # When no parameters is specified under mysql, the bundle taking those from parameters.yml

knp_gaufrette:
adapters:
foo:
local:
directory: 'C:\wamp\www\trunkRefonte'
filesystems:
bar:
adapter: foo
alias: foo_filesystem

I would like to backup my bdd in localhost, but i think my problem is in adapters/foo/local/directory or cloud_storages/local/path. I do not know which path I ought to put in this section.

Could you help me ?

Thanks

@dizda
Copy link
Owner

dizda commented Nov 7, 2015

Hello,

Can you please format your conf, help can be found here https://guides.github.com/features/mastering-markdown/

@yohann-teisseire
Copy link
Author

githelp

@Nyholm
Copy link
Collaborator

Nyholm commented Nov 9, 2015

What do your logs say?
Have you tried to debug this? On what line does the exception occur?

@yohann-teisseire
Copy link
Author

When i execute this command : "app/console dizda:backup:start" or this one : "php app/console --env=prod dizda:backup:start"

I have this error : "[2015-11-09 10:50:55] app.CRITICAL: [dizda-backup] Unexpected exception.
Something went terribly wrong. We could not create a backup. Read your log files to see what caused this error."

prod.log :
[2015-11-09 10:53:03] app.INFO: [dizda-backup] Dumping MySQL database [] []
[2015-11-09 10:53:03] app.CRITICAL: [dizda-backup] Unexpected exception. []
[2015-11-09 10:53:03] app.INFO: [dizda-backup] Cleaning up after us. [] []

dev.log
[2015-11-09 10:53:35] event.DEBUG: Notified event "console.command" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure". [] []
[2015-11-09 10:53:35] event.DEBUG: Notified event "console.command" to listener "Symfony\Bridge\Monolog\Handler\ConsoleHandler::onCommand". [] []
[2015-11-09 10:53:35] app.INFO: [dizda-backup] Dumping MySQL database [] []
[2015-11-09 10:53:35] app.CRITICAL: [dizda-backup] Unexpected exception. []
[2015-11-09 10:53:35] app.INFO: [dizda-backup] Cleaning up after us. [] []
[2015-11-09 10:53:35] event.DEBUG: Notified event "console.terminate" to listener "Symfony\Bundle\SwiftmailerBundle\EventListener\EmailSenderListener::onTerminate". [] []
[2015-11-09 10:53:35] event.DEBUG: Notified event "console.terminate" to listener "Symfony\Bridge\Monolog\Handler\ConsoleHandler::onTerminate". [] []

thanks,

@yohann-teisseire
Copy link
Author

I think my way is wrong but i don't know which way is the good one.
in : cloud_storages.local.path: C:\wamp\www\trunkRefonte
or : knp_gaufrette.adapters.foo.local.directory: 'C:\wamp\www\trunkRefonte'

@Nyholm
Copy link
Collaborator

Nyholm commented Nov 9, 2015

Start debugging MySQL.php on line 55 and see where it crashes.

@dizda I believe we need to start throwing a lot more (and different kind of) exceptions.

@yohann-teisseire
Copy link
Author

When i dump getCommand in mysql.php
var_dump($this->getCommand());die;

i have this:
string(91) "mysqldump -uroot symfony > C:\wamp\www\trunkRefonte\app\cache\prod/backup/mysql/symfony.sql"

@yohann-teisseire
Copy link
Author

Now i have this error :
[2015-11-09 11:29:02] app.INFO: [dizda-backup] Dumping MySQL database [] []
[2015-11-09 11:29:02] app.INFO: [dizda-backup] Copying folders. [] []
[2015-11-09 11:29:02] app.INFO: [dizda-backup] Compressing to archive using Tar [] []
[2015-11-09 11:29:02] app.CRITICAL: [dizda-backup] Unexpected exception. []
[2015-11-09 11:29:02] app.INFO: [dizda-backup] Cleaning up after us. [] []

It's better than before

@dizda
Copy link
Owner

dizda commented Nov 9, 2015

@Nyholm Agree. Unexpected exception is a way too large.

@Nyholm
Copy link
Collaborator

Nyholm commented Nov 9, 2015

@yohann-teisseire What did you change?

@yohann-teisseire
Copy link
Author

In Database.php
$this->dataPath = $basePath.static::DB_PATH.'/';
//$this->dataPath = "C:/wamp/www/trunkRefonte/app/cache/".static::DB_PATH.'/';

$this->dataPath = C:\wamp\www\trunkRefonte\app\cache\prod/backup/mysql/symfony.sql"
Should be C:/wamp/www/trunkRefonte/app/cache/prod/backup/mysql/symfony.sql"

@yohann-teisseire
Copy link
Author

In Database.php, when i dump this function, send null
protected function preparePath()
{
$this->filesystem->mkdir($this->dataPath);
}

@Nyholm
Copy link
Collaborator

Nyholm commented Nov 9, 2015

Yeah, I figured it had something to do with windows =)

PS. When pasting code in you should use the "backticks". See under Syntax highlitning

@yohann-teisseire
Copy link
Author

Yeah, i use windows, so now my problem is just after "Compressing to archive using Tar"

@yohann-teisseire
Copy link
Author

When i add a var_dump " var_dump($this->getCommand());die;", i have a folder created in "app/cache/prod/backup/mysql" but it's empty, without var_dump, the folder isn't created.

/**
 * {@inheritdoc}
 */
public function dump()
{
    $this->preparePath();
    var_dump($this->getCommand());die;
}

/**
 * {@inheritdoc}
 */
protected function getCommand()
{
    $this->dataPath = ' C:/wamp/www/trunkRefonte/app/cache/prod/backup/';
    return sprintf('mysqldump %s %s > %s',
        $this->auth,
        $this->database,
        $this->dataPath.$this->fileName);
}

@yohann-teisseire
Copy link
Author

After multiple dump, preparePath send 'null', i think the problem is here.

/**
 * {@inheritdoc}
 */
public function dump()
{
    $this->preparePath();
    $this->getCommand();
}

@Nyholm Nyholm added this to the 4.0 milestone Nov 10, 2015
@yohann-teisseire
Copy link
Author

I have put my symfony app on my server, now it's better, errors of yesterday have disappeared.
my console errors :
PHP Warning: copy(http://recette.potentielettalents.com/web/uploads/hostname_2015-11-10_11-55-48.tar): failed to open stream: HTTP wrapper does not support writeable connections in /var/www/html/recette/vendor/dizda/cloud-backup-bundle/Dizda/CloudBackupBundle/Client/LocalClient.php on line 30
PHP Fatal error: Class 'Dizda\CloudBackupBundle\Client\Exception' not found in /var/www/html/recette/vendor/dizda/cloud-backup-bundle/Dizda/CloudBackupBundle/Client/LocalClient.php on line 32
[2015-11-10 11:55:49] php.CRITICAL: Fatal Error: Class 'Dizda\CloudBackupBundle\Client\Exception' not found {"type":1,"file":"/var/www/html/recette/vendor/dizda/cloud-backup-bundle/Dizda/CloudBackupBundle/Client/LocalClient.php","line":32,"level":6143,"stack":[]}

I think i'm very close now

@dizda
Copy link
Owner

dizda commented Nov 10, 2015

You've can not copy to a HTTP url, you should provide the local path of the server.

@yohann-teisseire
Copy link
Author

i have put : path: 'var/www/html/recette/web/uploads', but the issue is still the same

PHP Warning: copy(var/www/html/recette/web/uploads/hostname_2015-11-10_12-05-46.tar): failed to open stream: No such file or directory in /var/www/html/recette/vendor/dizda/cloud-backup-bundle/Dizda/CloudBackupBundle/Client/LocalClient.php on line 30
PHP Fatal error: Class 'Dizda\CloudBackupBundle\Client\Exception' not found in /var/www/html/recette/vendor/dizda/cloud-backup-bundle/Dizda/CloudBackupBundle/Client/LocalClient.php on line 32
[2015-11-10 12:05:46] php.CRITICAL: Fatal Error: Class 'Dizda\CloudBackupBundle\Client\Exception' not found {"type":1,"file":"/var/www/html/recette/vendor/dizda/cloud-backup-bundle/Dizda/CloudBackupBundle/Client/LocalClient.php","line":32,"level":6143,"stack":[]}

[Symfony\Component\Debug\Exception\ClassNotFoundException]
Attempted to load class "Exception" from namespace "Dizda\CloudBackupBundle\Client".
Did you forget a "use" statement for e.g. "Gaufrette\Exception", "Assetic\Exception\Exception", "Symfony\Compo
nent\Serializer\Exception\Exception", "Symfony\Component\Config\Definition\Exception\Exception", "Symfony\Comp
onent\Security\Acl\Exception\Exception" or "Ivory\CKEditorBundle\Exception\Exception"?

@dizda
Copy link
Owner

dizda commented Nov 10, 2015

Ok 2 things, you've forget a slash in front of your path, it should be /var/www/html/recette/web/uploads.

Then, you just pointed out an error on LocalClient file, https://github.com/dizda/CloudBackupBundle/blob/master/Client/LocalClient.php#L32 should be \Exception with an anti-slash.

@yohann-teisseire
Copy link
Author

Great, my backup is ok.

thank you very much to both of you for your help

@dizda
Copy link
Owner

dizda commented Nov 10, 2015

FYI https://github.com/dizda/CloudBackupBundle/releases/tag/3.2.1 released for the exception's namespace.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants