-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Open
Description
- Laravel-mongodb Version: 5.4.1
- PHP Version: 8.3.20
- Database Driver & Version: 2.0.0
- Laravel Version: 11.44.2
Description:
Consider the following setup:
- config/queue.php
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 20,
'block_for' => null,
'after_commit' => false,
],
'failed' => [
'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'),
'database' => env('DB_CONNECTION', 'mongodb'),
'table' => 'failed_jobs',
],
- app/Jobs/Test.php
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class Test implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $timeout = 10;
public function __construct(
) {
}
public function handle(): void
{
sleep(60);
}
}
When the job timeout is reached, i receive the following exception:
Exception
[2025-04-25 14:19:11] local.ERROR: There is no active session. {"exception":"[object] (MongoDB\\Driver\\Exception\\RuntimeException(code: 0): There is no active session. at /var/www/html/vendor/mongodb/laravel-mongodb/src/Concerns/ManagesTransactions.php:47)
[stacktrace]
#0 /var/www/html/vendor/mongodb/laravel-mongodb/src/Concerns/ManagesTransactions.php(76): MongoDB\\Laravel\\Connection->getSessionOrThrow()
#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(210): MongoDB\\Laravel\\Connection->rollBack()
#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(605): Illuminate\\Queue\\Jobs\\Job->fail()
#3 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(551): Illuminate\\Queue\\Worker->failJob()
#4 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(218): Illuminate\\Queue\\Worker->markJobAsFailedIfWillExceedMaxAttempts()
#5 /var/www/html/app/Jobs/Test.php(40): Illuminate\\Queue\\Worker->Illuminate\\Queue\\{closure}()
#6 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\\Jobs\\Test->handle()
#7 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#8 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(95): Illuminate\\Container\\Util::unwrapIfClosure()
#9 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#10 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(696): Illuminate\\Container\\BoundMethod::call()
#11 /var/www/html/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(126): Illuminate\\Container\\Container->call()
#12 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(170): Illuminate\\Bus\\Dispatcher->Illuminate\\Bus\\{closure}()
#13 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(127): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#14 /var/www/html/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(130): Illuminate\\Pipeline\\Pipeline->then()
#15 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(126): Illuminate\\Bus\\Dispatcher->dispatchNow()
#16 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(170): Illuminate\\Queue\\CallQueuedHandler->Illuminate\\Queue\\{closure}()
#17 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(127): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#18 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(121): Illuminate\\Pipeline\\Pipeline->then()
#19 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(69): Illuminate\\Queue\\CallQueuedHandler->dispatchThroughMiddleware()
#20 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(102): Illuminate\\Queue\\CallQueuedHandler->call()
#21 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(442): Illuminate\\Queue\\Jobs\\Job->fire()
#22 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(392): Illuminate\\Queue\\Worker->process()
#23 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(178): Illuminate\\Queue\\Worker->runJob()
#24 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(149): Illuminate\\Queue\\Worker->daemon()
#25 /var/www/html/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(132): Illuminate\\Queue\\Console\\WorkCommand->runWorker()
#26 /var/www/html/vendor/laravel/horizon/src/Console/WorkCommand.php(51): Illuminate\\Queue\\Console\\WorkCommand->handle()
#27 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Laravel\\Horizon\\Console\\WorkCommand->handle()
#28 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Util.php(43): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#29 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(95): Illuminate\\Container\\Util::unwrapIfClosure()
#30 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\\Container\\BoundMethod::callBoundMethod()
#31 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(696): Illuminate\\Container\\BoundMethod::call()
#32 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Command.php(213): Illuminate\\Container\\Container->call()
#33 /var/www/html/vendor/symfony/console/Command/Command.php(279): Illuminate\\Console\\Command->execute()
#34 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Command.php(182): Symfony\\Component\\Console\\Command\\Command->run()
#35 /var/www/html/vendor/symfony/console/Application.php(1094): Illuminate\\Console\\Command->run()
#36 /var/www/html/vendor/symfony/console/Application.php(342): Symfony\\Component\\Console\\Application->doRunCommand()
#37 /var/www/html/vendor/symfony/console/Application.php(193): Symfony\\Component\\Console\\Application->doRun()
#38 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(198): Symfony\\Component\\Console\\Application->run()
#39 /var/www/html/artisan(35): Illuminate\\Foundation\\Console\\Kernel->handle()
#40 {main}
"}
This didn't happen before, i was using v5.1 till yesterday, i just tried to upgrade to v5.4.1, cause of the mongo extension update to v2.0.0, and noticed this problem by chance.
Metadata
Metadata
Assignees
Labels
No labels
Activity
masterbater commentedon Apr 30, 2025
For you report its lacking context.
Error like this is when you are commiting transaction without creating it first
you might have forgot to add this DB:beginTransaction() if you are doing manual transaction