Closed Vinhold closed 6 years ago
The query that is failing is the bulk storage of prims (same thing that runs when you type "backup" on the region console).
It's a complex section of code, but an example of a query this uses, with (in this case 2 rows) is:
INSERT INTO primitems (invType, assetType, name, description, creationDate, nextPermissions, currentPermissions, basePermissions, everyonePermissions, groupPermissions, flags, itemID, primID, assetID, parentFolderID, creatorID, ownerID, groupID, lastOwnerID, canDebitOwner)
values (?invType0, ?assetType0, ?name0, ?description0, ?creationDate0, ?nextPermissions0, ?currentPermissions0, ?basePermissions0, ?everyonePermissions0, ?groupPermissions0, ?flags0, ?itemID0, ?primID0, ?assetID0, ?parentFolderID0, ?creatorID0, ?ownerID0, ?groupID0, ?lastOwnerID0, ?canDebitOwner0),
(?invType1, ?assetType1, ?name1, ?description1, ?creationDate1, ?nextPermissions1, ?currentPermissions1, ?basePermissions1, ?everyonePermissions1, ?groupPermissions1, ?flags1, ?itemID1, ?primID1, ?assetID1, ?parentFolderID1, ?creatorID1, ?ownerID1, ?groupID1, ?lastOwnerID1, ?canDebitOwner1)
ON DUPLICATE KEY UPDATE invType=VALUES(invType), assetType=VALUES(assetType), name=VALUES(name), description=VALUES(description), creationDate=VALUES(creationDate), nextPermissions=VALUES(nextPermissions), currentPermissions=VALUES(currentPermissions), basePermissions=VALUES(basePermissions), everyonePermissions=VALUES(everyonePermissions), groupPermissions=VALUES(groupPermissions), flags=VALUES(flags), primID=VALUES(primID), assetID=VALUES(assetID), parentFolderID=VALUES(parentFolderID), creatorID=VALUES(creatorID), ownerID=VALUES(ownerID), groupID=VALUES(groupID), lastOwnerID=VALUES(lastOwnerID), canDebitOwner=VALUES(canDebitOwner)
It supports up to 128 rows and in the real-world test I ran, the query was 15699 characters long.
There are two paths through that code I'm taking a look at whether that matters. It's having an exception on the high-runner case, not the less common one.
The exception itself is in BulkStoreObjectInventories at MySQLRegionData.cs line 2531. That's what my comment above is referring to.
Is this resolved?
I think this has been resolved in one of the releases after my original posting of the error. I no longer see the error showing up in the region log.
Okay that's great, that persistence runs every 5 minutes so if it was still around, you'd see it.
Saw this error on the region 1 console, running Halcyon 0.9.31 release on the IMA Test grid. 11:29:54 - [SCENE]: Bulk storing 39 objects 11:29:55 - [SCENE]: Persistance failed with exception MySql.Data.MySqlClient.My SqlException (0x80004005): Out of range value for column 'nextPermissions' at row 14
Log File reports: 2017-02-28 11:59:49,614 [STP SmartThreadPool Thread #0] DEBUG OpenSim.Region.Framework.Scenes.SceneObjectGroup - [SCENE]: Bulk storing 39 objects 2017-02-28 11:59:50,315 [STP SmartThreadPool Thread #0] ERROR OpenSim.Region.Framework.Scenes.Scene - [SCENE]: Persistance failed with exception MySql.Data.MySqlClient.MySqlException (0x80004005): Out of range value for column 'nextPermissions' at row 14 at MySql.Data.MySqlClient.MySqlStream.ReadPacket() at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) at MySql.Data.MySqlClient.MySqlDataReader.NextResult() at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() at OpenSim.Data.MySQL.MySQLDataStore.BulkStoreObjectInventories(IEnumerable
1 items, IEnumerable
1 deletedItems) in X:\halcyon-0.9.31.6242\OpenSim\Data\MySQL\MySQLRegionData.cs:line 2531 at OpenSim.Region.Framework.Scenes.SceneObjectGroup.ProcessBulkBackup(IList`1 groups, IRegionDataStore datastore, Boolean forcedBackup) in X:\halcyon-0.9.31.6242\OpenSim\Region\Framework\Scenes\SceneObjectGroup.cs:line 1960 at OpenSim.Region.Framework.Scenes.Scene.PerformBackup(Boolean forceBackup) in X:\halcyon-0.9.31.6242\OpenSim\Region\Framework\Scenes\Scene.cs:line 1563, objects will not be untaintedI have verified that the 'nextPermissions' field does exist in the primitems table and is INT(11) NOT NULL, MYSQL DB Server Version: 5.7