kdheepak / taskwarrior-tui

`taskwarrior-tui`: A terminal user interface for taskwarrior
https://kdheepak.com/taskwarrior-tui
MIT License
1.4k stars 68 forks source link

High idle CPU usage with Taskwarrior 3.0.0 #545

Closed manuelVo closed 2 months ago

manuelVo commented 3 months ago

Describe the bug With the new Taskwarrior Version 3.0.0, taskwarrior-tui has a fairly high CPU utilization - enough to make my fans spin up. Oddly enough this only happens after deleting the old taskwarrior .data files.

To Reproduce

Steps to reproduce the behavior: Environment (please complete the following information):

Here is a log for taskwarrior-tui running for roughly 2 seconds with the .data files removed (cpu usage is high):

2024-03-26 10:20:27 | DEBUG | src/main.rs:180 | getting matches from clap...
2024-03-26 10:20:27 | DEBUG | src/main.rs:181 | report = "next"
2024-03-26 10:20:27 | DEBUG | src/main.rs:182 | config = None
2024-03-26 10:20:27 | TRACE | src/app.rs:1302 | self.update(true);
2024-03-26 10:20:27 | INFO | src/app.rs:1714 | Running `"task" "rc.json.array=on" "rc.confirmation=off" "rc.json.depends.array=on" "rc.color=off" "rc._forcecolor=off" "rc.report.next.filter=status:pending -WAITING -BLOCKED" "export" "next"`
2024-03-26 10:20:27 | INFO | src/app.rs:1722 | Imported 12 tasks
2024-03-26 10:20:27 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for f8470e92-0286-4b85-91f4-acf6bf693f6c
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 6c4c9ee8-d6c4-4d64-a84d-bf9cb710684e
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 7bb0e242-4610-475d-98a6-9b75d97be6a7
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 0b11967d-9dae-4333-a137-c3b1e8a641d3
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 62c386dc-4403-4756-a56a-becad2538e77
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for b16a359d-427f-4e0f-92eb-8cc07736b6a4
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 3f43831b-88dc-45e2-bf0d-4aea6db634cc
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 3c88c2b0-19c8-46d3-aaa3-0f915368ac25
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 1861bcb6-a199-4bf4-b8b9-d4011749906c
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for b3f9e124-64c2-4dc0-8351-9b2200e2863e
2024-03-26 10:20:27 | DEBUG | src/history.rs:48 | Loading history of length 25
2024-03-26 10:20:27 | DEBUG | src/history.rs:48 | Loading history of length 100
2024-03-26 10:20:27 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:20:27 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:20:27 | INFO | src/app.rs:1714 | Running `"task" "rc.json.array=on" "rc.confirmation=off" "rc.json.depends.array=on" "rc.color=off" "rc._forcecolor=off" "rc.report.next.filter=status:pending -WAITING -BLOCKED" "export" "next"`
2024-03-26 10:20:27 | INFO | src/app.rs:1722 | Imported 12 tasks
2024-03-26 10:20:27 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for f8470e92-0286-4b85-91f4-acf6bf693f6c
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 6c4c9ee8-d6c4-4d64-a84d-bf9cb710684e
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 7bb0e242-4610-475d-98a6-9b75d97be6a7
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 0b11967d-9dae-4333-a137-c3b1e8a641d3
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 62c386dc-4403-4756-a56a-becad2538e77
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for b16a359d-427f-4e0f-92eb-8cc07736b6a4
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 3f43831b-88dc-45e2-bf0d-4aea6db634cc
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 3c88c2b0-19c8-46d3-aaa3-0f915368ac25
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 1861bcb6-a199-4bf4-b8b9-d4011749906c
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for b3f9e124-64c2-4dc0-8351-9b2200e2863e
2024-03-26 10:20:27 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:20:27 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:20:27 | INFO | src/app.rs:1714 | Running `"task" "rc.json.array=on" "rc.confirmation=off" "rc.json.depends.array=on" "rc.color=off" "rc._forcecolor=off" "rc.report.next.filter=status:pending -WAITING -BLOCKED" "export" "next"`
2024-03-26 10:20:27 | INFO | src/app.rs:1722 | Imported 12 tasks
2024-03-26 10:20:27 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for f8470e92-0286-4b85-91f4-acf6bf693f6c
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 6c4c9ee8-d6c4-4d64-a84d-bf9cb710684e
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 7bb0e242-4610-475d-98a6-9b75d97be6a7
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 0b11967d-9dae-4333-a137-c3b1e8a641d3
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 62c386dc-4403-4756-a56a-becad2538e77
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for b16a359d-427f-4e0f-92eb-8cc07736b6a4
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 3f43831b-88dc-45e2-bf0d-4aea6db634cc
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 3c88c2b0-19c8-46d3-aaa3-0f915368ac25
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 1861bcb6-a199-4bf4-b8b9-d4011749906c
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for b3f9e124-64c2-4dc0-8351-9b2200e2863e
2024-03-26 10:20:27 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:20:27 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:20:27 | INFO | src/app.rs:1714 | Running `"task" "rc.json.array=on" "rc.confirmation=off" "rc.json.depends.array=on" "rc.color=off" "rc._forcecolor=off" "rc.report.next.filter=status:pending -WAITING -BLOCKED" "export" "next"`
2024-03-26 10:20:27 | INFO | src/app.rs:1722 | Imported 12 tasks
2024-03-26 10:20:27 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for f8470e92-0286-4b85-91f4-acf6bf693f6c
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 6c4c9ee8-d6c4-4d64-a84d-bf9cb710684e
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 7bb0e242-4610-475d-98a6-9b75d97be6a7
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 0b11967d-9dae-4333-a137-c3b1e8a641d3
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 62c386dc-4403-4756-a56a-becad2538e77
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for b16a359d-427f-4e0f-92eb-8cc07736b6a4
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 3f43831b-88dc-45e2-bf0d-4aea6db634cc
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 3c88c2b0-19c8-46d3-aaa3-0f915368ac25
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for 1861bcb6-a199-4bf4-b8b9-d4011749906c
2024-03-26 10:20:27 | DEBUG | src/app.rs:1410 | Running task details for b3f9e124-64c2-4dc0-8351-9b2200e2863e
2024-03-26 10:20:28 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:20:28 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:20:28 | INFO | src/app.rs:1714 | Running `"task" "rc.json.array=on" "rc.confirmation=off" "rc.json.depends.array=on" "rc.color=off" "rc._forcecolor=off" "rc.report.next.filter=status:pending -WAITING -BLOCKED" "export" "next"`
2024-03-26 10:20:28 | INFO | src/app.rs:1722 | Imported 12 tasks
2024-03-26 10:20:28 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for f8470e92-0286-4b85-91f4-acf6bf693f6c
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 6c4c9ee8-d6c4-4d64-a84d-bf9cb710684e
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 7bb0e242-4610-475d-98a6-9b75d97be6a7
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 0b11967d-9dae-4333-a137-c3b1e8a641d3
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 62c386dc-4403-4756-a56a-becad2538e77
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for b16a359d-427f-4e0f-92eb-8cc07736b6a4
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 3f43831b-88dc-45e2-bf0d-4aea6db634cc
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 3c88c2b0-19c8-46d3-aaa3-0f915368ac25
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 1861bcb6-a199-4bf4-b8b9-d4011749906c
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for b3f9e124-64c2-4dc0-8351-9b2200e2863e
2024-03-26 10:20:28 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:20:28 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:20:28 | INFO | src/app.rs:1714 | Running `"task" "rc.json.array=on" "rc.confirmation=off" "rc.json.depends.array=on" "rc.color=off" "rc._forcecolor=off" "rc.report.next.filter=status:pending -WAITING -BLOCKED" "export" "next"`
2024-03-26 10:20:28 | INFO | src/app.rs:1722 | Imported 12 tasks
2024-03-26 10:20:28 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for f8470e92-0286-4b85-91f4-acf6bf693f6c
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 6c4c9ee8-d6c4-4d64-a84d-bf9cb710684e
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 7bb0e242-4610-475d-98a6-9b75d97be6a7
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 0b11967d-9dae-4333-a137-c3b1e8a641d3
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 62c386dc-4403-4756-a56a-becad2538e77
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for b16a359d-427f-4e0f-92eb-8cc07736b6a4
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 3f43831b-88dc-45e2-bf0d-4aea6db634cc
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 3c88c2b0-19c8-46d3-aaa3-0f915368ac25
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 1861bcb6-a199-4bf4-b8b9-d4011749906c
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for b3f9e124-64c2-4dc0-8351-9b2200e2863e
2024-03-26 10:20:28 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:20:28 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:20:28 | INFO | src/app.rs:1714 | Running `"task" "rc.json.array=on" "rc.confirmation=off" "rc.json.depends.array=on" "rc.color=off" "rc._forcecolor=off" "rc.report.next.filter=status:pending -WAITING -BLOCKED" "export" "next"`
2024-03-26 10:20:28 | INFO | src/app.rs:1722 | Imported 12 tasks
2024-03-26 10:20:28 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for f8470e92-0286-4b85-91f4-acf6bf693f6c
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 6c4c9ee8-d6c4-4d64-a84d-bf9cb710684e
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 7bb0e242-4610-475d-98a6-9b75d97be6a7
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 0b11967d-9dae-4333-a137-c3b1e8a641d3
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 62c386dc-4403-4756-a56a-becad2538e77
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for b16a359d-427f-4e0f-92eb-8cc07736b6a4
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 3f43831b-88dc-45e2-bf0d-4aea6db634cc
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 3c88c2b0-19c8-46d3-aaa3-0f915368ac25
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for 1861bcb6-a199-4bf4-b8b9-d4011749906c
2024-03-26 10:20:28 | DEBUG | src/app.rs:1410 | Running task details for b3f9e124-64c2-4dc0-8351-9b2200e2863e
2024-03-26 10:20:28 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:20:28 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:20:28 | INFO | src/app.rs:1714 | Running `"task" "rc.json.array=on" "rc.confirmation=off" "rc.json.depends.array=on" "rc.color=off" "rc._forcecolor=off" "rc.report.next.filter=status:pending -WAITING -BLOCKED" "export" "next"`
2024-03-26 10:20:28 | INFO | src/app.rs:1722 | Imported 12 tasks
2024-03-26 10:20:29 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for f8470e92-0286-4b85-91f4-acf6bf693f6c
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 6c4c9ee8-d6c4-4d64-a84d-bf9cb710684e
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 7bb0e242-4610-475d-98a6-9b75d97be6a7
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 0b11967d-9dae-4333-a137-c3b1e8a641d3
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 62c386dc-4403-4756-a56a-becad2538e77
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for b16a359d-427f-4e0f-92eb-8cc07736b6a4
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 3f43831b-88dc-45e2-bf0d-4aea6db634cc
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 3c88c2b0-19c8-46d3-aaa3-0f915368ac25
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 1861bcb6-a199-4bf4-b8b9-d4011749906c
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for b3f9e124-64c2-4dc0-8351-9b2200e2863e
2024-03-26 10:20:29 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:20:29 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:20:29 | INFO | src/app.rs:1714 | Running `"task" "rc.json.array=on" "rc.confirmation=off" "rc.json.depends.array=on" "rc.color=off" "rc._forcecolor=off" "rc.report.next.filter=status:pending -WAITING -BLOCKED" "export" "next"`
2024-03-26 10:20:29 | INFO | src/app.rs:1722 | Imported 12 tasks
2024-03-26 10:20:29 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for f8470e92-0286-4b85-91f4-acf6bf693f6c
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 6c4c9ee8-d6c4-4d64-a84d-bf9cb710684e
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 7bb0e242-4610-475d-98a6-9b75d97be6a7
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 0b11967d-9dae-4333-a137-c3b1e8a641d3
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 62c386dc-4403-4756-a56a-becad2538e77
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for b16a359d-427f-4e0f-92eb-8cc07736b6a4
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 3f43831b-88dc-45e2-bf0d-4aea6db634cc
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 3c88c2b0-19c8-46d3-aaa3-0f915368ac25
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 1861bcb6-a199-4bf4-b8b9-d4011749906c
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for b3f9e124-64c2-4dc0-8351-9b2200e2863e
2024-03-26 10:20:29 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:20:29 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:20:29 | INFO | src/app.rs:1714 | Running `"task" "rc.json.array=on" "rc.confirmation=off" "rc.json.depends.array=on" "rc.color=off" "rc._forcecolor=off" "rc.report.next.filter=status:pending -WAITING -BLOCKED" "export" "next"`
2024-03-26 10:20:29 | INFO | src/app.rs:1722 | Imported 12 tasks
2024-03-26 10:20:29 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for f8470e92-0286-4b85-91f4-acf6bf693f6c
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 6c4c9ee8-d6c4-4d64-a84d-bf9cb710684e
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 7bb0e242-4610-475d-98a6-9b75d97be6a7
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 0b11967d-9dae-4333-a137-c3b1e8a641d3
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 62c386dc-4403-4756-a56a-becad2538e77
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for b16a359d-427f-4e0f-92eb-8cc07736b6a4
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 3f43831b-88dc-45e2-bf0d-4aea6db634cc
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 3c88c2b0-19c8-46d3-aaa3-0f915368ac25
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for 1861bcb6-a199-4bf4-b8b9-d4011749906c
2024-03-26 10:20:29 | DEBUG | src/app.rs:1410 | Running task details for b3f9e124-64c2-4dc0-8351-9b2200e2863e
2024-03-26 10:20:29 | DEBUG | src/app.rs:388 | Received input = Char('q')
2024-03-26 10:20:29 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:20:29 | TRACE | src/app.rs:1435 | self.update_task_table_state()

