Error: Read from storage 0 bytes, but requested 12 bytes 的解决方法

解决IntelliJ IDEA存储读取错误的步骤
本文提供了解决IntelliJ IDEA中遇到的Error:Readfromstorage0bytes, but requested 12bytes错误的具体操作步骤。包括缓存清除和清理特定系统目录来解决问题。

我的一个项目运行的时候总是先报错"Error: Read from storage 0 bytes, but requested 12 bytes",解决的方法是

1、"File -> Invalidate Caches" rebuild 如果不行则进行 2

2、删除文件夹C:/Users/admin/.IntelliJIdea90/system/compiler中的文件

 

解决过程参考

http://youtrack.jetbrains.net/issue/IDEA-25918#content-tab=0

root@H500:/mnt/sd_card/A1_B2_C3_D4_E5_F6# [1018 19:24:02][Error] mqttCloud: [mqtt_matter_device.c:416][mqtt_matter_controller_liveness_check_tmo] controller die[2]!!! [1018 19:24:02][Error] mediacenter: [worker.c:6059][tpsocket_event_worker_listen_cb] WORKERC: 192.168.137.1:62006 connected [1018 19:24:02][Error] mediacenter: [worker.c:3792][worker_file_log_read_handle] mac: A1_B2_C3_D4_E5_F6 [1018 19:24:02][Error] mediacenter: [worker.c:3800][worker_file_log_read_handle] filepath: /mnt/sd_card/A1_B2_C3_D4_E5_F6/log.txt [1018 19:24:02][Error] mediacenter: [worker.c:3819][worker_file_log_read_handle] [SUCCESS] File opened successfully [1018 19:24:02][Error] mediacenter: [worker.c:3832][worker_file_log_read_handle] [DEBUG] File size: 2233740 bytes [1018 19:24:02][Error] mediacenter: [worker.c:3868][worker_file_log_read_handle] [DEBUG] File opened for streaming: 2233740 bytes [1018 19:24:02][Error] mediacenter: [storage.c:1007][tpsocket_event_filelog_from_hub] sock=0x10ee488, event=TPSOCKET_EVENT_MESSAGE [1018 19:24:02][Error] mediacenter: [storage.c:1036][tpsocket_event_filelog_from_hub] TPSOCKET_EVENT_MESSAGE [1018 19:24:02][Error] mediacenter: [storage.c:1062][tpsocket_event_filelog_from_hub] HTTP header sent [1018 19:24:02][Error] mediacenter: [storage.c:1064][tpsocket_event_filelog_from_hub] Start sent body [1018 19:24:02][Error] mediacenter: [storage.c:1080][tpsocket_event_filelog_from_hub] Sent entire file: 2233740 bytes [1018 19:24:02][Error] mediacenter: [storage.c:1083][tpsocket_event_filelog_from_hub] File transfer completed [1018 19:24:02][Error] mediacenter: [storage.c:1007][tpsocket_event_filelog_from_hub] sock=0x10ee488, event=TPSOCKET_EVENT_WRITABLE bool tpsocket_event_filelog_to_hub(struct tpsocket_handler *handler, struct list_head *buf, int event) { //debug_show_tpbuf_list(buf, "TEST", 3); struct tpsocket_fd *sock = container_of(handler, struct tpsocket_fd, handler); FileLogSession *session = handler->priv; if (event != TPSOCKET_EVENT_STREAM) { DBG_ERR("sock=%p, event=%s\n", sock, tpsocket_event_name(event)); } switch(event) { case TPSOCKET_EVENT_LISTEN: DBG_ERR("TPSOCKET_EVENT_LISTEN: %s:%s Listen\n", sock->addr, sock->port); break; case TPSOCKET_EVENT_SHUTDOWN: DBG_ERR("TPSOCKET_EVENT_LISTEN: %s:%s Shutdown\n", sock->addr, sock->port); break; case TPSOCKET_EVENT_ACCEPT: DBG_ERR("TPSOCKET_EVENT_LISTEN: %s:%s Accepted\n", sock->addr, sock->port); break; case TPSOCKET_EVENT_CONNECTED: DBG_ERR("TPSOCKET_EVENT_LISTEN: %s:%s connected\n", sock->addr, sock->port); break; case TPSOCKET_EVENT_REQ_HEAD: DBG_ERR("TPSOCKET_EVENT_LISTEN: %s Requested path: %s\n", sock->path, sock->parser.http.url); break; case TPSOCKET_EVENT_RSP_HEAD: break; case TPSOCKET_EVENT_SUB_HEAD: DBG_ERR("TPSOCKET_EVENT_LISTEN: %s:%s connected\n", sock->addr, sock->port); break; case TPSOCKET_EVENT_UPGRADE: break; case TPSOCKET_EVENT_STREAM: if (!session || !session->fp) { DBG_ERR("Invalid session during write\n"); return false; // 导致连接异常关闭 } case TPSOCKET_EVENT_MESSAGE: if (!session || !session->fp) { DBG_ERR("Invalid session during write\n"); return false; } struct tpsocket_buf *chunk; bool error = false; list_for_each_entry(chunk, buf, list) { size_t to_write = chunk->len; if (session->remaining <= 0) { DBG_ERR("Early termination: remaining=0\n"); break; } if (to_write > session->remaining) { DBG_ERR("Data overflow: %zu > %zu\n", to_write, session->remaining); to_write = session->remaining; } if (fwrite(chunk->data, 1, to_write, session->fp) < to_write) { DBG_ERR("File write error: %s\n", strerror(errno)); error = true; break; } session->remaining -= to_write; DBG_ERR("session->remaining: %d\n", session->remaining); if (session->remaining <= 0) break; } // 传输完成处理 if (session->remaining <= 0 || error) { fclose(session->fp); session->fp = NULL; // fclose(session->fp); const char *resp = error ? "HTTP/1.1 500 Internal Error\r\nConnection: close\r\n\r\n" : "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\nContent-Length: %zu\r\nConnection: keep-alive\r\n\r\n"; struct tpsocket_buf *resp_buf = tpbuf_snprintf(strlen(resp)+1, resp); if (resp_buf) tpsocket_write(sock, resp_buf); // tpsocket_close(sock); // 资源释放 if (error) unlink(session->filepath); free(session); handler->priv = NULL; } break; case TPSOCKET_EVENT_RESET: break; case TPSOCKET_EVENT_TIMEOUT: break; case TPSOCKET_EVENT_CLOSED: if (session) { // 异常关闭时清理资源 if (session->fp) fclose(session->fp); unlink(session->filepath); free(session); handler->priv = NULL; } break; case TPSOCKET_EVENT_ERROR: default: break; } tpsocket_free_buf(buf, tpsocket_event_name(event), 0); return true; } bool tpsocket_event_filelog_from_hub(struct tpsocket_handler *handler, struct list_head *buf, int event) { struct tpsocket_fd *sock = container_of(handler, struct tpsocket_fd, handler); ReadLogSession *session = handler->priv; if (event != TPSOCKET_EVENT_STREAM) { DBG_ERR("sock=%p, event=%s\n", sock, tpsocket_event_name(event)); } #define CHUNK_SIZE 4096 static char buffer[CHUNK_SIZE]; switch(event) { case TPSOCKET_EVENT_LISTEN: DBG_ERR("TPSOCKET_EVENT_LISTEN"); break; case TPSOCKET_EVENT_SHUTDOWN: DBG_ERR("TPSOCKET_EVENT_SHUTDOWN"); break; case TPSOCKET_EVENT_ACCEPT: DBG_ERR("TPSOCKET_EVENT_ACCEPT"); break; case TPSOCKET_EVENT_CONNECTED: DBG_ERR("TPSOCKET_EVENT_CONNECTED"); break; case TPSOCKET_EVENT_REQ_HEAD: DBG_ERR("TPSOCKET_EVENT_REQ_HEAD"); break; case TPSOCKET_EVENT_RSP_HEAD: DBG_ERR("TPSOCKET_EVENT_RSP_HEAD"); break; case TPSOCKET_EVENT_SUB_HEAD: break; case TPSOCKET_EVENT_UPGRADE: break; case TPSOCKET_EVENT_STREAM: case TPSOCKET_EVENT_MESSAGE: DBG_ERR("TPSOCKET_EVENT_MESSAGE"); if (!session || !session->fp) { DBG_ERR("Invalid session during transfer\n"); return false; } // 1. 发送HTTP头 if (!session->header_sent) { char header[512]; int header_len = snprintf(header, sizeof(header), "HTTP/1.1 200 OK\r\n" "Content-Type: text/plain\r\n" "Content-Length: %zu\r\n" "Connection: keep-alive\r\n\r\n", session->file_size); if (header_len <= 0) { DBG_ERR("Header generation failed\n"); return false; } struct tpsocket_buf *header_buf = tpbuf_snprintf(header_len + 1, header); if (!header_buf || !tpsocket_write(sock, header_buf)) { DBG_ERR("Failed to send header\n"); return false; } session->header_sent = true; DBG_ERR("HTTP header sent\n"); } DBG_ERR("Start sent body\n"); // 2. 一次性发送整个文件内容(移除分块发送逻辑) size_t bytes_read = fread(buffer, 1, session->file_size, session->fp); if (bytes_read != session->file_size) { DBG_ERR("File read error: expected %zu, got %zu\n", session->file_size, bytes_read); tpsocket_close(sock); return false; } struct tpsocket_buf *file_buf = tpbuf_snprintf(bytes_read, buffer); if (!file_buf || !tpsocket_write(sock, file_buf)) { DBG_ERR("Socket write failed\n"); return false; } session->sent_bytes = bytes_read; DBG_ERR("Sent entire file: %zu bytes\n", bytes_read); // 3. 文件发送完成 DBG_ERR("File transfer completed\n"); // tpsocket_close(sock); break; case TPSOCKET_EVENT_CLOSED: // 清理资源 if (session) { if (session->fp) fclose(session->fp); free(session); handler->priv = NULL; } break; case TPSOCKET_EVENT_ERROR: default: break; } return true; }
最新发布
10-19
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值