开发中遇到的 bug 记录
前言
这里记录一些比较杂的 bug,持续更新中。下面是其他一些归类了的 bug 记录:
Spark: Cannot safely cast
Spark-sql 执行 sql 语句报:Cannot safely cast xxx string to int.
原因是 spark-sql 执行 sql 有三中模式:ANSI, LEGACY, STRICT。
- ANSI 模式是标准 sql,不允许不合理的类型转换,与 PostgreSQL 相同;
- LEGACY 模式允许类型强制转换,只要它是有效的 Cast,这也是 Spark 2.x 中的唯一行为,它与 Hive 兼容;
- STRICT 模式下 Spark 不允许任何可能的精度损失或数据截断。
解决方法是添加如下配置即可:
1spark.sql.storeAssignmentPolicy=LEGACY
Node: Error message “error:0308010C:digital envelope routines::unsupported”
1export NODE_OPTIONS=--openssl-legacy-provider
Apple Watch 无法更新,一直显示已暂停
在 Apple Watch 中的储存空间下删除之前的更新文件即可。
Apple Map icloud 关闭同步后指南丢失
卸载重装 Apple Map 即可
go build stuck
1go build -v -o bepusdt ./main
2github.com/goccy/go-json/internal/encoder/vm
3
4# stuck here
Try cleaning the build cache to ensure that no corrupted files are causing the problem.
1go clean -cache -modcache -i -r
iterm2 scp 下载每次都要询问 key
1ssh-add -K ~/.ssh/id_rsa
latex 中文编码问题
1\usepackage{CJKutf8}
2
3\begin{document}
4\begin{CJK}{UTF8}{gbsn}
5...
6\end{CJK}
7\end{document}
certbot renew 报错 urlib3 依赖问题
try:
1pip install --upgrade --force-reinstall 'requests==2.6.0' urllib3
I’ve had the same problem https://niuhp.com/other/https-certbot.html
mybatis 判断和语法错误
1<if test="employeeIds != null and employeeIds.size > 0">
2 AND A.EmployeeId in
3 <foreach collection="employeeIds" index="index" item="item" open="(" separator="," close=")">
4 #{item}
5 </foreach>
6</if>
7
8ORDER BY A.FeedId DESC
and employeeIds.size > 0
不可少否则报错:
1org.springframework.jdbc.BadSqlGrammarException
curl 请求路径正确但报 404 或参数反序列化异常
去掉 content-length 限制 -H 'Content-Length: 19'
sqlserver TLSv1 was negotiated. Please update server and client to use TLSv1.2 at minimum.
由于公司的 sqlserver 只支持 tls1 所以需要安装旧版本 driver 并配置 VM option:
1"-Djdk.tls.disabledAlgorithms=SSLv3, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL"
driver 使用 8 及以下版本即可。
Unittest test discovery error for workspace
12024-02-05 15:27:34.532 [error] from typing_extensions import Literal, NotRequired, TypedDict
2 File "/Users/zh/.vscode/extensions/ms-python.python-2024.0.0/pythonFiles/lib/python/typing_extensions.py", line 916
3 def TypedDict(typename, fields=_marker, /, *, total=True, **kwargs):
4 ^
5SyntaxError: invalid syntax
6
72024-02-05 15:27:34.544 [error] Subprocess exited unsuccessfully with exit code 1 and signal null on workspace /Users/zh/Codes/jvav. Creating and sending error discovery payload
8
92024-02-05 15:27:34.544 [error] Unittest test discovery error for workspace: /Users/zh/Codes/jvav
Fixed by #21757:
Thank you for your issue report. We are looking into this now! In the meantime, you are likely on the new testing rewrite and this is why you saw a change in behavior. You can opt out of the rewrite as I get this fix in by setting this in your user settings: “python.experiments.optOutFrom”: [“pythonTestAdapter”],. If this doesn’t work let me know as this will mean it is a different issue. Thank you and I will send updates in this thread as I get a fix in.
1// settings.json
2"python.experiments.optOutFrom": ["pythonTestAdapter"]
Gitignore 失效
1git rm -rf --cached .
2git add .
Nginx 相对地址资源引用不走反向代理
1location /pay/usdt/ {
2 sub_filter 'src="/img/' 'src="/pay/usdt/img/';
3 sub_filter 'src="/js/' 'src="/pay/usdt/js/' ;
4 sub_filter 'src="/css/' 'src="/pay/usdt/css/' ;
5 sub_filter_once off;
6
7 proxy_pass http://127.0.0.1:8080/;
8}
Nginx 无法加载 css
1http {
2 include /etc/nginx/mime.types;
3}
dujiaoka 重启后前台需要重新安装
1# enter dujiaoka container
2echo "ok" > /dujiaoka/install.lock
manpath: can’t set the locale; make sure $LC_* and $LANG are correct
Add these lines to /etc/environment:
1LANG=en_US.utf-8
2LC_ALL=en_US.utf-8
RSSHub commit 不通过
报错提示说缺少某个依赖(pinyin-pro),是文档相关的。
如果修改了文档,那么需要到 website 下运行 pnpm i
安装相关依赖,以便于 commit 检查。
InfluxDb 引号问题
插入数据时,tag 不带引号,field 字符串类型带双引号
查询数据时,字符串类型带单引号
docker-compose 容器内无法连接服务的问题
这是一个 docker-compose 配置文件:
1version: "3"
2
3services:
4 cache:
5 image: redis
6 command: bash -c "mkdir -p ${PATH_REDIS} && touch ${PATH_REDIS}/redis.conf && redis-server ${PATH_REDIS}/redis.conf"
7 ports:
8 - "6379:6379"
9 volumes:
10 - ${HOST_PATH_ROOT}/redis:${PATH_REDIS}
11 - ${HOST_PATH_ROOT}/redis/data:/data
12 web:
13 build: .
14 volumes:
15 - ${HOST_PATH_ROOT}:${PATH_ROOT}
16 depends_on:
17 - cache
18 # network_mode: "host"
我组织了两个容器服务,redis 和 web,在 web 中需要连接到 redis,如果指定的 redis 地址为 127.0.0.1 则无法连接到,报错如下:
1ERROR: 无法连接到 redis 服务: 127.0.0.1:6379 : Error 111 connecting to 127.0.0.1:6379. Connection refused.
这是因为通过 docker-compose 组织的容器,主机名被设置为 cache 和 web,将 127.0.0.1 改为 cache 即可。
XX 不允许发送按键
执行发送按键的 applescript 时可能会失败:
1execution error: “System Events”遇到一个错误:“osascript”不允许发送按键。 (1002)
在隐私与安全性 -> 辅助功能 -> + -> 添加 /usr/bin/osascript 即可
.gitignore 反选的正确用法
排除 /.xxx 下除了 jvm.cfg 的所有文件:
1/.xxx/*
2!/.xxx/jvm.cfg
如果 /.xxx/* 写为 /.xxx/ 或 /.xxx 都将失效,因为这样忽略的是 ./xxx 这个文件夹,而不是整个文件夹下的文件,导致反选无效。
brew 安装报错 curl: (56) Failure when receiving data from the peer
1git config --global http.sslVerify "false"
2git config --global https.sslVerify "false"
oh-my-zsh agnoster 主题乱码问题
从这个链接下载字体文件: https://github.com/lxbrtsch/Menlo-for-Powerline
1mv "Menlo for Powerline.ttf" ~/Library/Fonts
VSCode -> Terminal Font Family 设置字体为 Menlo for Powerline
Terminal -> 设置 -> 字体 -> 更改
docker-compose volume 指定对象为文件时产生的问题
如果指定为文件(命名为 a),且事先没有创建该文件,那么当启动后,docker 将会自动创建一个名为 a 的目录。
这样就读取不到该文件了。
所以,如果指定的对象为文件,建议先创建。
Sqlite3 执行 sql 出错
1sqlite> select * from t_record where comment != "";
2Parse error: no such column:
3 select * from t_record where comment != "";
4 error here ---^
应该将双引号改为单引号。
根据 SQL 标准,通常在标识符(例如表名或列名)周围使用双引号,而在字符串字面量周围使用单引号。
在 3.41 版本往后 cli 默认禁用了双引号表示字符串,使用单引号就不报错了:https://www.sqlite.org/quirks.html#double_quoted_string_literals_are_accepted
iterm2 无法使用 scp
1# server side
2vim .zprofile
3export iterm2_hostname=your_server_global_ip
4# then relogin