Here is a log for taskwarrior-tui running for roughly 2 seconds while the .data files still exist (cpu usage is low):

2024-03-26 10:21:46 | DEBUG | src/main.rs:180 | getting matches from clap...
2024-03-26 10:21:46 | DEBUG | src/main.rs:181 | report = "next"
2024-03-26 10:21:46 | DEBUG | src/main.rs:182 | config = None
2024-03-26 10:21:46 | TRACE | src/app.rs:1302 | self.update(true);
2024-03-26 10:21:46 | INFO | src/app.rs:1714 | Running `"task" "rc.json.array=on" "rc.confirmation=off" "rc.json.depends.array=on" "rc.color=off" "rc._forcecolor=off" "rc.report.next.filter=status:pending -WAITING -BLOCKED" "export" "next"`
2024-03-26 10:21:46 | INFO | src/app.rs:1722 | Imported 12 tasks
2024-03-26 10:21:46 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for f8470e92-0286-4b85-91f4-acf6bf693f6c
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for 6c4c9ee8-d6c4-4d64-a84d-bf9cb710684e
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for 7bb0e242-4610-475d-98a6-9b75d97be6a7
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for 0b11967d-9dae-4333-a137-c3b1e8a641d3
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for 62c386dc-4403-4756-a56a-becad2538e77
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for b16a359d-427f-4e0f-92eb-8cc07736b6a4
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for 3f43831b-88dc-45e2-bf0d-4aea6db634cc
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for 3c88c2b0-19c8-46d3-aaa3-0f915368ac25
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for 1861bcb6-a199-4bf4-b8b9-d4011749906c
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for b3f9e124-64c2-4dc0-8351-9b2200e2863e
2024-03-26 10:21:46 | DEBUG | src/history.rs:48 | Loading history of length 25
2024-03-26 10:21:46 | DEBUG | src/history.rs:48 | Loading history of length 100
2024-03-26 10:21:46 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:21:46 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:21:46 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:21:46 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:21:46 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:21:46 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:21:46 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:21:46 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:21:46 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:21:46 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:21:47 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:21:47 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:21:47 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:21:47 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:21:47 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:21:47 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:21:47 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:21:47 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:21:47 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:21:47 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:21:47 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:21:47 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:21:47 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:21:47 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:21:47 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:21:47 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:21:48 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:21:48 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:21:48 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:21:48 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:21:48 | DEBUG | src/app.rs:392 | Tick event
2024-03-26 10:21:48 | TRACE | src/app.rs:1302 | self.update(false);
2024-03-26 10:21:48 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:21:48 | DEBUG | src/app.rs:1410 | Running task details for f5a18641-dc38-4ae1-80f0-588166a2aa44
2024-03-26 10:21:48 | DEBUG | src/app.rs:388 | Received input = Char('q')
2024-03-26 10:21:48 | TRACE | src/app.rs:1435 | self.update_task_table_state()
2024-03-26 10:21:48 | TRACE | src/app.rs:1435 | self.update_task_table_state()
kdheepak commented 3 months ago

