Skip to content

Threadx modules kernel stack memory leakage #400

Description

@amgross

Describe the bug
tx_thread_module_kernel_stack_start is allocated at _txm_module_manager_thread_create from the object pool, but is not released at thread delete function (it is deleted upon module stop when all objects of the module are deleted)

To Reproduce
Run from module:

    while(1)
    {
		status = txm_module_object_allocate(<thread_ptr>, sizeof(TX_THREAD));
		assert(TX_SUCCESS == status);

		status = tx_thread_create(<thread_ptr>, "my thread", <my_thread_func>, 0, <stack_ptr>,
                <stack size>, <priority>, <priority>, <time slice>, TX_DONT_START);
		assert(TX_SUCCESS == status);

		status = tx_thread_terminate(<thread_ptr>);
		assert(TX_SUCCESS == status);

		// This system call deallocating also <thread_ptr>, so will need to allocate it afterward
		tx_thread_delete(<thread_ptr>);
		assert(TX_SUCCESS == status);
    }

Expected behavior
tx_thread_module_kernel_stack_start should be released upon thread delete.

Impact
Can leak object pool out of memory, which cause no more option to create OS objects from module

Logs and console output

Additional context

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogThe issue or feature request has been added to the project backlog for prioritizationbugSomething isn't workinggood first issueGood for newcomershardwareNew hardware or architecture support request

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions