A patch of mine introduced several exceptions per page load (ie. a lot of exception assertions), which led to PIFR blowing up: the patch was cycling "Requested by test client #32.", "Result received from test client #32.", "Test reset by client request." until I stopped it.

It seems that something is dying because the dataset is too large. This is obviously wrong:

      $count = count($database->query('SELECT * FROM {simpletest}'));
      return t('Running tests, @count assertion(s).', array('@count' => number_format($count)));

... but there might be other places where the size of the dataset matters.

CommentFileSizeAuthor
#12 669230-batch-assertions.patch4.63 KBboombatower

Comments

damien tournoud’s picture

damien tournoud’s picture

Priority: Normal » Critical
cburschka’s picture

Priority: Critical » Normal
$count = count($database->query('SELECT * FROM {simpletest}'));

*gibbers* there... there is a perfectly good reason for not using countQuery(), right?

cburschka’s picture

Priority: Normal » Critical

Oops.

int’s picture

Priority: Critical » Normal

I don't know if is related.
In the QA, if you click in Core status you will see one error.

Core status

int’s picture

cross-post

damien tournoud’s picture

Priority: Normal » Critical

@int: no, that doesn't seem related.

damien tournoud’s picture

@Arancaytar: this is plain PDO, we don't have our database layer here, so we don't have countQuery()... but we can obviously use COUNT() :)

Actually, I don't believe this is the main issue: this silly query makes the admin interface fail with an Out of memory error, but the error that causes the reset of the test seems different. I think the generated XML message is too big and cannot be parsed by the test master.

int’s picture

now that Core Status pass without fails, the testbot works again.

Show the cycle tests, and then the manager requested to the HEAD(of Core Status) be re-tested, and then work again.

http://qa.drupal.org/pifr/log/recent

555,880	 File	field-list-validation-669124-5.patch	 Result retrieved by project client.	1 hour 38 min ago
555,878	 File	field-list-validation-669124-4.patch	 Result retrieved by project client.	1 hour 38 min ago
555,876	 File	allow_partial_validation_1.patch	 Requested by test client #33.	1 hour 39 min ago
555,874	 File	field-list-validation-669124-5.patch	 Result received from test client #33.	1 hour 39 min ago
555,872	 File	field_fallback-657972-19.patch	 Requested by test client #32.	1 hour 41 min ago
555,870	 File	field-list-validation-669124-4.patch	 Result received from test client #32.	1 hour 41 min ago
555,868	 File	comment-node_build-654854-19.patch	 Result retrieved by project client.	1 hour 48 min ago
555,866	 File	geekylass-seventhemecss.patch	 Result retrieved by project client.	1 hour 48 min ago
555,864	 File	field-list-validation-669124-5.patch	 Requested by test client #33.	1 hour 49 min ago
555,862	 File	comment-node_build-654854-19.patch	 Result received from test client #33.	1 hour 49 min ago
555,860	 File	field-list-validation-669124-4.patch	 Requested by test client #32.	1 hour 50 min ago
555,858	 File	geekylass-seventhemecss.patch	 Result received from test client #32.	1 hour 50 min ago
555,856	 Branch	Drupal - HEAD	 Result retrieved by project client.	1 hour 58 min ago
555,854	 File	comment-node_build-654854-19.patch	 Requested by test client #33.	1 hour 59 min ago
555,852	 File	geekylass-seventhemecss.patch	 Requested by test client #32.	2 hours 30 sec ago
555,850	 Branch	Drupal - HEAD	 Result received from test client #32.	2 hours 31 sec ago
555,848	 File	667816-fix-menu-inc-constant_0.patch	 Result retrieved by project client.	2 hours 8 min ago
555,846	 Branch	Drupal - HEAD	 Requested by test client #32.	2 hours 10 min ago
555,844	 Branch	Drupal - HEAD	 Re-test requested by manager.	2 hours 10 min ago
555,842	 File	667816-fix-menu-inc-constant_0.patch	 Result received from test client #32.	2 hours 16 min ago
555,840	 File	667816-fix-menu-inc-constant_0.patch	 Requested by test client #32.	2 hours 18 min ago
555,838	 File	667816-fix-menu-inc-constant_0.patch	 Test reset by client request.	2 hours 18 min ago
555,836	 File	667816-fix-menu-inc-constant_0.patch	 Requested by test client #32.	2 hours 30 min ago
555,834	 File	667816-fix-menu-inc-constant_0.patch	 Test reset by client request.	2 hours 30 min ago
555,832	 File	allow_partial_validation_2.patch	 Test request received.	2 hours 38 min ago
555,830	 File	667816-fix-menu-inc-constant_0.patch	 Requested by test client #32.	2 hours 42 min ago
555,828	 File	667816-fix-menu-inc-constant_0.patch	 Test reset by client request.	2 hours 42 min ago
555,826	 File	667816-fix-menu-inc-constant_0.patch	 Requested by test client #32.	2 hours 54 min ago
555,824	 File	667816-fix-menu-inc-constant_0.patch	 Test reset by client request.	2 hours 54 min ago
555,822	 File	667816-fix-menu-inc-constant_0.patch	 Requested by test client #32.	3 hours 6 min ago
555,820	 File	667816-fix-menu-inc-constant_0.patch	 Test reset by client request.	3 hours 6 min ago
555,818	 File	667816-fix-menu-inc-constant_0.patch	 Requested by test client #32.	3 hours 18 min ago
555,816	 File	667816-fix-menu-inc-constant_0.patch	 Test reset by client request.	3 hours 18 min ago
555,814	 File	comment-node_build-654854-21.patch	 Test request received.	3 hours 28 min ago
boombatower’s picture

Current the code cycles through all the assertions and counts them up (among other things) during get_result().

Since it was already cylcing through them doing count() shouldn't be any worse. The reason for not using COUNT() in query was just that it was simpler to use a standard query() that returns an array, and something that was changed for sqlite backend that you were involved in, #441588: SQLite driver. Not so obvious I guess. :)

Anyway, so either have the database perform all the counts and/or add some sort of paging query type code for get_results().

boombatower’s picture

Assigned: Unassigned » boombatower

Working on it.

boombatower’s picture

Status: Active » Needs review
StatusFileSize
new4.63 KB

This problem only occurs after the sqlite backend and the change, since before that we had a patch go through with over 800,000 exceptions.

This patch still runs normally and from logic change would appear to fix your issue.

boombatower’s picture

Title: pifr_client_review_pifr_simpletest doesn't scale » pifr_simpletest's assertion handling routines break when very large numbers of assertions present
Status: Needs review » Fixed

Committed.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.