I think I know what is going on here, but I just realized recently that v3.0.0 has been released and there could be a lot of issues since I haven't tested it with that yet. I probably won't be able to look into it for at least a few weeks unfortunately.

kdheepak commented 3 months ago

I added a note to the README: https://github.com/kdheepak/taskwarrior-tui/commit/4902ecdb34c549ed917635cce13148c13ac46106

RedEtherbloom commented 3 months ago

From my limited debugging, thus far:

get_task_files_max_mtime fails due to the missing .data files. Due to this the faillsafe in the update loop(self.tasks_changed_since(self.last_export).unwrap_or(true)) kicks in, which leads to a force-update, recalculating nearly all internal state each tick.

What compounds this is that the task command in general seems to have gotten slower with the recent update. From the limited testing on my overworked Thinkpad X230 CPU: Before Taskwarrior 3: Average time for rendering the info of a single task: ~0.02s After Taskwarrior 3: Average time for rendering the info of a single task: ~0.09s

Due to these two compounding factors every single tick requires ~1.9s (310 active tasks) on my X230. (With ~50% spent on updating task details, 25% on ex/importing tasks on 25% project, context and tag updates collectively).

I tried to update get_task_files_max_mtime to check for the .sqlite3 database instead, but this failed. The new urgency in the database gets updated each export, changing the mtime and thus forcing the next export/flush immediately. Setting the export time at the end of the update cycle seems to be enough to fix this. (Export and summary seem to modify the sqlite database, info and context fortunately don't).

I'll prettify my fix later and open a PR.

(Unimportant sidenote: The update_task_details function should become significantly faster soon. I've been reworking update_task_details for the last few weeks, leading to a 3-3.5x performance increase for large batches of 100. It's less pronounced for smaller prefetch sizes, but definitely still significant. Only tests to write remain.)

kdheepak commented 3 months ago

Thanks for the detailed report! I'm going to be largely offline for the next couple of weeks but would love to take a look at it after. I'm curious about your performance improvements as well! Thanks for offering to make a PR!

RedEtherbloom commented 3 months ago

You're welcome!

Fix is available and turned out smaller than I thought.

Wishing you a pleasant vaccation(?).

GregPK commented 2 months ago

TLDR: until fix is released, the workaround is to run:

touch {undo,pending,backlog,completed}.data

In your data directory.

kdheepak commented 2 months ago

This should be fixed now in v0.26.0 thanks to @RedEtherbloom