Hi
The responses
field in the response has 1 element, and in that element:
The topic_id
field matches what was sent in the request.
The partitions
array has 1 element, and in that element:
The partition_index
field is 0
.
The error_code
field is 0
(No Error).
The records
array has 1 element.
The entire RecordBatch
content is read from disk. (We will compare the contents of the RecordBatch
with the contents of the log file to verify this.)
After reading the following instructions above, I followed this approach:
parse the cluster metadata,
look for a record that refers to the UUID,
Copy the whole RecordBatch, So the response will contain a copy from the disk
After checking the tests, I found that it’s expecting a BatchRecord with all the attributes set to 0. That confuses me, for example, why the Batch.Length == 0? as that attribute represents the length in bytes.
RecordBatches: []kafkaapi.RecordBatch{
{
BaseOffset: 0,
BatchLength: 0,
PartitionLeaderEpoch: 0,
Magic: 0,
Attributes: 0,
LastOffsetDelta: 0,
FirstTimestamp: 0,
MaxTimestamp: 0,
ProducerId: 0,
ProducerEpoch: 0,
BaseSequence: 0,
Records: []kafkaapi.Record{
{
Length: 0,
Attributes: 0,
TimestampDelta: 0,
OffsetDelta: 0,
Key: []byte{},
This file has been truncated. show original
andy1li
December 21, 2024, 7:51pm
3
Hi @abdellani , the attributes in RecordBatch
in our tester are initially set to all zeros, but they will be populated during the encoding process:
pe.PutInt64(rb.ProducerId)
pe.PutInt16(rb.ProducerEpoch)
pe.PutInt32(rb.BaseSequence)
pe.PutInt32(int32(len(rb.Records)))
for i, record := range rb.Records {
record.OffsetDelta = int32(i) // Offset Deltas are consecutive numerals from 0 to N-1
// We can set them programmatically as we know the order of the records
record.Encode(pe)
}
batchLength := pe.Offset() - 12 - startOffset // 8 bytes for BaseOffset & 4 bytes for BatchLength
pe.PutInt32At(int32(batchLength), batchLengthStartOffset, 4)
crcData := pe.Bytes()[crcEndOffset:pe.Offset()]
computedChecksum := crc32.Checksum(crcData, crc32.MakeTable(crc32.Castagnoli))
pe.PutInt32At(int32(computedChecksum), crcStartOffset, 4)
}
func (rb *RecordBatch) Decode(pd *decoder.RealDecoder, logger *logger.Logger, indentation int) (err error) {
if rb.BaseOffset, err = pd.GetInt64(); err != nil {
if decodingErr, ok := err.(*errors.PacketDecodingError); ok {
I did some other tests and it seems that copying the file content directly to the payload doesn’t work. I’ll have to decode and encode again + recalculate some attributes like crc.
I have one last question. It looks like if the code passes eg2, it will no longer pass the previous stage, cm4. Is that expected?
When I run the tests locally, and I start to add records to the payload, the (cm4) or (stage) fails.
[stage-F4] Running tests for Stage #F4: Fetch with empty topic
[stage-F4] $ ./your_program.sh /tmp/server.properties
[stage-F4] [Serializer] Writing log files to: /tmp/kraft-combined-logs
[stage-F4] [Serializer] - Wrote file to: /tmp/server.properties
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/meta.properties
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/.kafka_cleanshutdown
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/pax-0/partition.metadata
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/paz-0/partition.metadata
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/qux-0/partition.metadata
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/qux-1/partition.metadata
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/__cluster_metadata-0/partition.metadata
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/pax-0/00000000000000000000.log
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/paz-0/00000000000000000000.log
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/qux-0/00000000000000000000.log
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/qux-1/00000000000000000000.log
[stage-F4] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/__cluster_metadata-0/00000000000000000000.log
[stage-F4] [Serializer] Finished writing log files to: /tmp/kraft-combined-logs
[stage-F4] Connecting to broker at: localhost:9092
[your_program] Logs from your program will appear here!
[stage-F4] Connection to broker at localhost:9092 successful
[stage-F4] Sending "Fetch" (version: 16) request (Correlation id: 879118072)
[stage-F4] Hexdump of sent "Fetch" request:
[stage-F4] Idx | Hex | ASCII
[stage-F4] -----+-------------------------------------------------+-----------------
[stage-F4] 0000 | 00 00 00 60 00 01 00 10 34 66 46 f8 00 09 6b 61 | ...`....4fF...ka
[stage-F4] 0010 | 66 6b 61 2d 63 6c 69 00 00 00 01 f4 00 00 00 01 | fka-cli.........
[stage-F4] 0020 | 03 20 00 00 00 00 00 00 00 00 00 00 00 02 00 00 | . ..............
[stage-F4] 0030 | 00 00 00 00 40 00 80 00 00 00 00 00 00 65 02 00 | ....@........e..
[stage-F4] 0040 | 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 ff | ................
[stage-F4] 0050 | ff ff ff ff ff ff ff ff ff ff ff 00 10 00 00 00 | ................
[stage-F4] 0060 | 00 01 01 00 | ....
[stage-F4]
[your_program] UUID [0 0 0 0 0 0 64 0 128 0 0 0 0 0 0 101]
[stage-F4] Hexdump of received "Fetch" response:
[stage-F4] Idx | Hex | ASCII
[stage-F4] -----+-------------------------------------------------+-----------------
[stage-F4] 0000 | 00 00 00 ee 34 66 46 f8 00 00 00 00 00 00 00 00 | ....4fF.........
[stage-F4] 0010 | 00 00 00 02 00 00 00 00 00 00 40 00 80 00 00 00 | ..........@.....
[stage-F4] 0020 | 00 00 00 65 02 00 00 00 00 00 00 00 00 00 00 00 | ...e............
[stage-F4] 0030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
[stage-F4] 0040 | 00 00 00 01 00 00 00 00 02 00 00 00 00 00 00 00 | ................
[stage-F4] 0050 | 04 00 00 00 9a 00 00 00 01 02 e8 6d 0e 10 00 00 | ...........m....
[stage-F4] 0060 | 00 00 00 01 00 00 01 91 e0 5b 2d 15 00 00 01 91 | .........[-.....
[stage-F4] 0070 | e0 5b 2d 15 ff ff ff ff ff ff ff ff ff ff ff ff | .[-.............
[stage-F4] 0080 | ff ff 00 00 00 02 3c 00 00 00 01 30 01 02 00 04 | ......<....0....
[stage-F4] 0090 | 70 61 7a 00 00 00 00 00 00 40 00 80 00 00 00 00 | paz......@......
[stage-F4] 00a0 | 00 00 65 00 00 90 01 00 00 02 01 82 01 01 03 01 | ..e.............
[stage-F4] 00b0 | 00 00 00 00 00 00 00 00 00 00 40 00 80 00 00 00 | ..........@.....
[stage-F4] 00c0 | 00 00 00 65 02 00 00 00 01 02 00 00 00 01 01 01 | ...e............
[stage-F4] 00d0 | 00 00 00 01 00 00 00 00 00 00 00 00 02 10 00 00 | ................
[stage-F4] 00e0 | 00 00 00 40 00 80 00 00 00 00 00 00 01 00 00 00 | ...@............
[stage-F4] 00f0 | 00 00 | ..
[stage-F4]
[stage-F4] [Decoder] - .ResponseHeader
[stage-F4] [Decoder] - .correlation_id (879118072)
[stage-F4] [Decoder] - .TAG_BUFFER
[stage-F4] [Decoder] - .ResponseBody
[stage-F4] [Decoder] - .throttle_time_ms (0)
[stage-F4] [Decoder] - .error_code (0)
[stage-F4] [Decoder] - .session_id (0)
[stage-F4] [Decoder] - .num_responses (1)
[stage-F4] [Decoder] - .TopicResponse[0]
[stage-F4] [Decoder] - .topic_id (00000000-0000-4000-8000-000000000065)
[stage-F4] [Decoder] - .num_partitions (1)
[stage-F4] [Decoder] - .PartitionResponse[0]
[stage-F4] [Decoder] - .partition_index (0)
[stage-F4] [Decoder] - .error_code (0)
[stage-F4] [Decoder] - .high_watermark (0)
[stage-F4] [Decoder] - .last_stable_offset (0)
[stage-F4] [Decoder] - .log_start_offset (0)
[stage-F4] [Decoder] - .num_aborted_transactions (0)
[stage-F4] [Decoder] - .preferred_read_replica (0)
[stage-F4] [Decoder] - .compact_records_length (1)
[stage-F4] [Decoder] - .RecordBatch[0]
[stage-F4] [Decoder] - .base_offset (4)
[stage-F4] [Decoder] - .batch_length (154)
[stage-F4] [Decoder] - .partition_leader_epoch (1)
[stage-F4] [Decoder] - .magic_byte (2)
[stage-F4] [Decoder] - .crc (-395506160)
[stage-F4] [Decoder] - .record_attributes (0)
[stage-F4] [Decoder] - .last_offset_delta (1)
[stage-F4] [Decoder] - .base_timestamp (1726045957397)
[stage-F4] [Decoder] - .max_timestamp (1726045957397)
[stage-F4] [Decoder] - .producer_id (-1)
[stage-F4] [Decoder] - .producer_epoch (-1)
[stage-F4] [Decoder] - .base_sequence (-1)
[stage-F4] [Decoder] - .num_records (2)
[stage-F4] [Decoder] - .Record[0]
[stage-F4] [Decoder] - .length (30)
[stage-F4] [Decoder] - .attributes (0)
[stage-F4] [Decoder] - .timestamp_delta (0)
[stage-F4] [Decoder] - .offset_delta (0)
[stage-F4] [Decoder] - .key_length (-1)
[stage-F4] [Decoder] - .key ("")
[stage-F4] [Decoder] - .value_length (24)
[stage-F4] [Decoder] - .value ("\x01\x02\x00\x04paz\x00\x00\x00\x00\x00\x00@\x00\x80\x00\x00\x00\x00\x00\x00e\x00")
[stage-F4] [Decoder] - .num_headers (0)
[stage-F4] [Decoder] - .Record[1]
[stage-F4] [Decoder] - .length (72)
[stage-F4] [Decoder] - .attributes (0)
[stage-F4] [Decoder] - .timestamp_delta (0)
[stage-F4] [Decoder] - .offset_delta (1)
[stage-F4] [Decoder] - .key_length (-1)
[stage-F4] [Decoder] - .key ("")
[stage-F4] [Decoder] - .value_length (65)
[stage-F4] [Decoder] - .value ("\x01\x03\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00\x80\x00\x00\x00\x00\x00\x00e\x02\x00\x00\x00\x01\x02\x00\x00\x00\x01\x01\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x02\x10\x00\x00\x00\x00\x00@\x00\x80\x00\x00\x00\x00\x00\x00\x01\x00")
[stage-F4] [Decoder] - .num_headers (0)
[stage-F4] [Decoder] - .TAG_BUFFER
[stage-F4] [Decoder] - .TAG_BUFFER
[stage-F4] [Decoder] - .TAG_BUFFER
[stage-F4] ✓ Correlation ID: 879118072
[stage-F4] ✓ Throttle Time: 0
[stage-F4] ✓ Error Code: 0 (NO_ERROR)
[stage-F4] ✓ TopicResponse[0] Topic UUID: 00000000-0000-4000-8000-000000000065
[stage-F4] ✓ PartitionResponse[0] Error code: 0 (NO_ERROR)
[stage-F4] ✓ PartitionResponse[0] Partition Index: 0
[stage-F4] Expected recordBatches.length to be 0, got 1
[stage-F4] Test failed
[stage-F4] Terminating program
after running on stagef5 (eg2)
[stage-F5] Running tests for Stage #F5: Single Fetch from Disk
[stage-F5] $ ./your_program.sh /tmp/server.properties
[stage-F5] [Serializer] Writing log files to: /tmp/kraft-combined-logs
[stage-F5] [Serializer] - Wrote file to: /tmp/server.properties
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/meta.properties
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/.kafka_cleanshutdown
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/bar-0/partition.metadata
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/pax-0/partition.metadata
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/qux-0/partition.metadata
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/qux-1/partition.metadata
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/__cluster_metadata-0/partition.metadata
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/bar-0/00000000000000000000.log
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/pax-0/00000000000000000000.log
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/qux-0/00000000000000000000.log
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/qux-1/00000000000000000000.log
[stage-F5] [Serializer] - Wrote file to: /tmp/kraft-combined-logs/__cluster_metadata-0/00000000000000000000.log
[stage-F5] [Serializer] Finished writing log files to: /tmp/kraft-combined-logs
[stage-F5] Connecting to broker at: localhost:9092
[your_program] Logs from your program will appear here!
[stage-F5] Connection to broker at localhost:9092 successful
[stage-F5] Sending "Fetch" (version: 16) request (Correlation id: 985166336)
[stage-F5] Hexdump of sent "Fetch" request:
[stage-F5] Idx | Hex | ASCII
[stage-F5] -----+-------------------------------------------------+-----------------
[stage-F5] 0000 | 00 00 00 60 00 01 00 10 3a b8 72 00 00 09 6b 61 | ...`....:.r...ka
[stage-F5] 0010 | 66 6b 61 2d 63 6c 69 00 00 00 01 f4 00 00 00 01 | fka-cli.........
[stage-F5] 0020 | 03 20 00 00 00 00 00 00 00 00 00 00 00 02 00 00 | . ..............
[stage-F5] 0030 | 00 00 00 00 40 00 80 00 00 00 00 00 00 42 02 00 | ....@........B..
[stage-F5] 0040 | 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 ff | ................
[stage-F5] 0050 | ff ff ff ff ff ff ff ff ff ff ff 00 10 00 00 00 | ................
[stage-F5] 0060 | 00 01 01 00 | ....
[stage-F5]
[your_program] UUID [0 0 0 0 0 0 64 0 128 0 0 0 0 0 0 66]
[stage-F5] Hexdump of received "Fetch" response:
[stage-F5] Idx | Hex | ASCII
[stage-F5] -----+-------------------------------------------------+-----------------
[stage-F5] 0000 | 00 00 00 ee 3a b8 72 00 00 00 00 00 00 00 00 00 | ....:.r.........
[stage-F5] 0010 | 00 00 00 02 00 00 00 00 00 00 40 00 80 00 00 00 | ..........@.....
[stage-F5] 0020 | 00 00 00 42 02 00 00 00 00 00 00 00 00 00 00 00 | ...B............
[stage-F5] 0030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
[stage-F5] 0040 | 00 00 00 01 00 00 00 00 02 00 00 00 00 00 00 00 | ................
[stage-F5] 0050 | 02 00 00 00 9a 00 00 00 01 02 23 4a 39 ca 00 00 | ..........#J9...
[stage-F5] 0060 | 00 00 00 01 00 00 01 91 e0 5b 2d 15 00 00 01 91 | .........[-.....
[stage-F5] 0070 | e0 5b 2d 15 ff ff ff ff ff ff ff ff ff ff ff ff | .[-.............
[stage-F5] 0080 | ff ff 00 00 00 02 3c 00 00 00 01 30 01 02 00 04 | ......<....0....
[stage-F5] 0090 | 62 61 72 00 00 00 00 00 00 40 00 80 00 00 00 00 | bar......@......
[stage-F5] 00a0 | 00 00 42 00 00 90 01 00 00 02 01 82 01 01 03 01 | ..B.............
[stage-F5] 00b0 | 00 00 00 00 00 00 00 00 00 00 40 00 80 00 00 00 | ..........@.....
[stage-F5] 00c0 | 00 00 00 42 02 00 00 00 01 02 00 00 00 01 01 01 | ...B............
[stage-F5] 00d0 | 00 00 00 01 00 00 00 00 00 00 00 00 02 10 00 00 | ................
[stage-F5] 00e0 | 00 00 00 40 00 80 00 00 00 00 00 00 01 00 00 00 | ...@............
[stage-F5] 00f0 | 00 00 | ..
[stage-F5]
[stage-F5] [Decoder] - .ResponseHeader
[stage-F5] [Decoder] - .correlation_id (985166336)
[stage-F5] [Decoder] - .TAG_BUFFER
[stage-F5] [Decoder] - .ResponseBody
[stage-F5] [Decoder] - .throttle_time_ms (0)
[stage-F5] [Decoder] - .error_code (0)
[stage-F5] [Decoder] - .session_id (0)
[stage-F5] [Decoder] - .num_responses (1)
[stage-F5] [Decoder] - .TopicResponse[0]
[stage-F5] [Decoder] - .topic_id (00000000-0000-4000-8000-000000000042)
[stage-F5] [Decoder] - .num_partitions (1)
[stage-F5] [Decoder] - .PartitionResponse[0]
[stage-F5] [Decoder] - .partition_index (0)
[stage-F5] [Decoder] - .error_code (0)
[stage-F5] [Decoder] - .high_watermark (0)
[stage-F5] [Decoder] - .last_stable_offset (0)
[stage-F5] [Decoder] - .log_start_offset (0)
[stage-F5] [Decoder] - .num_aborted_transactions (0)
[stage-F5] [Decoder] - .preferred_read_replica (0)
[stage-F5] [Decoder] - .compact_records_length (1)
[stage-F5] [Decoder] - .RecordBatch[0]
[stage-F5] [Decoder] - .base_offset (2)
[stage-F5] [Decoder] - .batch_length (154)
[stage-F5] [Decoder] - .partition_leader_epoch (1)
[stage-F5] [Decoder] - .magic_byte (2)
[stage-F5] [Decoder] - .crc (592067018)
[stage-F5] [Decoder] - .record_attributes (0)
[stage-F5] [Decoder] - .last_offset_delta (1)
[stage-F5] [Decoder] - .base_timestamp (1726045957397)
[stage-F5] [Decoder] - .max_timestamp (1726045957397)
[stage-F5] [Decoder] - .producer_id (-1)
[stage-F5] [Decoder] - .producer_epoch (-1)
[stage-F5] [Decoder] - .base_sequence (-1)
[stage-F5] [Decoder] - .num_records (2)
[stage-F5] [Decoder] - .Record[0]
[stage-F5] [Decoder] - .length (30)
[stage-F5] [Decoder] - .attributes (0)
[stage-F5] [Decoder] - .timestamp_delta (0)
[stage-F5] [Decoder] - .offset_delta (0)
[stage-F5] [Decoder] - .key_length (-1)
[stage-F5] [Decoder] - .key ("")
[stage-F5] [Decoder] - .value_length (24)
[stage-F5] [Decoder] - .value ("\x01\x02\x00\x04bar\x00\x00\x00\x00\x00\x00@\x00\x80\x00\x00\x00\x00\x00\x00B\x00")
[stage-F5] [Decoder] - .num_headers (0)
[stage-F5] [Decoder] - .Record[1]
[stage-F5] [Decoder] - .length (72)
[stage-F5] [Decoder] - .attributes (0)
[stage-F5] [Decoder] - .timestamp_delta (0)
[stage-F5] [Decoder] - .offset_delta (1)
[stage-F5] [Decoder] - .key_length (-1)
[stage-F5] [Decoder] - .key ("")
[stage-F5] [Decoder] - .value_length (65)
[stage-F5] [Decoder] - .value ("\x01\x03\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00\x80\x00\x00\x00\x00\x00\x00B\x02\x00\x00\x00\x01\x02\x00\x00\x00\x01\x01\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x02\x10\x00\x00\x00\x00\x00@\x00\x80\x00\x00\x00\x00\x00\x00\x01\x00")
[stage-F5] [Decoder] - .num_headers (0)
[stage-F5] [Decoder] - .TAG_BUFFER
[stage-F5] [Decoder] - .TAG_BUFFER
[stage-F5] [Decoder] - .TAG_BUFFER
[stage-F5] ✓ Correlation ID: 985166336
[stage-F5] ✓ Throttle Time: 0
[stage-F5] ✓ Error Code: 0 (NO_ERROR)
[stage-F5] ✓ TopicResponse[0] Topic UUID: 00000000-0000-4000-8000-000000000042
[stage-F5] ✓ PartitionResponse[0] Error code: 0 (NO_ERROR)
[stage-F5] ✓ PartitionResponse[0] Partition Index: 0
[stage-F5] Expected RecordBatch[0] BaseOffset to be 0, got 2
[stage-F5] Test failed
[stage-F5] Terminating program
[your_program] n->{BaseOffset:2 BatchLength:0 PartitionLeaderEpoch:1 MagicByte:2 CRC:592067018 Attributes:0 LastOffsetDelta:1 BaseTimestamp:1726045957397 MaxTimestamp:1726045957397 ProducerID:-1 ProducerEpoch:-1 BaseSequence:-1 Records:[{Length:30 Attributes:0 TimestampDelta:0 OffsetDelfa:0 KeyLength:-1 Key:[] ValueLength:24 Value:{FrameVersion:1 Type:2 Version:0 Details:{TopicName:[98 97 114] TopicUUID:[0 0 0 0 0 0 64 0 128 0 0 0 0 0 0 66] TAG_BUFFER:0}} HeaderArrayCount:0} {Length:72 Attributes:0 TimestampDelta:0 OffsetDelfa:1 KeyLength:-1 Key:[] ValueLength:65 Value:{FrameVersion:1 Type:3 Version:1 Details:{PartitionID:0 TopicUUID:[0 0 0 0 0 0 64 0 128 0 0 0 0 0 0 66] ReplicaArray:[1] InSyncReplicaArray:[1] RemovingReplicaArray:[] AddingReplicaArray:[] Leader:1 LeaderEpoch:0 PartitionEpoch:0 DirectoriesArray:[[16 0 0 0 0 0 64 0 128 0 0 0 0 0 0 1]] TAG_BUFFER:0}} HeaderArrayCount:0}] StartIndex:91 EndIndex:257}&{BaseOffset:2 BatchLength:0 PartitionLeaderEpoch:1 MagicByte:2 CRC:592067018 Attributes:0 LastOffsetDelta:1 BaseTimestamp:1726045957397 MaxTimestamp:1726045957397 ProducerID:-1 ProducerEpoch:-1 BaseSequence:-1 Records:[{Length:30 Attributes:0 TimestampDelta:0 OffsetDelfa:0 KeyLength:-1 Key:[] ValueLength:24 Value:{FrameVersion:1 Type:2 Version:0 Details:{TopicName:[98 97 114] TopicUUID:[0 0 0 0 0 0 64 0 128 0 0 0 0 0 0 66] TAG_BUFFER:0}} HeaderArrayCount:0} {Length:72 Attributes:0 TimestampDelta:0 OffsetDelfa:1 KeyLength:-1 Key:[] ValueLength:65 Value:{FrameVersion:1 Type:3 Version:1 Details:{PartitionID:0 TopicUUID:[0 0 0 0 0 0 64 0 128 0 0 0 0 0 0 66] ReplicaArray:[1] InSyncReplicaArray:[1] RemovingReplicaArray:[] AddingReplicaArray:[] Leader:1 LeaderEpoch:0 PartitionEpoch:0 DirectoriesArray:[[16 0 0 0 0 0 64 0 128 0 0 0 0 0 0 1]] TAG_BUFFER:0}} HeaderArrayCount:0}] StartIndex:91 EndIndex:257}
[stage-F5] Program terminated successfully
andy1li
December 22, 2024, 10:51am
6
No, that’s not expected. However, it’s common for changes made in later stages to inadvertently break functionality from earlier stages.
You can use our CLI to test against all previous stages by running:
codecrafters test --previous
system
Closed
December 28, 2024, 12:21am
7
This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.