Skip to content

Threadx modules kernel stack memory leakage #400

@amgross

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

Metadata

Metadata

Assignees

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

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions