Commit Graph
15 Commits
Author SHA1 Message Date
Francesco CozzutoandGitHub 24c0134c03 Merge pull request #2 from cozis/claude/continue-deterministic-simulation-test-011CUbGqPQoT7vvhmry5QsUD
Continue deterministic simulation test
2025-10-29 11:10:44 +01:00
cozis 815e4867cf Minor cleanups 2025-10-29 11:10:01 +01:00
Claude 51cb3ba061 Complete deterministic simulation testing implementation
- Fixed compilation errors in descriptor type checks and field references
- Implemented sys_accept with pending connection queue support
- Completed sys_connect with full connection establishment between processes
- Implemented sys_getsockopt for SO_ERROR option
- Added network transit logic to transfer data between connected sockets
- Added peer tracking to descriptors for connection management
- Initialized byte queues for socket I/O buffers

The simulation now supports:
- Socket creation and binding
- Connection establishment between processes
- Bidirectional data transfer via byte queues
- Accept queue management for listen sockets
- Deterministic network simulation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 09:48:30 +00:00
cozis 7bc4071344 Start work on DST 2025-10-29 10:41:23 +01:00
cozis fb8ac1d5c9 Fix compiler errors 2025-10-28 17:33:52 +01:00
cozis c5a21608d7 Split project over multiple files 2025-10-28 17:24:25 +01:00
Francesco CozzutoandGitHub 017c2c3428 Merge pull request #1 from cozis/claude/list-missing-implementations-011CUZKcCqHqBMS8gDqNAXyn
Resolved some TODOs using Claude
2025-10-28 11:18:33 +01:00
cozis 00f2570231 Progress 2025-10-28 11:16:06 +01:00
Claude 223bbbefb2 Fix chunk removal: Check entire tree instead of premature deletion
Implement simple and correct approach for determining which chunks can
be safely removed:

When a write overwrites chunks:
1. Update the file tree with new chunk hashes
2. For each old hash, walk the entire tree to check if still in use
3. Only mark chunks for removal if NOT found anywhere in the tree

Changes:
- Modified file_tree_write() to return removed_hashes array
- After updating chunks, check each old_hash with entity_uses_hash()
- Walks entire tree from root to verify hash is truly unreferenced
- Caller receives array of hashes safe to remove
- Only those hashes are added to chunk servers' rem_list

This approach is:
- Simple: No complex reference counting needed
- Correct: Handles deduplication naturally (same content, same hash)
- Safe: Only removes chunks with zero references
- Easy to understand: Linear tree walk on each write

Performance can be optimized later if needed. Correctness first!

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 09:30:37 +00:00
Claude e89b6b5de1 Fix all implementable TODO items in TinyDFS.c
This commit addresses the following TODO items:

1. Fixed proper error codes (lines 2063, 2068, 2071, 2081)
   - Changed generic -1 returns to specific FILETREE_* error codes

2. Added overflow check for chunk_size (line 2659)
   - Added validation that chunk_size fits in uint32_t before casting

3. Handled error event flags in connection polling (line 1559)
   - Added checks for POLLERR, POLLHUP, and POLLNVAL events

4. Fixed absolute path edge case (line 1773)
   - Properly handle ".." in absolute paths (stays at root)
   - Reject ".." in relative paths when at the start

5. Documented authentication verification (line 2903)
   - Added comment about production authentication requirements

6. Implemented chunk removal on overwrite (line 2790)
   - Old chunks are now added to rem_list for garbage collection
   - Zero hashes (new chunks) are properly handled

7. Completed download chunk implementation (lines 3247, 3253, 3256)
   - Implemented full download request with hash, offset, and length
   - Added error handling for failed connections

8. Implemented state update chunk management (line 3308)
   - Move chunks between main and orphaned directories
   - Validate chunk presence and report missing chunks

9. Implemented process_chunk_server_download_error (line 3450)
   - Handle download failures and retry next pending download

10. Implemented process_chunk_server_download_success (line 3456)
    - Store downloaded chunks and continue with pending downloads

11. Handled chunk server connection disconnect (line 3721)
    - Reset downloading state on disconnect for retry

12. Implemented AUTH message on reconnect (line 3777)
    - Send authentication message when reconnecting to metadata server

13. Implemented read list processing (line 4324)
    - Parse and validate list response message format

14. Documented write operation stub (line 4631)
    - Added comments explaining what full implementation would require

Remaining TODOs are architectural notes for future enhancements:
- Line 124: Chunk orphaning strategy (now implemented)
- Line 662: Test parent_path function (testing task)
- Line 3673: IPv6 support (future enhancement)
- Line 3766: Periodic chunk hash verification (future feature)
- Line 3768: Periodic download management (mostly implemented)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 09:09:15 +00:00
cozis ea18992f6a Progress 2025-10-28 09:57:48 +01:00
cozis 3f0f4c2443 Update 2025-10-27 22:50:51 +01:00
cozis 19ea9a0718 Progress 2025-10-27 21:22:42 +01:00
cozis 3c92b8d343 Progress 2025-10-27 18:54:49 +01:00
cozis 1f4a9956da First commit 2025-10-27 18:01:33 +01:00