[7.8] Glorp Replicator Error

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[7.8] Glorp Replicator Error

Boris Popov, DeepCove Labs (SNN)

I’m running into the below error synchronizing two PostgreSQL repositories, does it ring any bells with anyone? We’ve been using Glorp Replicator for a long time now and this is  the first time I’d seen any issue like this,

 

Halt encountered.

Store.Glorp.Store74DescriptorSystem(Object)>>halt

optimized [] in Store.Glorp.StoreDescriptorSystem>>validateRows:

OrderedCollection>>do:

Store.Glorp.Store74DescriptorSystem(Store.Glorp.StoreDescriptorSystem)>>validateRows:

Glorp.UnitOfWork>>validateRows

Glorp.UnitOfWork>>preCommit

optimized [] in Glorp.UnitOfWork>>commit

BlockClosure>>ifCurtailed:

Glorp.UnitOfWork>>commit

optimized [] in Glorp.GlorpSession>>commitUnitOfWork

BlockClosure>>ifCurtailed:

Glorp.GlorpSession>>commitUnitOfWork

optimized [] in [] in Glorp.GlorpSession>>transact:

BlockClosure>>ifCurtailed:

optimized [] in Glorp.GlorpSession>>transact:

BlockClosure>>ifCurtailed:

Glorp.GlorpSession>>transact:

Store.Glorp.ReplicatorPundleWriter>>writeNewPundle

Store.Glorp.ReplicatorPundleWriter>>writePundle:

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

BlockClosure>>on:do:

Store.Glorp.StoreReplicator>>replicatePundle:

