精华内容
下载资源
问答
  • 】对docker指令及踩坑记录,不包含具体原理及过程。参照https://www.cnblogs.com/clsn/p/8410309.html#auto-id-17有详细教程。一、Docker基础指令1.镜像1.1 搜索dockerhub官方镜像docker search nginx1.2 拉取镜像...
    b17acfaa35a019d9e92170ba65a1fe94.png

    】对docker指令及踩坑记录,不包含具体原理及过程。参照https://www.cnblogs.com/clsn/p/8410309.html#auto-id-17有详细教程。

    一、Docker基础指令

    1.镜像

    1.1 搜索dockerhub官方镜像

    docker search nginx

    1.2 拉取镜像

    docker pull nginx

    1.3 查看本地镜像

    docker images  或  docker image list

    1.4 将本地镜像导出成压缩文件

    docker image save nginx > docker-nginx.tar.gz

    1.5 删除镜像

    docker image rm nginx:latest

    1.6 导入镜像到本地,-i 表示指定导入的文件

    docker image load -i docker-nginx.tar.gz

    1.7 查看镜像的详细信息

    docker image inspect nginx

    2.容器

    关于镜像与容器的关系,我认为可以用一句话表达:容器就是镜像的实例,一个镜像可以创建多个容器,镜像类似于快照。

    2.1 启动容器

    docker run -d -p 80:80 nginx

    -d为后台运行容器;-p为端口映射,后接映射地址 ip:hostPort:containerPort

    2.2 查看正在运行的容器

    docker container ls 或 docker ps

    2.3 查看容器的详细信息

    docker container  inspect  容器名称/id

    2.4 查看所有的容器

    docker ps -a

    2.5 停止容器

    docker stop 容器名称/id  或  docker container kill 容器名称/id

    2.6 进入容器(最常用的一种)

    docker exec -it 容器id /bin/bash

    2.7 退出容器

    exit  或快捷键:Ctrl+P+Q

    2.8 将容器保存为镜像

    docker commit 容器ID newimage:v1

    3.数据卷

    数据卷用来共享容器间的数据,将容器与宿主机之间实现数据共享,使任意一方相应共享地址下数据变化影响对应一方。

    3.1 在创建容器时使用数据卷

    docker run -d -p 80:80 -v /data/nginx:/usr/share/nginx/html nginx:latest

    使用-v表示创建数据卷,宿主机地址为/data/nginx(没有会自动创建),目标容器内的数据地址在/usr/share/nginx/html。

    3.2 创建自定义容器卷

    docker volume create customize-nginx-volume

    使用时,在创建容器的时候将宿主机地址改为自定义的容器卷的名称。

    3.3 查看所有容器卷

    docker volume ls

    3.4 查看指定容器卷详细信息

    docker volume inspect customize-nginx-volume

    容器变化不会影响数据卷变化,宿主机内的数据卷还在,新建容器时仍可以继续使用。

    3.5 清理数据卷

    docker stop edc-nginx // 暂停容器实例docker rm edc-nginx // 移除容器实例docker volume rm edc-nginx-vol // 删除自定义数据卷
    展开全文
  • 03问题:点击“处理出错”后,在“申报处理信息”框中包含有“…第N条信息计税失败,原因为:4003:填写的抵缴金额不能大于三者差额(应纳税额-减免税额-已纳税额)。身份证号码:XX…”信息。应如何处理?参考方法:...

    属期起/止”做为比对的对象,在大集中核心数据库中搜寻同一收入所属期起/止的申报历史数据。

    03

    问题:点击“处理出错”后,在“申报处理信息”框中包含有“…第N条信息计税失败,原因为:4003:填写的抵缴金额不能大于三者差额(应纳税额-减免税额-已纳税额)。身份证号码:XX…”信息。应如何处理?

    参考方法:错误记录所指向的纳税人,本期所填写的“可抵缴税额”大于(应纳税额-批准减免税额-已申报应纳税额)三者的差额,简单的说就是本期所申报的“应扣补(退)税额”是负数。请正确填写申报数据,如对申报数据填写有疑问,可拨打95105199咨询。

    注意:若是对补发工资进行申报时,网络申报系统将以“收入所属期起/止”做为比对的对象,在大集中核心数据库中搜寻同一收入所属期起/止的申报历史数据。

    04问题:点击“处理出错”后,在“申报处理信息”框中包含有“...第N条信息计税失败,原因为:4006:一个纳税年度内每个纳税人只能有一个所得期一个所属期申报全年一次性奖金。身份证号码:XX...”信息。应如何处理?

    参考方法:错误原因为同一纳税年度内,错误记录指向的纳税人已申报了“全年一次性奖金”,故本次申报失败。根据国税发[2005]9号文件相关规定,同一个纳税年度,每一个纳税人只能申报一次全年一次性奖金。

    05问题:“申报处理信息”框中出现“计税RepCode:00017”,应如何处理?

    参考方法:错误原因为网络繁忙所致。具体解决方法如下:

    l 明细申报时出现错误

    重新上传同一报盘文件,并当网络申报系统成功处理报盘文件后,删除该处理出错的申报记录。

    l 补录明细时出现错误

    点击“申报处理信息”框下方的【删除】按钮,直接将该补录文件删除,释放出汇总凭证号,重新再次上传报盘文件,提交给系统处理。

    06问题:“申报处理信息”框中出现“计税RepCode:00200”,应如何处理?

    参考方法:错误原因为网络繁忙所致,解决方法请参考【05问题】处理方法。

    07问题:“申报处理信息”框中出现“计税RepCode:09999”,应如何处理?

    参考方法:错误原因为网络繁忙所致,解决方法请参考【05问题】处理方法。

    08问题:“申报处理信息”框中出现“计税RepCode:50027”,应如何处理?

    参考方法:错误原因为网络繁忙所致,解决方法请参考【05问题】处理方法。

    09问题:“申报处理信息”框中出现“计税RepCode:50038”,应如何处理?

    参考方法:错误原因为网络繁忙所致,解决方法请参考【05问题】处理方法。

    10问题:“申报处理

    展开全文
  • 遇到的问题今天遇到一个线上的BUG,在执行表单提交时失败,但是从程序日志中看不到任何异常信息。在Review源代码时发现,当catch到异常时只是输出了e.getMessage(),如下所示:logger.error("error: {}, {}", params...

    遇到的问题

    今天遇到一个线上的BUG,在执行表单提交时失败,但是从程序日志中看不到任何异常信息。

    在Review源代码时发现,当catch到异常时只是输出了e.getMessage(),如下所示:

    logger.error("error: {}, {}", params, e.getMessage());

    在日志中看不到任何信息,说明e.getMessage()返回值为空字符串。

    原因分析

    先来看一下Java中的异常类图:

    Throwable是Java中所有异常信息的顶级父类,其中的成员变量detailMessage就是在调用e.getMessage()返回的值。

    那么这个属性会在什么时候赋值呢,追溯源码发现,该属性只会在Throwable构造函数中赋值。

    public Throwable() {

    // 在默认构造函数中不会给detailMessage属性赋值

    fillInStackTrace();

    }

    public Throwable(String message) {

    fillInStackTrace();

    // 直接将参数赋值给detailMessage

    detailMessage = message;

    }

    public Throwable(String message, Throwable cause) {

    fillInStackTrace();

    // 直接将参数赋值给detailMessage

    detailMessage = message;

    this.cause = cause;

    }

    public Throwable(Throwable cause) {

    fillInStackTrace();

    // 当传入的Throwable对象不为空时,为detailMessage赋值

    detailMessage = (cause==null ? null : cause.toString());

    this.cause = cause;

    }

    protected Throwable(String message, Throwable cause,

    boolean enableSuppression,

    boolean writableStackTrace) {

    if (writableStackTrace) {

    fillInStackTrace();

    } else {

    stackTrace = null;

    }

    // 直接将参数赋值给detailMessage

    detailMessage = message;

    this.cause = cause;

    if (!enableSuppression)

    suppressedExceptions = null;

    }

    显然,从源码中可以看到在Throwable的默认构造函数中是不会给detailMessage属性赋值的。

    也就是说,当异常对象是通过默认构造函数实例化的,或者实例化时传入的message为空字符串,那么调用getMessage()方法时返回值就为空,也就是我遇到的情形。

    所以,在程序日志中不要单纯使用getMessage()方法获取异常信息(返回值为空时,不利于问题排查)。

    正确的做法

    在Java开发中,常用的日志框架及组件通常是:slf4j,log4j和logback,他们的关系可以描述为:slf4j提供了统一的日志API,将具体的日志实现交给log4j与logback。

    也就是说,通常我们只需要在项目中使用slf4j作为日志API,再集成log4j或者logback即可。

    org.slf4j

    slf4j-api

    1.7.25

    ch.qos.logback

    logback-core

    1.2.3

    ch.qos.logback

    logback-classic

    1.2.3

    上述配置以集成slf4j和logback为例,添加对应的logback配置文件(logback.xml):

    %date %level [%thread] %logger{10} [%file:%line] %msg%n

    test.log

    %date %level [%thread] %logger{10} [%file:%line] %msg%n

    在Java中通过slf4j提供的日志API记录日志:

    import org.slf4j.Logger;

    import org.slf4j.LoggerFactory;

    public class Test {

    private static final Logger logger = LoggerFactory.getLogger(Test.class);

    }

    当我们需要在程序日志中输出异常信息时,应该直接传入异常对象即可,而不要单纯通过异常对象的getMessage()方法获取输出异常信息。

    public void test() {

    try {

    // 使用默认构造函数实实例化异常对象

    throw new NullPointerException();

    } catch (Exception e) {

    // 直接将异常对象传入日志接口,保存异常信息到日志文件中

    logger.error("error: {}", e.getMessage(), e);

    e.printStackTrace();

    }

    }

    如下是保存到日志文件中的异常信息片段:

    2019-06-20 20:04:25,290 ERROR [http-nio-8090-exec-1] o.c.s.f.c.TestExceptionController [TestExceptionController.java:26] error: null # 使用默认构造参数实例化异常对象时,getMessage()方法返回值为空对象

    # 如下是具体的异常堆栈信息

    java.lang.NullPointerException: null

    at org.chench.springboot.falsework.controller.TestExceptionController.test(TestExceptionController.java:24) ~[classes/:na]

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181]

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181]

    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181]

    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) [spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE]

    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) [spring-web-5.0.6.RELEASE.jar:5.0.6.RELEASE]

    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) [spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]

    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877) [spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]

    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783) [spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]

    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) [spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]

    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) [spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]

    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) [spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]

    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) [spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]

    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866) [spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) [tomcat-embed-core-8.5.31.jar:8.5.31]

    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) [spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) [tomcat-embed-core-8.5.31.jar:8.5.31]

    ......

    展开全文
  • 1. 问题描述腾讯内部某业务在容器场景上遇到了一个比较诡异的网络问题,在容器内使用GIT,SVN工具从内部代码仓库拉取代码偶发性卡顿失败,而在容器所在的Node节点使用同样版本的GIT,SVN工具却没有问题。用诡异这个...

    4b4bf3003f619dc26f4a4cabcd44d4d7.gif

    文章来源:腾讯云原生 / 原文链接文章作者杨玉玺,2011年至今一直从事底层网络研发,目前就职腾讯云 TKE 团队,专注 K8s 底层网络。先后就职于阿里云、金山云从事 VPC 虚拟化网络研发,对高性能网络优化,复杂网络问题排查有非常丰富的经验。导语

    K8s容器网络涉及诸多内核子系统,IPVS,Iptable,3层路由,2层转发,TCP/IP协议栈,这些复杂的内核子系统在特定场景下可能会遇到设计者最初也想不到的问题。本文分享了iptable防火墙状态异常导致丢包的排查记录,这个排查过程非常曲折,最后使用了在现在的作者看来非常落伍的工具:systemtap,才得以排查成功。其实依作者现有的经验,此问题现在仅需一条命令即可找到原因,这条命令就是作者之前分享过文章使用 ebpf 深入分析容器网络 dup 包问题中提到的skbtracker。时隔7个月,这个工具已经非常强大,能解决日常网络中的90%的网络问题。此文其实已于2019年7月在腾讯内部进行发表,时隔一年,再次翻出来阅读仍然有颇多收获,因此把它分享出来给其他同行一起学习。此外,本篇文章也将作为开篇,后续陆续分享作者近期使用ebpf工具排查各种内核疑难杂症的过程及经验。1. 问题描述腾讯内部某业务在容器场景上遇到了一个比较诡异的网络问题,在容器内使用GIT,SVN工具从内部代码仓库拉取代码偶发性卡顿失败,而在容器所在的Node节点使用同样版本的GIT,SVN工具却没有问题。用诡异这个词,是因为这个问题的分析持续时间比较久,经历了多个同学之手,最后都没有揪出问题根源。有挑战的问题排查对于本人来说是相当有吸引力的,于是在手头没有比较紧急任务的情况下,便开始了有趣的debug。从客户描述看,问题复现概率极大,在Pod里面拉取10次GIT仓库,必然有一次出现卡死,对于必现的问题一般都不是问题,找到复现方法就找到了解决方法。从客户及其他同事反馈,卡死的时候,GIT Server不再继续往Client端发送数据,并且没有任何重传。

    1.1 网络拓扑

    业务方采用的是TKE单网卡多IP容器网络方案,node自身使用主网卡eth0,绑定一个ip,另一个弹性网卡eth1绑定多个ip地址,通过路由把这些地址与容器绑定,如图1-1.
    1056254dcf0ee0f74d530133104dce4f.png

    1.2 复现方法

    7ed3845e8cdb82f07070a6183bbf83cc.png

    1.3 抓包文件分析

    在如下三个网口eth1,veth_a1,veth_b1分别循环抓包,Server端持续向Client发送大包,卡顿发生时,Server端停止往Client发送数据包,没有任何重传报文。2. 排查过程

    分析环境差异:Node和Pod环境差异

    • Node内存比Pod多,而Node和Pod的TCP 接收缓存大小配置一致,此处差异可能导致内存分配失败。
    • 数据包进出Pod比Node多了一次路由判断,多经过两个网络设备:veth_a1和veth_b1,可能是veth的某种设备特性与TCP协议产生了冲突,或veth虚拟设备有bug,或veth设备上配置了限速规则导致。

    分析抓包文件: 有如下特征

    • 两个方向的数据包,在eth1,veth_a1设备上都有被buffer的现象:到达设备一段时间后被集中发送到下一跳
    • 在卡住的情况下,Server端和Client端都没有重传,eth1处抓到的包总比veth_a1多很多,veth_a1处抓到的包与veth_b1处抓到的包总是能保持一致
    分析:TCP是可靠传输协议,如果中间因为未知原因(比如限速)发生丢包,一定会重传。因此卡死一定是发包端收到了某种控制信号,主动停止了发包行为。

    猜测一:wscal协商不一致,Server端收到的wscal比较小

    在TCP握手协商阶段,Server端收到Client端wscal值比实际值小。传输过程中,因为Client端接收buffer还有充裕,Client端累计一段时间没及时回复ack报文,但实际上Server端认为Client端窗口满了(Server端通过比较小的wscal推断Client端接收buffer满了),Server端会直接停止报文发送。如果Server端使用IPVS做接入层的时候,开启synproxy的情况下,确实会导致wscal协商不一致。带着这个猜想进行了如下验证:
    • 通过修改TCP 接收buffer(ipv4.tcp_rmem)大小,控制Client wscal值
    • 通过修改Pod内存配置,保证Node和Pod的在内存配置上没有差异
    • 在Server端的IPVS节点抓包,确认wscal协商结果
    以上猜想经过验证一一被否决。并且找到业务方同学确认,虽然使用了IPVS模块,但是并没有开启synproxy功能,wscal协商不一致的猜想不成立。

    猜测二:设备buffer了报文

    设备开启了TSO,GSO特性,能极大提升数据包处理效率。猜测因为容器场景下,经过了两层设备,在每层设备都开启此特性,每层设备都buffer一段,再集中发送,导致数据包乱序或不能及时送到,TCP层流控算法判断错误导致报文停止发送。带着这个猜想进行了如下验证:1)关闭所有设备的高级功能(TSO,GSO,GRO,tx-nocache-copy,SG)2)关闭容器内部delay ack功能(net.ipv4.tcp_no_delay_ack),让Client端积极回应Server端的数据包以上猜想也都验证失败。

    终极方法:使用systamp脚本揪出罪魁祸首

    验证了常规思路都行不通。但唯一肯定的是,问题一定出在CVM内部。注意到eth1抓到的包总是比veth_a1多那么几个,之前猜想是被buffer了,但是buffer了总得发出来吧,可是持续保持抓包状态,并没有抓到这部分多余的包,那这部分包一定被丢了。这就非常好办了,只要监控这部分包的丢包点,问题就清楚了。使用systemtap监控skb的释放点并打印backtrace,即可快速找到引起丢包的内核函数。Systemtap脚本如图2-1,2-2所示。
    8bbed8831ca7ac10160556d0fcf92360.png图2-1 dropwatch脚本(不带backtrce打印)
    61cf6b33b261778479a205cd73b041d3.png图2-2 dropwatch脚本(带backtrce打印)首先通过图2-1脚本找到丢包点的具体函数,然后找到丢包具体的地址(交叉运行stap --all-modules dropwatch.stp -g和stap dropwatch.stp -g命令,结合/proc/kallsyms里面函数的具体地址),再把丢包地址作为判断条件,精确打印丢包点的backtrace(图2-2)。运行脚本stap --all-modules dropwatch.stp -g,开始复现问题,脚本打印如图2-3:b9cce0ba455f48bc5d19a4b39ebdefd0.png图2-3 丢包函数正常不卡顿的时候是没有nf_hook_slow的,当出现卡顿的时候,nf_hook_slow出现在屏幕中,基本确定丢包点在这个函数里面。但是有很多路径能到达这个函数,需要打印backtrace确定调用关系。再次运行脚本:stap dropwatch.stp -g,确认丢包地址列表,对比/proc/kallsyms符号表ffffffff8155c8b0 T nf_hook_slow,找到最接近0xffffffff8155c8b0 的那个值0xffffffff8155c9a3就是我们要的丢包点地址(具体内核版本和运行环境有差异)。加上丢包点的backtrace,再次复现问题,屏幕出现图2-4打印。
    b778aa9e5c0d4a3bf8bdf270a11eea7e.png图2-4 丢包点backtrace
    d7266a9176d1eeb9a9bba0b9fb9e9b8d.png图2-5连接表状态可以看出ip_forward调用nf_hook_slow最终丢包。很明显数据包被iptable上的FORWARD 链规则丢了。查看FORWARD链上的规则,确实有丢包逻辑(-j REJECT --reject-with icmp-port-unreachable),并且丢包的时候一定会发 icmp-port-unreachable类型的控制报文。到此基本确定原因了。因为是在Node上产生的icmp回馈信息,所以在抓包的时候无法通过Client和Server的地址过滤出这种报文(源地址是Node eth0地址,目的地址是Server的地址)。同时运行systamp脚本和tcpdump工具抓取icmp-port-unreachable报文,卡顿的时候两者都有体现。接下来分析为什么好端端的连接传输了一段数据,后续的数据被规则丢了。仔细查看iptalbe规则发现客户配置的防火墙规则是依赖状态的:-m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT。只有ESTABLISHED连接状态的数据包才会被放行,如果在数据传输过程中,连接状态发生变化,后续入方向的报文都会被丢弃,并返回端口不可达。通过conntrack工具监测连接表状态,发现出问题时,对应连接的状态先变成了FIN_WAIT,最后变成了CLOSE_WAIT(图2-5)。通过抓包确认,GIT在下载数据的时候,会开启两个TCP连接,有一个连接在过一段时间后,Server端会主动发起fin包,而Client端因为还有数据等待传输,不会立即发送fin包,此后连接状态就会很快发生如下切换:ESTABLISHED(Server fin)->FIN_WAIT(Client ack)->CLOSE_WAIT所以后续的包就过不了防火墙规则了(猜测GIT协议有一个控制通道,一个数据通道,数据通道依赖控制通道,控制通道状态切换与防火墙规则冲突导致控制通道异常,数据通道也跟着异常。等有时间再研究下GIT数据传输相关协议)。这说明iptables的有状态的防火墙规则没有处理好这种半关闭状态的连接,只要一方(此场景的Server端)主动CLOSE连接以后,后续的连接状态都过不了规则(-m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT)。明白其中原理以后,对应的解决方案也比较容易想到。因为客户是多租户容器场景,只放开了Pod主动访问的部分服务地址,这些服务地址不能主动连接Pod。了解到GIT以及SVN都是内部服务,安全性可控,让用户把这些服务地址的入方向放行,这样即使状态发生切换,因为满足入向放行规则,也能过防火墙规则。3. 思考

    在排查问题的过程中,发现其实容器的网络环境还有非常多值得优化和改进的地方的,比如:
    • TCP接受发送buffer的大小一般是在内核启动的时候根据实际物理内存计算的一个合理值,但是到了容器场景,直接继承了Node上的默认值,明显是非常不合理的。其他系统资源配额也有类似问题。
    • 网卡的TSO,GSO特性原本设计是为了优化终端协议栈处理性能的,但是在容器网络场景,Node的身份到底是属于网关还是终端?属于网关的话那做这个优化有没有其他副作用(数据包被多个设备buffer然后集中发出)。从Pod的角度看,Node在一定意义上属于网关的身份,如何扮演好终端和网关双重角色是一个比较有意思的问题
    • Iptables相关问题
    此场景中的防火墙状态问题规则多了以后iptables规则同步慢问题Service 负载均衡相关问题(规则加载慢,调度算法单一,无健康检查,无会话保持,CPS低问题)SNAT源端口冲突问题,SNAT源端口耗尽问题
    • IPVS相关问题
    统计timer在配置量过大时导致CPU软中断收包延时问题net.ipv4.vs.conn_reuse_mode导致的一系列问题 (参考:https://github.com/kubernetes/kubernetes/issues/81775 )截止到现在,以上大多数问题已经在TKE平台得到解决,部分修复patch提到了内核社区,相应的解决方案也共享到了K8s社区。END
    Kubernetes CKA实战培训班推荐:

    北京站:9月11-13日

    上海站:9月18-20日

    be50c1f55d35564b5a2e5a31bd14dad0.png

    bf0c22e994858eaaba5dbe8aa5822534.gif

    4d31406b10267c847f967fe97ca7745a.png

    展开全文
  • 天猫入驻为什么失败?这是很多商家都想要知道的一件事情,猫店侠想说其实这也很正常,只要不是一味盲目的入驻,就还有机会。首先失败商家要看看失败的反馈内容,看看是哪方面不达标,再着重进行补充,但实际上猫店侠...
  • $ cat kubernetes-dashboard.yaml | grep kubernetes-dashboard 这是我们需要的信息: - name: kubernetes-dashboard image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1 可以看到镜像版本为 v1.10.1。 拉取...
  • 我自己的第一次申请失败了,就没有申请入口了,没法再次申请。 (没有申请按钮)但是,我在知乎看到有人申请失败,为什么还能再次申请。为什么啊,有人知道么?...
  • 在shuffle中,我们map端的task向磁盘文件写入数据,其实是task所在的executor上分配一个Block...这时,reduce端想要拉取数据,就会想Driver申请,然后告诉Driver自己想拉取的那份数据,但是它记录的是元数据,需...
  • 解决gitlab-runner拉取代码失败

    千次阅读 2019-10-24 14:05:02
    问题 因为之前根据代码仓库 A创建代码仓库B的时候太匆忙,没有迁移...然额,构建失败,gitlab-runner拉取代码不成功,老项目都可以,新项目不行,什么鬼。。。 错误信息: Running with gitlab-runner 12.0.2 (d0b7...
  • 最近一段时间开始学习docker相关...上述安装过程没发现什么问题,下面主要记录一下拉取镜像事出现的一些问题。 当我cmd执行: docker pull mysql,控制台会报错:no matching manifest for windows/amd64 10.0.18362 in
  • 在工作中遇到过很多次,在修改Gitee密码后回过头再使用Sourcetree对原仓库进行拉取和推送,都会失败。研究了下报错信息,大体上也明白是因为修改了Gitee的原始密码,但是Sourcetree仍在用修改之前的密码进行仓库的...
  • (以下情况是我们的一位开发小哥哥遇到了提交失败,来找我,我给他解决的过程,以前我也没遇到,所以记录下来)我们会遇到这样的情况,在develop分支上,第一天修改的文件,已经执行了git commit 添加了提交记录信息...
  • git push 提交某一个commit

    千次阅读 2018-08-20 14:46:00
     我们会遇到这样的情况,在develop分支上,第一天修改的文件,已经执行了git commit 添加了提交记录信息commit1,忘记push了,然后第二天,执行了git pull,拉取了服务器的一大堆提交下来,比如有commit2,commit3,...
  • 心来拉取最新的节点信息。 可能的问题: 这种机制在大部分情况下都可以工作得很好,但是在网络频繁抖动时,服务提供者向注册中心 汇报心跳信息可能会失败,如果在规定的时间内,注册中心都没有收到服务提供者的心跳...
  • 发布历史日志: 记录时间,执行人,状态,CommitId,详细过程信息 服务状态监控: 多线程循环检查所有服务状态,根据supervisor的服务状态,无supervisor,检查ssh状态 报警: 目前仅支持钉钉 服务上线: 勾选主机,检查git代码...
  • seata1.3.0.zip

    2020-07-23 15:21:24
    PS:启动日志里面会有一些getConfig失败的报错,这些不用管,这些新的配置参数是1.3版本新增的,由于当前是SNAPSHOT版本,还不完善。 PS: 如果遇到getServerCharset 空指针异常,这个主要是MySQL和MySQL驱动版本不...
  • 拉取微信用户信息写入数据库的过程中,遇到一个奇怪的问题,折磨了我一天了,希望哪位高人给看一下,在通过接口获取到微信用户的信息后,使用网上找的一个数据库操作类写入数据表,在数据库操作类的insert函数中有...
  • 万一作业失败,Flink将把流式程序恢复到最新检查点的状态,并从检查点中存储的偏移量开始重新使用Kafka的记录。 Kafka版本 执行语义 Kafka 0.8 在0.9之前Kafka没有提供任何机制去保证至少一次和仅仅一次的...
  • 欢迎大家来到 Higmin GitHub Project! 创建此工程是为了巩固基础知识 当然能对社区做点贡献也是我小小的心愿~ 本工程包含了 SpringAOP,死锁,JUC同步锁,读-写同步锁,ThreadLocal使用,JUC线程池和Spring提供的...
  • 如果出现编译失败,可以看看该目录下7.1编译失败记录常见编译错误。如果其他问题,大都可以谷歌解决。如果编译耗时,可以根据run build查看每个模块的编译时间【也就是找出编译耗时所在,作为程序员不仅要知道编译...
  • //去服务器拉取警情的详细信息 intent = new Intent(); intent.putExtra("InfoTag", "OANotify"); intent.setClass(getActivity(), MessageDetail.class); startActivity(intent); } } ...
  • 用例集可重跑全部用例、重跑失败用例、重跑单条用例。 注意:重跑用例时,会自动从对应测试用例中加载最新的步骤。 5.节点管理: 节点:可加载多个selenium grid节点,系统根据当前可用节点的数量,分配用例进行...

空空如也

空空如也

1 2
收藏数 23
精华内容 9
关键字:

信息记录拉取失败