Project

General

Profile

Actions

Bug #89697

closed

Scheduler writes invalid 'serialized_task_object' to database

Added by Michael Schams about 5 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
scheduler
Target version:
-
Start date:
2019-11-17
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
10
PHP Version:
7.3
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

TYPO3 v10.2-dev

Scheduler writes invalid 'serialized_task_object' to database. The data looks cut short, for example:

4|1573967907|0|0||1573977891|0|||O:42:"TYPO3\CMS\Linkvalidator\Task\ValidatorTask":22:{s:12:"||0

I am using SQLite. The table is created as follows:

CREATE TABLE IF NOT EXISTS "tx_scheduler_task" (
  "uid" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
  "crdate" INTEGER UNSIGNED DEFAULT 0 NOT NULL,
  "disable" SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
  "deleted" SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
  "description" CLOB DEFAULT NULL,
  "nextexecution" INTEGER UNSIGNED DEFAULT 0 NOT NULL,
  "lastexecution_time" INTEGER UNSIGNED DEFAULT 0 NOT NULL,
  "lastexecution_failure" CLOB DEFAULT NULL,
  "lastexecution_context" VARCHAR(3) DEFAULT '' NOT NULL,
  "serialized_task_object" BLOB DEFAULT NULL,
  "serialized_executions" BLOB DEFAULT NULL,
  "task_group" INTEGER UNSIGNED DEFAULT 0 NOT NULL
);

(serialized_task_object: BLOB).

Steps to reproduce the issue: see attached screen recording.


Files

TYPO3v10.2dev-Scheduler.mp4 (1.44 MB) TYPO3v10.2dev-Scheduler.mp4 Michael Schams, 2019-11-17 06:33
screenshot-20191119-0005.png (42.5 KB) screenshot-20191119-0005.png Michael Schams, 2019-11-18 14:07

Related issues 1 (0 open1 closed)

Related to TYPO3 Core - Bug #90220: Scheduler results in exception when used with sqliteClosed2020-01-27

Actions
Actions #1

Updated by Michael Schams about 5 years ago

Works fine in MariaDB (`MySQL 5.5.5-10.3.18-MariaDB-0+deb10u1`).

Attached screenshot screenshot-20191119-0005.png shows the output of:

SELECT uid, serialized_task_object FROM tx_scheduler_task;

Actions #2

Updated by Michael Schams over 4 years ago

The bug still exists in TYPO3 v10.3-dev with SQLite.
From my perspective it means that the Scheduler does not work properly in v10 in an installation that uses SQLite as the database engine.

Actions #3

Updated by Susanne Moog over 4 years ago

  • Status changed from New to Needs Feedback

I cannot reproduce the issue with sqlite

Doing what you did in the video results in the following data in my sqlite db:

1.08 kB
00000000  4F 3A 34 32 3A 22 54 59 50 4F 33 5C 43 4D 53 5C    O:42:"TYPO3\CMS\
00000010  4C 69 6E 6B 76 61 6C 69 64 61 74 6F 72 5C 54 61    Linkvalidator\Ta
00000020  73 6B 5C 56 61 6C 69 64 61 74 6F 72 54 61 73 6B    sk\ValidatorTask
00000030  22 3A 32 35 3A 7B 73 3A 31 32 3A 22 00 2A 00 73    ":25:{s:12:".*.s
00000040  6C 65 65 70 54 69 6D 65 22 3B 4E 3B 73 3A 31 39    leepTime";N;s:19
00000050  3A 22 00 2A 00 73 6C 65 65 70 41 66 74 65 72 46    :".*.sleepAfterF
00000060  69 6E 69 73 68 22 3B 4E 3B 73 3A 31 34 3A 22 00    inish";N;s:14:".
00000070  2A 00 63 6F 75 6E 74 49 6E 41 52 75 6E 22 3B 4E    *.countInARun";N
00000080  3B 73 3A 31 38 3A 22 00 2A 00 74 6F 74 61 6C 42    ;s:18:".*.totalB
00000090  72 6F 6B 65 6E 4C 69 6E 6B 22 3B 69 3A 30 3B 73    rokenLink";i:0;s
000000A0  3A 32 31 3A 22 00 2A 00 6F 6C 64 54 6F 74 61 6C    :21:".*.oldTotal
000000B0  42 72 6F 6B 65 6E 4C 69 6E 6B 22 3B 69 3A 30 3B    BrokenLink";i:0;
000000C0  73 3A 31 35 3A 22 00 2A 00 74 65 6D 70 6C 61 74    s:15:".*.templat
000000D0  65 4D 61 69 6C 22 3B 4E 3B 73 3A 31 36 3A 22 00    eMail";N;s:16:".
000000E0  2A 00 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 22    *.configuration" 
000000F0  3B 73 3A 30 3A 22 22 3B 73 3A 32 33 3A 22 00 2A    ;s:0:"";s:23:".*
00000100  00 69 73 44 69 66 66 65 72 65 6E 74 54 6F 4C 61    .isDifferentToLa
00000110  73 74 52 75 6E 22 3B 4E 3B 73 3A 32 30 3A 22 00    stRun";N;s:20:".
00000120  2A 00 65 6D 61 69 6C 54 65 6D 70 6C 61 74 65 46    *.emailTemplateF
00000130  69 6C 65 22 3B 73 3A 36 33 3A 22 45 58 54 3A 6C    ile";s:63:"EXT:l
00000140  69 6E 6B 76 61 6C 69 64 61 74 6F 72 2F 52 65 73    inkvalidator/Res
00000150  6F 75 72 63 65 73 2F 50 72 69 76 61 74 65 2F 54    ources/Private/T
00000160  65 6D 70 6C 61 74 65 73 2F 6D 61 69 6C 74 65 6D    emplates/mailtem
00000170  70 6C 61 74 65 2E 68 74 6D 6C 22 3B 73 3A 38 3A    plate.html";s:8:
00000180  22 00 2A 00 64 65 70 74 68 22 3B 73 3A 31 3A 22    ".*.depth";s:1:" 
00000190  30 22 3B 73 3A 37 3A 22 00 2A 00 70 61 67 65 22    0";s:7:".*.page" 
000001A0  3B 73 3A 31 3A 22 31 22 3B 73 3A 38 3A 22 00 2A    ;s:1:"1";s:8:".*
000001B0  00 65 6D 61 69 6C 22 3B 73 3A 31 36 3A 22 74 65    .email";s:16:"te
000001C0  73 74 40 65 78 61 6D 70 6C 65 2E 63 6F 6D 22 3B    st@example.com";
000001D0  73 3A 32 34 3A 22 00 2A 00 65 6D 61 69 6C 4F 6E    s:24:".*.emailOn
000001E0  42 72 6F 6B 65 6E 4C 69 6E 6B 4F 6E 6C 79 22 3B    BrokenLinkOnly";
000001F0  69 3A 30 3B 73 3A 31 38 3A 22 00 2A 00 74 65 6D    i:0;s:18:".*.tem
00000200  70 6C 61 74 65 53 65 72 76 69 63 65 22 3B 4E 3B    plateService";N;
00000210  73 3A 31 35 3A 22 00 2A 00 6C 61 6E 67 75 61 67    s:15:".*.languag
00000220  65 46 69 6C 65 22 3B 73 3A 36 32 3A 22 4C 4C 4C    eFile";s:62:"LLL
00000230  3A 45 58 54 3A 6C 69 6E 6B 76 61 6C 69 64 61 74    :EXT:linkvalidat
00000240  6F 72 2F 52 65 73 6F 75 72 63 65 73 2F 50 72 69    or/Resources/Pri
00000250  76 61 74 65 2F 4C 61 6E 67 75 61 67 65 2F 6C 6F    vate/Language/lo
00000260  63 61 6C 6C 61 6E 67 2E 78 6C 66 22 3B 73 3A 32    callang.xlf";s:2
00000270  33 3A 22 00 2A 00 62 72 6F 6B 65 6E 4C 69 6E 6B    3:".*.brokenLink
00000280  52 65 70 6F 73 69 74 6F 72 79 22 3B 4E 3B 73 3A    Repository";N;s:
00000290  31 32 3A 22 00 2A 00 73 63 68 65 64 75 6C 65 72    12:".*.scheduler
000002A0  22 3B 4E 3B 73 3A 31 30 3A 22 00 2A 00 74 61 73    ";N;s:10:".*.tas
000002B0  6B 55 69 64 22 3B 69 3A 31 3B 73 3A 31 31 3A 22    kUid";i:1;s:11:" 
000002C0  00 2A 00 64 69 73 61 62 6C 65 64 22 3B 62 3A 30    .*.disabled";b:0
000002D0  3B 73 3A 31 39 3A 22 00 2A 00 72 75 6E 4F 6E 4E    ;s:19:".*.runOnN
000002E0  65 78 74 43 72 6F 6E 4A 6F 62 22 3B 62 3A 30 3B    extCronJob";b:0;
000002F0  73 3A 31 32 3A 22 00 2A 00 65 78 65 63 75 74 69    s:12:".*.executi
00000300  6F 6E 22 3B 4F 3A 32 39 3A 22 54 59 50 4F 33 5C    on";O:29:"TYPO3\
00000310  43 4D 53 5C 53 63 68 65 64 75 6C 65 72 5C 45 78    CMS\Scheduler\Ex
00000320  65 63 75 74 69 6F 6E 22 3A 36 3A 7B 73 3A 38 3A    ecution":6:{s:8:
00000330  22 00 2A 00 73 74 61 72 74 22 3B 69 3A 31 35 38    ".*.start";i:158
00000340  33 36 35 32 31 33 36 3B 73 3A 36 3A 22 00 2A 00    3652136;s:6:".*.
00000350  65 6E 64 22 3B 73 3A 30 3A 22 22 3B 73 3A 31 31    end";s:0:"";s:11
00000360  3A 22 00 2A 00 69 6E 74 65 72 76 61 6C 22 3B 69    :".*.interval";i
00000370  3A 39 39 39 39 3B 73 3A 31 31 3A 22 00 2A 00 6D    :9999;s:11:".*.m
00000380  75 6C 74 69 70 6C 65 22 3B 73 3A 31 3A 22 30 22    ultiple";s:1:"0" 
00000390  3B 73 3A 31 30 3A 22 00 2A 00 63 72 6F 6E 43 6D    ;s:10:".*.cronCm
000003A0  64 22 3B 73 3A 30 3A 22 22 3B 73 3A 32 33 3A 22    d";s:0:"";s:23:" 
000003B0  00 2A 00 69 73 4E 65 77 53 69 6E 67 6C 65 45 78    .*.isNewSingleEx
000003C0  65 63 75 74 69 6F 6E 22 3B 62 3A 30 3B 7D 73 3A    ecution";b:0;}s:
000003D0  31 36 3A 22 00 2A 00 65 78 65 63 75 74 69 6F 6E    16:".*.execution
000003E0  54 69 6D 65 22 3B 69 3A 31 35 38 33 36 36 32 31    Time";i:15836621
000003F0  33 35 3B 73 3A 31 34 3A 22 00 2A 00 64 65 73 63    35;s:14:".*.desc
00000400  72 69 70 74 69 6F 6E 22 3B 73 3A 30 3A 22 22 3B    ription";s:0:"";
00000410  73 3A 31 32 3A 22 00 2A 00 74 61 73 6B 47 72 6F    s:12:".*.taskGro
00000420  75 70 22 3B 69 3A 30 3B 73 3A 39 3A 22 00 2A 00    up";i:0;s:9:".*.
00000430  6C 6F 67 67 65 72 22 3B 4E 3B 7D                   logger";N;}

Using PHP 7.4.1 with:

SQLite3 support enabled
SQLite Library 3.30.1

Directive            Local Value    Master Value
sqlite3.defensive        1            1
sqlite3.extension_dir    no value    no value
Actions #4

Updated by Michael Schams over 4 years ago

I am not sure what I else I can do to provide further details to be honest.
I am using PHP version 7.3 and SQLite3 version 3.27 (default Debian v10 packages).

SQLite3 support         enabled
SQLite Library          3.27.2

Directive               Local Value     Master Value
sqlite3.defensive       1               1
sqlite3.extension_dir   no value        no value

I can set up a publicly accessible instance and try to reproduce the issue there. If I can reproduce the issue, I am happy to grant you access if you want?

Actions #5

Updated by Susanne Moog over 4 years ago

Michael Schams wrote:

I am not sure what I else I can do to provide further details to be honest.
I am using PHP version 7.3 and SQLite3 version 3.27 (default Debian v10 packages).

[...]

I can set up a publicly accessible instance and try to reproduce the issue there. If I can reproduce the issue, I am happy to grant you access if you want?

That would be cool, as I'm still unable to reproduce it here. Didn't see anything sounding relevant in the changelog of sqlite (though I only took a quick look tbh).

Actions #6

Updated by Susanne Moog over 4 years ago

  • Related to Bug #90220: Scheduler results in exception when used with sqlite added
Actions #7

Updated by Susanne Moog over 4 years ago

  • Status changed from Needs Feedback to Closed

This has been solved with #90220 - the data of the task itself is complete, however the serialized_executions object can be false.

Actions

Also available in: Atom PDF