optimized [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Dictionary>>do:

Glorp.Proxy(Glorp.AbstractProxy)>>doesNotUnderstand:

Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

BlockClosure>>on:do:

Store.Glorp.StoreReplicator>>replicatePundle:

optimized [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Dictionary>>do:

Glorp.Proxy(Glorp.AbstractProxy)>>doesNotUnderstand:

Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

BlockClosure>>on:do:

Store.Glorp.StoreReplicator>>replicatePundle:

optimized [] in Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

BlockClosure>>on:do:

Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

Store.Glorp.StoreReplicationManager>>replicateNextPundle

optimized [] in Store.Glorp.StoreReplicationManager>>startBackgroundReplicationProcess

BlockClosure>>on:do:

optimized [] in Process class>>forBlock:priority:

 

----------------------------------------------------------------------

Store.Glorp.Store74DescriptorSystem(Object)>>halt

Receiver:

                a Store.Glorp.Store74DescriptorSystem

Instance Variables:

                session = a Glorp.GlorpSession

                platform = a Glorp.PostgreSQLPlatform

                descriptors = a Dictionary[30]

                tables = a Dictionary[26]

                sequences = a Dictionary[12]

                typeResolvers = a Dictionary[0]

                cachePolicy = a Glorp.CachePolicy

                allClasses = an OrderedCollection[55]

                useDirectAccessForMapping = true

                classModels = a Dictionary[26]

                useJoinsForAnySatisfy = nil

Context PC = 12

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreDescriptorSystem>>validateRows:

Receiver:

                an UndefinedObject

Arguments:

                each = a Glorp.DatabaseRow(TW_Bundle)

    Field(TW_Bundle.primaryKey)->nil

    Field(TW_Bundle.name)->'DCL- Raven'

    Field(TW_Bundle.timeStamp)->567530425

    Field(TW_Bundle.version)->nil

    Field(TW_Bundle.userName)->'warren'

    Field(TW_Bundle.trace)->an Object

    Field(TW_Bundle.blessingLevel)->nil

    Field(TW_Bundle.commentID)->nil

    Field(TW_Bundle.propertiesID)->nil

    Field(TW_Bundle.vanguardID)->an Object

    Field(TW_Bundle.rearguardID)->an Object

    Field(TW_Bundle.vanguardStr)->an Object

    Field(TW_Bundle.rearguardStr)->an Object

 

Temporaries:

                .bundleTable = a Store.Glorp.StoreDatabaseTable(TW_Bundle)

                .bundleVersionField = Field(TW_Bundle.version)

                .self = a Store.Glorp.Store74DescriptorSystem

Context PC = 18

 

----------------------------------------------------------------------

OrderedCollection>>do:

Receiver:

                an OrderedCollection

Instance Variables:

                firstIndex = 1

                lastIndex = 48

Arguments:

                aBlock = BlockClosure [] in Store.Glorp.StoreDescriptorSystem>>validateRows:

Temporaries:

                index = 6

Context PC = 17

 

----------------------------------------------------------------------

Store.Glorp.Store74DescriptorSystem(Store.Glorp.StoreDescriptorSystem)>>validateRows:

Receiver:

                a Store.Glorp.Store74DescriptorSystem

Instance Variables:

                session = a Glorp.GlorpSession

                platform = a Glorp.PostgreSQLPlatform

                descriptors = a Dictionary[30]

                tables = a Dictionary[26]

                sequences = a Dictionary[12]

                typeResolvers = a Dictionary[0]

                cachePolicy = a Glorp.CachePolicy

                allClasses = an OrderedCollection[55]

                useDirectAccessForMapping = true

                classModels = a Dictionary[26]

                useJoinsForAnySatisfy = nil

Arguments:

                aUnitOfWork = a Glorp.UnitOfWork

Temporaries:

                bundleTable = a Store.Glorp.StoreDatabaseTable(TW_Bundle)

                timestampField = Field(TW_Bundle.timeStamp)

                blobId = nil

                packageTable = a Store.Glorp.StoreDatabaseTable(TW_Package)

                packageVersionField = Field(TW_Package.version)

                bundleVersionField = Field(TW_Bundle.version)

                bundleTraceField = Field(TW_Bundle.trace)

                packageTraceField = Field(TW_Package.trace)

                allPackageKeys = nil

                packageField = nil

                packageNames = nil

                methodsTable = a Store.Glorp.StoreDatabaseTable(TW_Methods)

Context PC = 80

 

----------------------------------------------------------------------

Glorp.UnitOfWork>>validateRows

Receiver:

                an Glorp.UnitOfWork

Instance Variables:

                session = a Glorp.GlorpSession

                transaction = a Glorp.ObjectTransaction

                deletedObjects = an IdentitySet[0]

                newObjects = an IdentitySet[9]

                rowMap = a Glorp.RowMap

                commitPlan = an OrderedCollection[48]

                deletePlan = an OrderedCollection[0]

                rowsByTable = nil

                succeeded = nil

                linkRowsForUpdate = an IdentitySet[0]

                commitPhase = nil

                deleting = an IdentitySet[0]

Temporaries:

                tables = a Set[7]

                tableNames = a Set[7]

Context PC = 34

 

----------------------------------------------------------------------

Glorp.UnitOfWork>>preCommit

Receiver:

                an Glorp.UnitOfWork

Instance Variables:

                session = a Glorp.GlorpSession

                transaction = a Glorp.ObjectTransaction

                deletedObjects = an IdentitySet[0]

                newObjects = an IdentitySet[9]

                rowMap = a Glorp.RowMap

                commitPlan = an OrderedCollection[48]

                deletePlan = an OrderedCollection[0]

                rowsByTable = nil

                succeeded = nil

                linkRowsForUpdate = an IdentitySet[0]

                commitPhase = nil

                deleting = an IdentitySet[0]

Context PC = 32

 

----------------------------------------------------------------------

optimized [] in Glorp.UnitOfWork>>commit

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Glorp.UnitOfWork

Context PC = 6

 

----------------------------------------------------------------------

BlockClosure>>ifCurtailed:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Glorp.UnitOfWork>>commit

                outerContext = nil

                copiedValues = a Glorp.UnitOfWork

Arguments:

                terminationBlock = BlockClosure [] in Glorp.UnitOfWork>>commit

Context PC = 4

 

----------------------------------------------------------------------

Glorp.UnitOfWork>>commit

Receiver:

                an Glorp.UnitOfWork

Instance Variables:

                session = a Glorp.GlorpSession

                transaction = a Glorp.ObjectTransaction

                deletedObjects = an IdentitySet[0]

                newObjects = an IdentitySet[9]

                rowMap = a Glorp.RowMap

                commitPlan = an OrderedCollection[48]

                deletePlan = an OrderedCollection[0]

                rowsByTable = nil

                succeeded = nil

                linkRowsForUpdate = an IdentitySet[0]

                commitPhase = nil

                deleting = an IdentitySet[0]

Context PC = 11

 

----------------------------------------------------------------------

optimized [] in Glorp.GlorpSession>>commitUnitOfWork

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Glorp.GlorpSession

Context PC = 10

 

----------------------------------------------------------------------

BlockClosure>>ifCurtailed:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Glorp.GlorpSession>>commitUnitOfWork

                outerContext = nil

                copiedValues = a Glorp.GlorpSession

Arguments:

                terminationBlock = BlockClosure [] in Glorp.GlorpSession>>commitUnitOfWork

Context PC = 4

 

----------------------------------------------------------------------

Glorp.GlorpSession>>commitUnitOfWork

Receiver:

                a Glorp.GlorpSession

Instance Variables:

                system = a Store.Glorp.Store74DescriptorSystem

                currentUnitOfWork = a Glorp.UnitOfWork

                cache = a Glorp.CacheManager

                accessor = a Glorp.VWDatabaseAccessor

                applicationData = nil

                reaper = nil

                errorAction = nil

                modificationTracker = nil

Context PC = 11

 

----------------------------------------------------------------------

optimized [] in [] in Glorp.GlorpSession>>transact:

Receiver:

                an UndefinedObject

Temporaries:

                alreadyInTransaction = false

                alreadyInUnitOfWork = false

                result = a Glorp.GlorpSession

                .self = a Glorp.GlorpSession

                .aBlock = BlockClosure [] in Store.Glorp.ReplicatorPundleWriter>>writeNewPundle

Context PC = 59

 

----------------------------------------------------------------------

BlockClosure>>ifCurtailed:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in [] in Glorp.GlorpSession>>transact:

                outerContext = nil

                copiedValues = an Array[3]

Arguments:

                terminationBlock = BlockClosure [] in [] in Glorp.GlorpSession>>transact:

Context PC = 4

 

----------------------------------------------------------------------

optimized [] in Glorp.GlorpSession>>transact:

Receiver:

                an UndefinedObject

Temporaries:

                alreadyInTransaction = false

                alreadyInUnitOfWork = false

                result = a Glorp.GlorpSession

                .self = a Glorp.GlorpSession

                .aBlock = BlockClosure [] in Store.Glorp.ReplicatorPundleWriter>>writeNewPundle

Context PC = 16

 

----------------------------------------------------------------------

BlockClosure>>ifCurtailed:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Glorp.GlorpSession>>transact:

                outerContext = nil

                copiedValues = an Array[3]

Arguments:

                terminationBlock = BlockClosure [] in Glorp.GlorpSession>>transact:

Context PC = 4

 

----------------------------------------------------------------------

Glorp.GlorpSession>>transact:

Receiver:

                a Glorp.GlorpSession

Instance Variables:

                system = a Store.Glorp.Store74DescriptorSystem

                currentUnitOfWork = a Glorp.UnitOfWork

                cache = a Glorp.CacheManager

                accessor = a Glorp.VWDatabaseAccessor

                applicationData = nil

                reaper = nil

                errorAction = nil

                modificationTracker = nil

Arguments:

                aBlock = BlockClosure [] in Store.Glorp.ReplicatorPundleWriter>>writeNewPundle

Temporaries:

                alreadyInTransaction = false

                alreadyInUnitOfWork = false

                result = a Glorp.GlorpSession

Context PC = 17

 

----------------------------------------------------------------------

Store.Glorp.ReplicatorPundleWriter>>writeNewPundle

Receiver:

                a Store.Glorp.ReplicatorPundleWriter

Instance Variables:

                pundle = StoreBundle(DCL- Raven,)

                newPundle = StoreBundle(DCL- Raven,)

                previousVersionInTargetDatabase = nil

                targetSession = a Glorp.GlorpSession

                preWriteAction = nil

                splitPundles = false

                notificationQueue = nil

                startTime = 11:24:32 AM

                endTime = nil

                duration = nil

                parent = a Store.Glorp.StoreReplicator

                targetDatabaseIdentifier = #store77snn

Context PC = 37

 

----------------------------------------------------------------------

Store.Glorp.ReplicatorPundleWriter>>writePundle:

Receiver:

                a Store.Glorp.ReplicatorPundleWriter

Instance Variables:

                pundle = StoreBundle(DCL- Raven,)

                newPundle = StoreBundle(DCL- Raven,)

                previousVersionInTargetDatabase = nil

                targetSession = a Glorp.GlorpSession

                preWriteAction = nil

                splitPundles = false

                notificationQueue = nil

                startTime = 11:24:32 AM

                endTime = nil

                duration = nil

                parent = a Store.Glorp.StoreReplicator

                targetDatabaseIdentifier = #store77snn

Arguments:

                aPundle = StoreBundle(DCL- Raven,)

Context PC = 58

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Store.Glorp.StoreReplicator

                .aPundle = StoreBundle(DCL- Raven,)

Context PC = 28

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Store.Glorp.StoreReplicator>>replicatePundle:

                outerContext = nil

                copiedValues = an Array[2]

Arguments:

                anExceptionSelector = Glorp.GlorpDatabaseReadError

                handlerBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicatePundle:

Context PC = 18

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = #store77yvr

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = nil

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 2

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(DCL- Raven,)

Context PC = 17

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Receiver:

                an UndefinedObject

Arguments:

                each = StoreBundle(DCL- Raven,)

Temporaries:

                .self = a Store.Glorp.StoreReplicator

Context PC = 8

 

----------------------------------------------------------------------

Dictionary>>do:

Receiver:

                a Dictionary

Instance Variables:

                tally = 3

Arguments:

                aBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Temporaries:

                index = 3

                elem = 2 -> StoreBundle(DCL- Raven,)

Context PC = 32

 

----------------------------------------------------------------------

Glorp.Proxy(Glorp.AbstractProxy)>>doesNotUnderstand:

Receiver:

                a Glorp.Proxy

Instance Variables:

                value = a Dictionary[3]

                isInstantiated = true

                session = a Glorp.GlorpSession

                query = a SimpleQuery for a Glorp.BasicDictionaryMapping(bundles)

                parameters = an IdentityDictionary[1]

                action = nil

Arguments:

                aMessage = a Message with selector: #do: and arguments: #(BlockClosure [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:)

Context PC = 10

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = nil

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = nil

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 1

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(Build- Raven,9126)

Context PC = 28

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Store.Glorp.StoreReplicator

                .aPundle = StoreBundle(Build- Raven,9126)

Context PC = 13

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Store.Glorp.StoreReplicator>>replicatePundle:

                outerContext = nil

                copiedValues = an Array[2]

Arguments:

                anExceptionSelector = Glorp.GlorpDatabaseReadError

                handlerBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicatePundle:

Context PC = 18

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = nil

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = nil

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 1

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(Build- Raven,9126)

Context PC = 17

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Receiver:

                an UndefinedObject

Arguments:

                each = StoreBundle(Build- Raven,9126)

Temporaries:

                .self = a Store.Glorp.StoreReplicator

Context PC = 8

 

----------------------------------------------------------------------

Dictionary>>do:

Receiver:

                a Dictionary

Instance Variables:

                tally = 3

Arguments:

                aBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Temporaries:

                index = 2

                elem = 1 -> StoreBundle(Build- Raven,9126)

Context PC = 32

 

----------------------------------------------------------------------

Glorp.Proxy(Glorp.AbstractProxy)>>doesNotUnderstand:

Receiver:

                a Glorp.Proxy

Instance Variables:

                value = a Dictionary[3]

                isInstantiated = true

                session = a Glorp.GlorpSession

                query = a SimpleQuery for a Glorp.BasicDictionaryMapping(bundles)

                parameters = an IdentityDictionary[1]

                action = nil

Arguments:

                aMessage = a Message with selector: #do: and arguments: #(BlockClosure [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:)

Context PC = 10

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = nil

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = an OrderedCollection[0]

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 0

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(Dev- Raven,9125)

Context PC = 28

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Store.Glorp.StoreReplicator

                .aPundle = StoreBundle(Dev- Raven,9125)

Context PC = 13

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Store.Glorp.StoreReplicator>>replicatePundle:

                outerContext = nil

                copiedValues = an Array[2]

Arguments:

                anExceptionSelector = Glorp.GlorpDatabaseReadError

                handlerBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicatePundle:

Context PC = 18

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = nil

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = an OrderedCollection[0]

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 0

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(Dev- Raven,9125)

Context PC = 17

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Store.Glorp.StoreReplicator

                .aPundle = StoreBundle(Dev- Raven,9125)

Context PC = 7

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

                outerContext = nil

                copiedValues = an Array[2]

Arguments:

                anExceptionSelector = Error

                handlerBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

Context PC = 18

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = nil

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = an OrderedCollection[0]

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 0

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(Dev- Raven,9125)

Context PC = 14

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicationManager>>replicateNextPundle

Receiver:

                a Store.Glorp.StoreReplicationManager

Instance Variables:

                sourceLogin = a Login(a Glorp.PostgreSQLPlatform, 'PostgreSQLEXDIConnection', 'boris', 'astaro.pacnetservices.com_store77', '')

                targetLogin = a Login(a Glorp.PostgreSQLPlatform, 'PostgreSQLEXDIConnection', 'boris', 'localhost_store77', '')

                bundles = an Array[1]

                packages = an Array[0]

                replicator = a Store.Glorp.StoreReplicator

                gui = a Store.Glorp.UI.ReplicationUI

                backgroundProcess = a Process in Semaphore>>signal

                semaphore = a Semaphore[1]

                pundleQueue = a SharedQueue

                sourceSession = a Glorp.GlorpSession

                topLevelOnly = false

                retrieveBundles = true

                retrievePackages = true

Temporaries:

                aPundle = StoreBundle(Dev- Raven,9125)

                realPundle = StoreBundle(Dev- Raven,9125)

Context PC = 39

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicationManager>>startBackgroundReplicationProcess

Receiver:

                an UndefinedObject

Temporaries:

                moreToDo = nil

                .self = a Store.Glorp.StoreReplicationManager

Context PC = 7

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Store.Glorp.StoreReplicationManager>>startBackgroundReplicationProcess

                outerContext = nil

                copiedValues = a Store.Glorp.StoreReplicationManager

Arguments:

                anExceptionSelector = TerminateException

                handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:

Context PC = 18

 

----------------------------------------------------------------------

optimized [] in Process class>>forBlock:priority:

Receiver:

                an UndefinedObject

Temporaries:

                .aBlock = BlockClosure [] in Store.Glorp.StoreReplicationManager>>startBackgroundReplicationProcess

Context PC = 9

 

-Boris

Sr. Software Engineer

DeepCove Labs

4th floor, 595 Howe Street

Vancouver, BC V6C 2T5

Canada

 


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [Bulk] [7.8] Glorp Replicator Error

Alan Knight-2
It looks like it's failing some validation criterion. We did add some in
7.8 to deal with some interesting problems, or it's possible that
something is different in your database that is triggering an older one.
It's not obvious from the stack which criterion failed. Can you check
what the actual statement is that's failing? And yes, an error message
that indicated that would probably be better in that method than a "self
halt" :-)

Boris Popov, DeepCove Labs wrote:
> I’m running into the below error synchronizing two PostgreSQL
> repositories, does it ring any bells with anyone? We’ve been using
> Glorp Replicator for a long time now and this is the first time I’d
> seen any issue like this,
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [Bulk] [7.8] Glorp Replicator Error

Boris Popov, DeepCove Labs (SNN)
Alan,

The #halt is in the below, where 1 row out of 48 is failing this check,
looks like possible issue with the source database?

aUnitOfWork rowsToWrite do: [:each | (each table = bundleTable and:
[(each at: bundleVersionField) isNil]) ifTrue: [self halt]].

a Glorp.DatabaseRow(TW_Bundle)
    Field(TW_Bundle.primaryKey)->nil
    Field(TW_Bundle.name)->'DCL- Raven'
    Field(TW_Bundle.timeStamp)->567530425
    Field(TW_Bundle.version)->nil
    Field(TW_Bundle.userName)->'warren'
    Field(TW_Bundle.trace)->an Object
    Field(TW_Bundle.blessingLevel)->nil
    Field(TW_Bundle.commentID)->nil
    Field(TW_Bundle.propertiesID)->nil
    Field(TW_Bundle.vanguardID)->an Object
    Field(TW_Bundle.rearguardID)->an Object
    Field(TW_Bundle.vanguardStr)->an Object
    Field(TW_Bundle.rearguardStr)->an Object

Indeed, version, trace and blessing appear to be uninitialized in the
source db for some reason... I wonder how much trouble it'll be to
untangle this.

select * from tw_bundle where timestamp = 567530425
73574;"DCL- Application
Base";567530425;"9125";"warren";73403;60;0;1244216;"";"";"";""
73575;"DCL- Raven";567530425;"";"warren";0;;1253282;1253281;"";"";"";""
73576;"Build-
Raven";567530425;"9126";"warren";73468;60;0;1250733;"";"";"";""

-Boris

-----Original Message-----
From: Alan Knight [mailto:[hidden email]]
Sent: Thursday, August 11, 2011 11:57 AM
To: Boris Popov, DeepCove Labs
Cc: [hidden email]
Subject: Re: [Bulk] [vwnc] [7.8] Glorp Replicator Error

It looks like it's failing some validation criterion. We did add some in
7.8 to deal with some interesting problems, or it's possible that
something is different in your database that is triggering an older one.

It's not obvious from the stack which criterion failed. Can you check
what the actual statement is that's failing? And yes, an error message
that indicated that would probably be better in that method than a "self
halt" :-)

Boris Popov, DeepCove Labs wrote:
> I'm running into the below error synchronizing two PostgreSQL
> repositories, does it ring any bells with anyone? We've been using
> Glorp Replicator for a long time now and this is the first time I'd
> seen any issue like this,

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [Bulk] [7.8] Glorp Replicator Error

Alan Knight-2
Yes, that looks like the sort of thing that we put in those checks to catch. I suspect you would be ok to proceed through the halt which would write the replicated version the same way, which might be a problem using it, or you could go in and set a version field in the source database.



[hidden email]
11 August, 2011 12:18 PM


Alan,

The #halt is in the below, where 1 row out of 48 is failing this check,
looks like possible issue with the source database?

aUnitOfWork rowsToWrite do: [:each | (each table = bundleTable and:
[(each at: bundleVersionField) isNil]) ifTrue: [self halt]].

a Glorp.DatabaseRow(TW_Bundle)
Field(TW_Bundle.primaryKey)->nil
Field(TW_Bundle.name)->'DCL- Raven'
Field(TW_Bundle.timeStamp)->567530425
Field(TW_Bundle.version)->nil
Field(TW_Bundle.userName)->'warren'
Field(TW_Bundle.trace)->an Object
Field(TW_Bundle.blessingLevel)->nil
Field(TW_Bundle.commentID)->nil
Field(TW_Bundle.propertiesID)->nil
Field(TW_Bundle.vanguardID)->an Object
Field(TW_Bundle.rearguardID)->an Object
Field(TW_Bundle.vanguardStr)->an Object
Field(TW_Bundle.rearguardStr)->an Object

Indeed, version, trace and blessing appear to be uninitialized in the
source db for some reason... I wonder how much trouble it'll be to
untangle this.

select * from tw_bundle where timestamp = 567530425
73574;"DCL- Application
Base";567530425;"9125";"warren";73403;60;0;1244216;"";"";"";""
73575;"DCL- Raven";567530425;"";"warren";0;;1253282;1253281;"";"";"";""
73576;"Build-
Raven";567530425;"9126";"warren";73468;60;0;1250733;"";"";"";""

-Boris

-----Original Message-----
From: Alan Knight [[hidden email]]
Sent: Thursday, August 11, 2011 11:57 AM
To: Boris Popov, DeepCove Labs
Cc: [hidden email]
Subject: Re: [Bulk] [vwnc] [7.8] Glorp Replicator Error

It looks like it's failing some validation criterion. We did add some in
7.8 to deal with some interesting problems, or it's possible that
something is different in your database that is triggering an older one.

It's not obvious from the stack which criterion failed. Can you check
what the actual statement is that's failing? And yes, an error message
that indicated that would probably be better in that method than a "self
halt" :-)


[hidden email]
11 August, 2011 11:57 AM


It looks like it's failing some validation criterion. We did add some in
7.8 to deal with some interesting problems, or it's possible that
something is different in your database that is triggering an older one.
It's not obvious from the stack which criterion failed. Can you check
what the actual statement is that's failing? And yes, an error message
that indicated that would probably be better in that method than a "self
halt" :-)
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc


[hidden email]
11 August, 2011 11:27 AM


I’m running into the below error synchronizing two PostgreSQL repositories, does it ring any bells with anyone? We’ve been using Glorp Replicator for a long time now and this is  the first time I’d seen any issue like this,

 

Halt encountered.

Store.Glorp.Store74DescriptorSystem(Object)>>halt

optimized [] in Store.Glorp.StoreDescriptorSystem>>validateRows:

OrderedCollection>>do:

Store.Glorp.Store74DescriptorSystem(Store.Glorp.StoreDescriptorSystem)>>validateRows:

Glorp.UnitOfWork>>validateRows

Glorp.UnitOfWork>>preCommit

optimized [] in Glorp.UnitOfWork>>commit

BlockClosure>>ifCurtailed:

Glorp.UnitOfWork>>commit

optimized [] in Glorp.GlorpSession>>commitUnitOfWork

BlockClosure>>ifCurtailed:

Glorp.GlorpSession>>commitUnitOfWork

optimized [] in [] in Glorp.GlorpSession>>transact:

BlockClosure>>ifCurtailed:

optimized [] in Glorp.GlorpSession>>transact:

BlockClosure>>ifCurtailed:

Glorp.GlorpSession>>transact:

Store.Glorp.ReplicatorPundleWriter>>writeNewPundle

Store.Glorp.ReplicatorPundleWriter>>writePundle:

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

BlockClosure>>on:do:

Store.Glorp.StoreReplicator>>replicatePundle:

optimized [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Dictionary>>do:

Glorp.Proxy(Glorp.AbstractProxy)>>doesNotUnderstand:

Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

BlockClosure>>on:do:

Store.Glorp.StoreReplicator>>replicatePundle:

optimized [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Dictionary>>do:

Glorp.Proxy(Glorp.AbstractProxy)>>doesNotUnderstand:

Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

BlockClosure>>on:do:

Store.Glorp.StoreReplicator>>replicatePundle:

optimized [] in Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

BlockClosure>>on:do:

Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

Store.Glorp.StoreReplicationManager>>replicateNextPundle

optimized [] in Store.Glorp.StoreReplicationManager>>startBackgroundReplicationProcess

BlockClosure>>on:do:

optimized [] in Process class>>forBlock:priority:

 

----------------------------------------------------------------------

Store.Glorp.Store74DescriptorSystem(Object)>>halt

Receiver:

                a Store.Glorp.Store74DescriptorSystem

Instance Variables:

                session = a Glorp.GlorpSession

                platform = a Glorp.PostgreSQLPlatform

                descriptors = a Dictionary[30]

                tables = a Dictionary[26]

                sequences = a Dictionary[12]

                typeResolvers = a Dictionary[0]

                cachePolicy = a Glorp.CachePolicy

                allClasses = an OrderedCollection[55]

                useDirectAccessForMapping = true

                classModels = a Dictionary[26]

                useJoinsForAnySatisfy = nil

Context PC = 12

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreDescriptorSystem>>validateRows:

Receiver:

                an UndefinedObject

Arguments:

                each = a Glorp.DatabaseRow(TW_Bundle)

    Field(TW_Bundle.primaryKey)->nil

    Field(TW_Bundle.name)->'DCL- Raven'

    Field(TW_Bundle.timeStamp)->567530425

    Field(TW_Bundle.version)->nil

    Field(TW_Bundle.userName)->'warren'

    Field(TW_Bundle.trace)->an Object

    Field(TW_Bundle.blessingLevel)->nil

    Field(TW_Bundle.commentID)->nil

    Field(TW_Bundle.propertiesID)->nil

    Field(TW_Bundle.vanguardID)->an Object

    Field(TW_Bundle.rearguardID)->an Object

    Field(TW_Bundle.vanguardStr)->an Object

    Field(TW_Bundle.rearguardStr)->an Object

 

Temporaries:

                .bundleTable = a Store.Glorp.StoreDatabaseTable(TW_Bundle)

                .bundleVersionField = Field(TW_Bundle.version)

                .self = a Store.Glorp.Store74DescriptorSystem

Context PC = 18

 

----------------------------------------------------------------------

OrderedCollection>>do:

Receiver:

                an OrderedCollection

Instance Variables:

                firstIndex = 1

                lastIndex = 48

Arguments:

                aBlock = BlockClosure [] in Store.Glorp.StoreDescriptorSystem>>validateRows:

Temporaries:

                index = 6

Context PC = 17

 

----------------------------------------------------------------------

Store.Glorp.Store74DescriptorSystem(Store.Glorp.StoreDescriptorSystem)>>validateRows:

Receiver:

                a Store.Glorp.Store74DescriptorSystem

Instance Variables:

                session = a Glorp.GlorpSession

                platform = a Glorp.PostgreSQLPlatform

                descriptors = a Dictionary[30]

                tables = a Dictionary[26]

                sequences = a Dictionary[12]

                typeResolvers = a Dictionary[0]

                cachePolicy = a Glorp.CachePolicy

                allClasses = an OrderedCollection[55]

                useDirectAccessForMapping = true

                classModels = a Dictionary[26]

                useJoinsForAnySatisfy = nil

Arguments:

                aUnitOfWork = a Glorp.UnitOfWork

Temporaries:

                bundleTable = a Store.Glorp.StoreDatabaseTable(TW_Bundle)

                timestampField = Field(TW_Bundle.timeStamp)

                blobId = nil

                packageTable = a Store.Glorp.StoreDatabaseTable(TW_Package)

                packageVersionField = Field(TW_Package.version)

                bundleVersionField = Field(TW_Bundle.version)

                bundleTraceField = Field(TW_Bundle.trace)

                packageTraceField = Field(TW_Package.trace)

                allPackageKeys = nil

                packageField = nil

                packageNames = nil

                methodsTable = a Store.Glorp.StoreDatabaseTable(TW_Methods)

Context PC = 80

 

----------------------------------------------------------------------

Glorp.UnitOfWork>>validateRows

Receiver:

                an Glorp.UnitOfWork

Instance Variables:

                session = a Glorp.GlorpSession

                transaction = a Glorp.ObjectTransaction

                deletedObjects = an IdentitySet[0]

                newObjects = an IdentitySet[9]

                rowMap = a Glorp.RowMap

                commitPlan = an OrderedCollection[48]

                deletePlan = an OrderedCollection[0]

                rowsByTable = nil

                succeeded = nil

                linkRowsForUpdate = an IdentitySet[0]

                commitPhase = nil

                deleting = an IdentitySet[0]

Temporaries:

                tables = a Set[7]

                tableNames = a Set[7]

Context PC = 34

 

----------------------------------------------------------------------

Glorp.UnitOfWork>>preCommit

Receiver:

                an Glorp.UnitOfWork

Instance Variables:

                session = a Glorp.GlorpSession

                transaction = a Glorp.ObjectTransaction

                deletedObjects = an IdentitySet[0]

                newObjects = an IdentitySet[9]

                rowMap = a Glorp.RowMap

                commitPlan = an OrderedCollection[48]

                deletePlan = an OrderedCollection[0]

                rowsByTable = nil

                succeeded = nil

                linkRowsForUpdate = an IdentitySet[0]

                commitPhase = nil

                deleting = an IdentitySet[0]

Context PC = 32

 

----------------------------------------------------------------------

optimized [] in Glorp.UnitOfWork>>commit

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Glorp.UnitOfWork

Context PC = 6

 

----------------------------------------------------------------------

BlockClosure>>ifCurtailed:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Glorp.UnitOfWork>>commit

                outerContext = nil

                copiedValues = a Glorp.UnitOfWork

Arguments:

                terminationBlock = BlockClosure [] in Glorp.UnitOfWork>>commit

Context PC = 4

 

----------------------------------------------------------------------

Glorp.UnitOfWork>>commit

Receiver:

                an Glorp.UnitOfWork

Instance Variables:

                session = a Glorp.GlorpSession

                transaction = a Glorp.ObjectTransaction

                deletedObjects = an IdentitySet[0]

                newObjects = an IdentitySet[9]

                rowMap = a Glorp.RowMap

                commitPlan = an OrderedCollection[48]

                deletePlan = an OrderedCollection[0]

                rowsByTable = nil

                succeeded = nil

                linkRowsForUpdate = an IdentitySet[0]

                commitPhase = nil

                deleting = an IdentitySet[0]

Context PC = 11

 

----------------------------------------------------------------------

optimized [] in Glorp.GlorpSession>>commitUnitOfWork

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Glorp.GlorpSession

Context PC = 10

 

----------------------------------------------------------------------

BlockClosure>>ifCurtailed:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Glorp.GlorpSession>>commitUnitOfWork

                outerContext = nil

                copiedValues = a Glorp.GlorpSession

Arguments:

                terminationBlock = BlockClosure [] in Glorp.GlorpSession>>commitUnitOfWork

Context PC = 4

 

----------------------------------------------------------------------

Glorp.GlorpSession>>commitUnitOfWork

Receiver:

                a Glorp.GlorpSession

Instance Variables:

                system = a Store.Glorp.Store74DescriptorSystem

                currentUnitOfWork = a Glorp.UnitOfWork

                cache = a Glorp.CacheManager

                accessor = a Glorp.VWDatabaseAccessor

                applicationData = nil

                reaper = nil

                errorAction = nil

                modificationTracker = nil

Context PC = 11

 

----------------------------------------------------------------------

optimized [] in [] in Glorp.GlorpSession>>transact:

Receiver:

                an UndefinedObject

Temporaries:

                alreadyInTransaction = false

                alreadyInUnitOfWork = false

                result = a Glorp.GlorpSession

                .self = a Glorp.GlorpSession

                .aBlock = BlockClosure [] in Store.Glorp.ReplicatorPundleWriter>>writeNewPundle

Context PC = 59

 

----------------------------------------------------------------------

BlockClosure>>ifCurtailed:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in [] in Glorp.GlorpSession>>transact:

                outerContext = nil

                copiedValues = an Array[3]

Arguments:

                terminationBlock = BlockClosure [] in [] in Glorp.GlorpSession>>transact:

Context PC = 4

 

----------------------------------------------------------------------

optimized [] in Glorp.GlorpSession>>transact:

Receiver:

                an UndefinedObject

Temporaries:

                alreadyInTransaction = false

                alreadyInUnitOfWork = false

                result = a Glorp.GlorpSession

                .self = a Glorp.GlorpSession

                .aBlock = BlockClosure [] in Store.Glorp.ReplicatorPundleWriter>>writeNewPundle

Context PC = 16

 

----------------------------------------------------------------------

BlockClosure>>ifCurtailed:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Glorp.GlorpSession>>transact:

                outerContext = nil

                copiedValues = an Array[3]

Arguments:

                terminationBlock = BlockClosure [] in Glorp.GlorpSession>>transact:

Context PC = 4

 

----------------------------------------------------------------------

Glorp.GlorpSession>>transact:

Receiver:

                a Glorp.GlorpSession

Instance Variables:

                system = a Store.Glorp.Store74DescriptorSystem

                currentUnitOfWork = a Glorp.UnitOfWork

                cache = a Glorp.CacheManager

                accessor = a Glorp.VWDatabaseAccessor

                applicationData = nil

                reaper = nil

                errorAction = nil

                modificationTracker = nil

Arguments:

                aBlock = BlockClosure [] in Store.Glorp.ReplicatorPundleWriter>>writeNewPundle

Temporaries:

                alreadyInTransaction = false

                alreadyInUnitOfWork = false

                result = a Glorp.GlorpSession

Context PC = 17

 

----------------------------------------------------------------------

Store.Glorp.ReplicatorPundleWriter>>writeNewPundle

Receiver:

                a Store.Glorp.ReplicatorPundleWriter

Instance Variables:

                pundle = StoreBundle(DCL- Raven,)

                newPundle = StoreBundle(DCL- Raven,)

                previousVersionInTargetDatabase = nil

                targetSession = a Glorp.GlorpSession

                preWriteAction = nil

                splitPundles = false

                notificationQueue = nil

                startTime = 11:24:32 AM

                endTime = nil

                duration = nil

                parent = a Store.Glorp.StoreReplicator

                targetDatabaseIdentifier = #store77snn

Context PC = 37

 

----------------------------------------------------------------------

Store.Glorp.ReplicatorPundleWriter>>writePundle:

Receiver:

                a Store.Glorp.ReplicatorPundleWriter

Instance Variables:

                pundle = StoreBundle(DCL- Raven,)

                newPundle = StoreBundle(DCL- Raven,)

                previousVersionInTargetDatabase = nil

                targetSession = a Glorp.GlorpSession

                preWriteAction = nil

                splitPundles = false

                notificationQueue = nil

                startTime = 11:24:32 AM

                endTime = nil

                duration = nil

                parent = a Store.Glorp.StoreReplicator

                targetDatabaseIdentifier = #store77snn

Arguments:

                aPundle = StoreBundle(DCL- Raven,)

Context PC = 58

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Store.Glorp.StoreReplicator

                .aPundle = StoreBundle(DCL- Raven,)

Context PC = 28

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Store.Glorp.StoreReplicator>>replicatePundle:

                outerContext = nil

                copiedValues = an Array[2]

Arguments:

                anExceptionSelector = Glorp.GlorpDatabaseReadError

                handlerBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicatePundle:

Context PC = 18

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = #store77yvr

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = nil

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 2

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(DCL- Raven,)

Context PC = 17

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Receiver:

                an UndefinedObject

Arguments:

                each = StoreBundle(DCL- Raven,)

Temporaries:

                .self = a Store.Glorp.StoreReplicator

Context PC = 8

 

----------------------------------------------------------------------

Dictionary>>do:

Receiver:

                a Dictionary

Instance Variables:

                tally = 3

Arguments:

                aBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Temporaries:

                index = 3

                elem = 2 -> StoreBundle(DCL- Raven,)

Context PC = 32

 

----------------------------------------------------------------------

Glorp.Proxy(Glorp.AbstractProxy)>>doesNotUnderstand:

Receiver:

                a Glorp.Proxy

Instance Variables:

                value = a Dictionary[3]

                isInstantiated = true

                session = a Glorp.GlorpSession

                query = a SimpleQuery for a Glorp.BasicDictionaryMapping(bundles)

                parameters = an IdentityDictionary[1]

                action = nil

Arguments:

                aMessage = a Message with selector: #do: and arguments: #(BlockClosure [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:)

Context PC = 10

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = nil

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = nil

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 1

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(Build- Raven,9126)

Context PC = 28

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Store.Glorp.StoreReplicator

                .aPundle = StoreBundle(Build- Raven,9126)

Context PC = 13

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Store.Glorp.StoreReplicator>>replicatePundle:

                outerContext = nil

                copiedValues = an Array[2]

Arguments:

                anExceptionSelector = Glorp.GlorpDatabaseReadError

                handlerBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicatePundle:

Context PC = 18

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = nil

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = nil

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 1

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(Build- Raven,9126)

Context PC = 17

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Receiver:

                an UndefinedObject

Arguments:

                each = StoreBundle(Build- Raven,9126)

Temporaries:

                .self = a Store.Glorp.StoreReplicator

Context PC = 8

 

----------------------------------------------------------------------

Dictionary>>do:

Receiver:

                a Dictionary

Instance Variables:

                tally = 3

Arguments:

                aBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Temporaries:

                index = 2

                elem = 1 -> StoreBundle(Build- Raven,9126)

Context PC = 32

 

----------------------------------------------------------------------

Glorp.Proxy(Glorp.AbstractProxy)>>doesNotUnderstand:

Receiver:

                a Glorp.Proxy

Instance Variables:

                value = a Dictionary[3]

                isInstantiated = true

                session = a Glorp.GlorpSession

                query = a SimpleQuery for a Glorp.BasicDictionaryMapping(bundles)

                parameters = an IdentityDictionary[1]

                action = nil

Arguments:

                aMessage = a Message with selector: #do: and arguments: #(BlockClosure [] in Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:)

Context PC = 10

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicateSubComponentsOfPundle:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = nil

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = an OrderedCollection[0]

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 0

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(Dev- Raven,9125)

Context PC = 28

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Store.Glorp.StoreReplicator

                .aPundle = StoreBundle(Dev- Raven,9125)

Context PC = 13

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Store.Glorp.StoreReplicator>>replicatePundle:

                outerContext = nil

                copiedValues = an Array[2]

Arguments:

                anExceptionSelector = Glorp.GlorpDatabaseReadError

                handlerBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicatePundle:

Context PC = 18

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicatePundle:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = nil

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = an OrderedCollection[0]

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 0

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(Dev- Raven,9125)

Context PC = 17

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

Receiver:

                an UndefinedObject

Temporaries:

                .self = a Store.Glorp.StoreReplicator

                .aPundle = StoreBundle(Dev- Raven,9125)

Context PC = 7

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

                outerContext = nil

                copiedValues = an Array[2]

Arguments:

                anExceptionSelector = Error

                handlerBlock = BlockClosure [] in Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

Context PC = 18

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicator>>replicatePundleSkippingErrorsAsInvalidPundles:

Receiver:

                a Store.Glorp.StoreReplicator

Instance Variables:

                sourceSession = a Glorp.GlorpSession

                sourceDatabaseIdentifier = nil

                targetSession = a Glorp.GlorpSession

                targetDatabaseIdentifier = nil

                replicationLog = a Store.Glorp.FullTranscriptLog

                maximumRetries = 100

                numberToReplicateAtOnce = nil

                replicateOnlyOriginalVersions = false

                replicateRecursively = true

                shouldFixExistingVersions = false

                skipOldVersions = true

                sourcePundleIdentifiers = nil

                targetPundleIdentifiers = nil

                knownInvalid = an OrderedCollection[0]

                alreadyCheckedBundles = a Set[0]

                alreadyCheckedPackages = a Set[0]

                oldestMatchingVersion = nil

                hasIndexes = false

                isBundle = true

                depth = 0

                retries = 0

                targetVersionName = nil

                parentVersionName = nil

Arguments:

                aPundle = StoreBundle(Dev- Raven,9125)

Context PC = 14

 

----------------------------------------------------------------------

Store.Glorp.StoreReplicationManager>>replicateNextPundle

Receiver:

                a Store.Glorp.StoreReplicationManager

Instance Variables:

                sourceLogin = a Login(a Glorp.PostgreSQLPlatform, 'PostgreSQLEXDIConnection', 'boris', 'astaro.pacnetservices.com_store77', '')

                targetLogin = a Login(a Glorp.PostgreSQLPlatform, 'PostgreSQLEXDIConnection', 'boris', 'localhost_store77', '')

                bundles = an Array[1]

                packages = an Array[0]

                replicator = a Store.Glorp.StoreReplicator

                gui = a Store.Glorp.UI.ReplicationUI

                backgroundProcess = a Process in Semaphore>>signal

                semaphore = a Semaphore[1]

                pundleQueue = a SharedQueue

                sourceSession = a Glorp.GlorpSession

                topLevelOnly = false

                retrieveBundles = true

                retrievePackages = true

Temporaries:

                aPundle = StoreBundle(Dev- Raven,9125)

                realPundle = StoreBundle(Dev- Raven,9125)

Context PC = 39

 

----------------------------------------------------------------------

optimized [] in Store.Glorp.StoreReplicationManager>>startBackgroundReplicationProcess

Receiver:

                an UndefinedObject

Temporaries:

                moreToDo = nil

                .self = a Store.Glorp.StoreReplicationManager

Context PC = 7

 

----------------------------------------------------------------------

BlockClosure>>on:do:

Receiver:

                a BlockClosure

Instance Variables:

                method = CompiledBlock [] in Store.Glorp.StoreReplicationManager>>startBackgroundReplicationProcess

                outerContext = nil

                copiedValues = a Store.Glorp.StoreReplicationManager

Arguments:

                anExceptionSelector = TerminateException

                handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:

Context PC = 18

 

----------------------------------------------------------------------

optimized [] in Process class>>forBlock:priority:

Receiver:

                an UndefinedObject

Temporaries:

                .aBlock = BlockClosure [] in Store.Glorp.StoreReplicationManager>>startBackgroundReplicationProcess

Context PC = 9

 

-Boris

Sr. Software Engineer

DeepCove Labs

4th floor, 595 Howe Street

Vancouver, BC V6C 2T5

Canada

 

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [Bulk] [7.8] Glorp Replicator Error

Alan Knight-2
Yes, that looks like the sort of thing that we put in those checks to
catch. I suspect you would be ok to proceed through the halt which would
write the replicated version the same way, which might be a problem
using it, or you could go in and set a version field in the source database.

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [Bulk] [7.8] Glorp Replicator Error

Boris Popov, DeepCove Labs (SNN)
Alan,

Thanks. I did get through that bit with the below, will just fix
whatever else got borked if/when the replicator comes across it. Could
someone make note of needing a non-null constraint on the version column
in tw_bundle (and tw_package, perhaps)?

update tw_bundle set version = '9125x' where primarykey = 73575;

-Boris

-----Original Message-----
From: Alan Knight [mailto:[hidden email]]
Sent: Thursday, August 11, 2011 2:33 PM
To: Boris Popov, DeepCove Labs
Cc: [hidden email]
Subject: Re: [Bulk] [vwnc] [7.8] Glorp Replicator Error

Yes, that looks like the sort of thing that we put in those checks to
catch. I suspect you would be ok to proceed through the halt which would
write the replicated version the same way, which might be a problem
using it, or you could go in and set a version field in the source
database.


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [Bulk] [7.8] Glorp Replicator Error

Alan Knight-2
It's there in 7.8, but only for new databases you create. Applying those type of constraints to an existing database runs the risk that it can't apply it until you've cleaned up your old data.



[hidden email]
11 August, 2011 2:37 PM


Alan,

Thanks. I did get through that bit with the below, will just fix
whatever else got borked if/when the replicator comes across it. Could
someone make note of needing a non-null constraint on the version column
in tw_bundle (and tw_package, perhaps)?

update tw_bundle set version = '9125x' where primarykey = 73575;

-Boris

-----Original Message-----
From: Alan Knight [[hidden email]]
Sent: Thursday, August 11, 2011 2:33 PM
To: Boris Popov, DeepCove Labs
Cc: [hidden email]
Subject: Re: [Bulk] [vwnc] [7.8] Glorp Replicator Error

Yes, that looks like the sort of thing that we put in those checks to
catch. I suspect you would be ok to proceed through the halt which would
write the replicated version the same way, which might be a problem
using it, or you could go in and set a version field in the source
database.



[hidden email]
11 August, 2011 2:32 PM


Yes, that looks like the sort of thing that we put in those checks to
catch. I suspect you would be ok to proceed through the halt which would
write the replicated version the same way, which might be a problem
using it, or you could go in and set a version field in the source database.

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc


[hidden email]
11 August, 2011 2:26 PM


Yes, that looks like the sort of thing that we put in those checks to catch. I suspect you would be ok to proceed through the halt which would write the replicated version the same way, which might be a problem using it, or you could go in and set a version field in the source database.



[hidden email]
11 August, 2011 12:18 PM


Alan,

The #halt is in the below, where 1 row out of 48 is failing this check,
looks like possible issue with the source database?

aUnitOfWork rowsToWrite do: [:each | (each table = bundleTable and:
[(each at: bundleVersionField) isNil]) ifTrue: [self halt]].

a Glorp.DatabaseRow(TW_Bundle)
Field(TW_Bundle.primaryKey)->nil
Field(TW_Bundle.name)->'DCL- Raven'
Field(TW_Bundle.timeStamp)->567530425
Field(TW_Bundle.version)->nil
Field(TW_Bundle.userName)->'warren'
Field(TW_Bundle.trace)->an Object
Field(TW_Bundle.blessingLevel)->nil
Field(TW_Bundle.commentID)->nil
Field(TW_Bundle.propertiesID)->nil
Field(TW_Bundle.vanguardID)->an Object
Field(TW_Bundle.rearguardID)->an Object
Field(TW_Bundle.vanguardStr)->an Object
Field(TW_Bundle.rearguardStr)->an Object

Indeed, version, trace and blessing appear to be uninitialized in the
source db for some reason... I wonder how much trouble it'll be to
untangle this.

select * from tw_bundle where timestamp = 567530425
73574;"DCL- Application
Base";567530425;"9125";"warren";73403;60;0;1244216;"";"";"";""
73575;"DCL- Raven";567530425;"";"warren";0;;1253282;1253281;"";"";"";""
73576;"Build-
Raven";567530425;"9126";"warren";73468;60;0;1250733;"";"";"";""

-Boris

-----Original Message-----
From: Alan Knight [[hidden email]]
Sent: Thursday, August 11, 2011 11:57 AM
To: Boris Popov, DeepCove Labs
Cc: [hidden email]
Subject: Re: [Bulk] [vwnc] [7.8] Glorp Replicator Error

It looks like it's failing some validation criterion. We did add some in
7.8 to deal with some interesting problems, or it's possible that
something is different in your database that is triggering an older one.

It's not obvious from the stack which criterion failed. Can you check
what the actual statement is that's failing? And yes, an error message
that indicated that would probably be better in that method than a "self
halt" :-)


[hidden email]
11 August, 2011 11:57 AM


It looks like it's failing some validation criterion. We did add some in
7.8 to deal with some interesting problems, or it's possible that
something is different in your database that is triggering an older one.
It's not obvious from the stack which criterion failed. Can you check
what the actual statement is that's failing? And yes, an error message
that indicated that would probably be better in that method than a "self
halt" :-)
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc