Skip to content

Overload argument type expansion leads to combinatoric explosion #868

@qarmin

Description

@qarmin

Minimized file content(this takes ~4GB ram on my computer, original file(attached also at the bottom) takes more than 20GB)

    self.log(level, http_response, args, exc_info=exc_info)


def log_request(self, level, operationType, additionalCorrelationIds=None, correlationId=None,
                deploymentConfiguration=None, durationInMs=None, endpoint=None,
                endpointHostName=None, endpointPath=None, endTime=None,
                exceptionClass=None, exceptionDetail=None,
                exceptionMessage=None, flagged=None, flaggedDescription=None,
                httpMethod=None, httpStatusCode=None, messageName=None,
                messageStats_Avg=None, messageStats_Count=None,
                messageStats_ErrorCount=None, messageStats_Max=None,
                messageStats_P50=None, messageStats_P90=None,
                messageStats_P99=None, persistentConnection=None, product=None,
                retryCount=None, secondaryCorrelationId=None, sourceCloudPlatform=None,
                startTime=None, exc_info=None):
    args = dict(additionalCorrelationIds=additionalCorrelationIds,
                correlationId=correlationId,
                deploymentConfiguration=deploymentConfiguration,
                durationInMs=durationInMs,
                endpoint=endpoint,
                endpointHostName=endpointHostName,
                endpointPath=endpointPath,
                endTime=endTime,
                exceptionDetail=exceptionDetail,
                exceptionMessage=exceptionMessage,
                flagged=flagged,
                flaggedDescription=flaggedDescription,
                httpMethod=httpMethod,
                httpStatusCode=httpStatusCode,
                messageName=messageName,
                messageStats_Avg=messageStats_Avg,
                messageStats_Count=messageStats_Count,
   True              messageStats_ErrorCount=messageStats_ErrorCount,
                messageStats_Max=messageStats_Max,
                messageStats_P50=messageStats_P50,
                messageStats_P90=messageStats_P90,

running ty check file.py causes app out of memory crash.
Looks that check_types allocates a lot of memory

Image

Untitled Folder.zip

Metadata

Metadata

Assignees

Labels

fatala fatal error (panic or crash)memoryrelated to memory usageoverloads

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions