【CF809C】Find a car(动态规划)

本文详细解析了CF809C Findacar的动态规划解法,针对无限矩阵中特定数值范围的求和问题,通过巧妙的位运算和状态压缩,设计了一个高效的DP算法,解决了复杂的大规模询问。

【CF809C】Find a car(动态规划)

题面

洛谷
CF
有一个无穷大的矩阵,第\(i\)行第\(j\)列的数是\((i-1)xor(j-1)+1\)\(q\)次询问,每次询问一个矩形内数小于等于\(k\)的数的和。

题解

询问等价于\(\sum_{i=l}^r\sum_{j=L}^R [i\oplus j\le k]i\oplus j\)
把询问拆分成四个从\(1\)开始的东西,即\([1..r,1..R],[1..l-1,1..R],[1..r,1..L-1],[1..l-1,1..L-1]\)
那么就可以大力数位\(dp\)了,设\(f[i][0/1][0/1][0/1]\)表示\(i\)是否卡在界上,\(j\)是否卡在界上,\(i\oplus j\)是否卡在界上,需要同时记录方案数和和。
大力转移一下就好了。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define MOD 1000000007
void add(int &x,int y){x+=y;if(x>=MOD)x-=MOD;}
inline int read()
{
    int x=0;bool t=false;char ch=getchar();
    while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
    if(ch=='-')t=true,ch=getchar();
    while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
    return t?-x:x;
}
int f[32][2][2][2],g[32][2][2][2];
int Calc(int L,int R,int K)
{
    if(L<0||R<0)return 0;
    memset(f,0,sizeof(f));memset(g,0,sizeof(g));f[31][0][0][0]=1;
    for(int i=30;~i;--i)
        for(int a=0;a<=1;++a)
            for(int b=0;b<=1;++b)
                for(int k=0;k<=1;++k)
                {
                    if(!f[i+1][a][b][k])continue;
                    for(int A=0;A<=1;++A)
                        for(int B=0;B<=1;++B)
                        {
                            if(!a&&A&&!(L&(1<<i)))continue;
                            if(!b&&B&&!(R&(1<<i)))continue;
                            if(!k&&!(K&(1<<i))&&(A^B))continue;
                            int na=a,nb=b,nk=k;
                            if(!A&&(L&(1<<i)))na|=1;
                            if(!B&&(R&(1<<i)))nb|=1;
                            if(!(A^B)&&(K&(1<<i)))nk|=1;
                            add(f[i][na][nb][nk],f[i+1][a][b][k]);
                            add(g[i][na][nb][nk],g[i+1][a][b][k]);
                            if(A^B)add(g[i][na][nb][nk],1ll*(1<<i)*f[i+1][a][b][k]%MOD);
                        }
                }
    int ret=0;
    for(int a=0;a<=1;++a)
        for(int b=0;b<=1;++b)
            for(int k=0;k<=1;++k)
                add(ret,g[0][a][b][k]),add(ret,f[0][a][b][k]);
    return ret;
}
int main()
{
    int Q=read();
    while(Q--)
    {
        int x1=read()-1,x2=read()-1,y1=read()-1,y2=read()-1,k=read()-1;
        int ans1=(Calc(y1,y2,k)+Calc(x1-1,x2-1,k))%MOD;
        int ans2=(Calc(x1-1,y2,k)+Calc(y1,x2-1,k))%MOD;
        int ans=(ans1+MOD-ans2)%MOD;
        printf("%d\n",ans);
    }
    return 0;
}

转载于:https://www.cnblogs.com/cjyyb/p/10473561.html

我重新整理了一下报错内容 #include <malloc.h> #include <time.h> #include <sched.h> #include <errno.h> #include <string.h> #include <pthread.h> #include “test.h” #define THREAD_MAX_N 8 #define SIZE_ALIGN (4 * sizeof(size_t)) #define MMAP_THRESHOLD 131052 #define FREE_CYCLE 16 #define THRESHOLD (MMAP_THRESHOLD / 16) #define ITER_TIME 80 #define NANOSEC_PER_SEC 1e9 #define MALLOC_TIME (ITER_TIME * (THRESHOLD / (SIZE_ALIGN + 1))) void free_all(void **ptr) { for (int j = 0; j < FREE_CYCLE; j++) { if(ptr[j]){ free(ptr[j]); ptr[j]=NULL; } } } void *func(void *arg) { int *val = (int *)arg; cpu_set_t mask; struct timespec ts[2]; int num = 0; void *ptr[FREE_CYCLE]; CPU_ZERO(&mask); CPU_SET(0, &mask); if (sched_setaffinity(0, sizeof(mask), &mask) < 0) { t_error("Set CPU affinity of thread %d failure, ERROR:%s\n", *val, strerror(errno)); return NULL; } for (int i = 0; i < ITER_TIME; ++i) { for (size_t size = 0; size < THRESHOLD; size += SIZE_ALIGN + 1) { if (num == FREE_CYCLE) { free_all(ptr); num = 0; } ptr[num] = malloc(size); if (!ptr[num]) { t_error("Thread %d malloc failed for size %u\n", *val, size); *val = errno; return NULL; } num++; } } *val = 0; return NULL; } int main(int argc, char *argv[]) { printf(“start\n”); struct timespec ts[2]; pthread_attr_t attr; pthread_t tids[THREAD_MAX_N]; int t_result[THREAD_MAX_N] = {0}; int flag = 0; int ret; int i; ret = pthread_attr_init(&attr); if (ret < 0) { t_error("Init pthread attribute failed: %s\n", strerror(errno)); return -1; } clock_gettime(CLOCK_REALTIME, ts); for (i = 0; i < THREAD_MAX_N; ++i) { t_result[i] = i; ret = pthread_create(&tids[i], &attr, func, &t_result[i]); if (ret < 0) { t_error("Create pthread %u failed: %s\n", i, strerror(errno)); flag = -1; break; } } for (i = 0; i < THREAD_MAX_N; ++i) { ret = pthread_join(tids[i], NULL); if (ret < 0) { t_error("Join thread %u failed: %s\n", i, strerror(errno)); } } clock_gettime(CLOCK_REALTIME, ts + 1); (void)pthread_attr_destroy(&attr); double cost = (ts[1].tv_sec - ts[0].tv_sec) * NANOSEC_PER_SEC + (ts[1].tv_nsec - ts[0].tv_nsec); if (!flag) { t_printf("Malloc and free %d threads %d times cost %lf s\n", THREAD_MAX_N, MALLOC_TIME, cost / NANOSEC_PER_SEC); t_status = 0; } return t_status; } 这是openharmony中的一个测试程序,产生了以下内核崩溃,openharmony4.1,linux内核版本5.15.74 第一个内核崩溃日志 [ 309.609779][T14@C0] BUG: KFENCE: use-after-free read in rcu_cblist_dequeue+0x28/0x48 [ 309.609779][T14@C0] [ 309.619642][T14@C0] Use-after-free read at 0x00000000da8dbea8 (in kfence-#60): [ 309.626824][T14@C0] rcu_cblist_dequeue+0x28/0x48 [ 309.631497][T14@C0] rcu_core+0x210/0x58c [ 309.635476][T14@C0] rcu_core_si+0x20/0x30 [ 309.639544][T14@C0] __do_softirq+0x170/0x5c8 [ 309.643867][T14@C0] run_ksoftirqd+0x50/0xac [ 309.648111][T14@C0] smpboot_thread_fn+0x2d4/0x3d8 [ 309.652868][T14@C0] kthread+0x170/0x1d4 [ 309.656761][T14@C0] ret_from_fork+0x10/0x20 [ 309.661001][T14@C0] [ 309.663166][T14@C0] kfence-#60: 0x00000000da8dbea8-0x0000000007d404e2, size=232, cache=vm_area_struct [ 309.663166][T14@C0] [ 309.674502][T14@C0] allocated by task 2266 on cpu 0 at 309.577745s: [ 309.680741][T14@C0] vm_area_dup+0x34/0x104 [ 309.684887][T14@C0] __split_vma+0x78/0x260 [ 309.689041][T14@C0] __do_munmap+0xf8/0x724 [ 309.693195][T14@C0] __vm_munmap.llvm.15742267499309760575+0x94/0x180 [ 309.699600][T14@C0] __arm64_sys_munmap+0x50/0x68 [ 309.704276][T14@C0] invoke_syscall+0x6c/0x15c [ 309.708688][T14@C0] el0_svc_common.llvm.9499517201915720397+0xd4/0x120 [ 309.715262][T14@C0] do_el0_svc+0x34/0xac [ 309.719242][T14@C0] el0_svc+0x2c/0x94 [ 309.722963][T14@C0] el0t_64_sync_handler+0x8c/0xf0 [ 309.727809][T14@C0] el0t_64_sync+0x1b4/0x1b8 [ 309.732137][T14@C0] [ 309.734300][T14@C0] freed by task 14 on cpu 0 at 309.594072s: [ 309.740017][T14@C0] __vm_area_free+0xa0/0xe0 [ 309.744343][T14@C0] rcu_do_batch+0x2ac/0x8f4 [ 309.748669][T14@C0] rcu_core+0x210/0x58c [ 309.752649][T14@C0] rcu_core_si+0x20/0x30 [ 309.756717][T14@C0] __do_softirq+0x170/0x5c8 [ 309.761043][T14@C0] run_ksoftirqd+0x50/0xac [ 309.765284][T14@C0] smpboot_thread_fn+0x2d4/0x3d8 [ 309.770041][T14@C0] kthread+0x170/0x1d4 [ 309.773938][T14@C0] ret_from_fork+0x10/0x20 [ 309.778176][T14@C0] [ 309.780345][T14@C0] CPU: 0 PID: 14 Comm: ksoftirqd/0 Tainted: G W O 5.15.74 #1 [ 309.788651][T14@C0] Hardware name: Unisoc UIS7885 Board (DT) [ 309.794276][T14@C0] ================================================================== [ 309.802149][T14@C0] irqsoff_warn: C0 T:<14>ksoftirqd/0 D:200.198ms F:309.601950s E:199.878ms [ 309.810555][T14@C0] irqsoff_warn: C0 disabled IRQ at: [ 309.810555][T14@C0] trace_hardirqs_off+0x190/0x1bc [ 309.810555][T14@C0] _raw_spin_lock_irqsave+0x98/0xc8 [ 309.810555][T14@C0] kfence_handle_page_fault+0xc4/0x320 [ 309.810555][T14@C0] __do_kernel_fault+0x1a0/0x2f4 [ 309.810555][T14@C0] do_bad_area+0x40/0x100 [ 309.839200][T14@C0] irqsoff_warn: C0 enabled IRQ at: [ 309.839200][T14@C0] trace_hardirqs_on+0x19c/0x1c8 [ 309.839200][T14@C0] _raw_spin_unlock_irqrestore+0x38/0x70 [ 309.839200][T14@C0] kfence_handle_page_fault+0x2a8/0x320 [ 309.839200][T14@C0] __do_kernel_fault+0x1a0/0x2f4 [ 309.839200][T14@C0] do_bad_area+0x40/0x100 [ 314.997853][T2080@C0] p->addr = 0x0000000013c9adbe, pc = 0xffffffc0081de8f8, pstate = 0x20400005 [ 315.007246][T2080@C0] sprd_serror_debug: panic hook handler [ 315.007298][T2080@C0] Kernel panic - not syncing: CFI failure (target: 0x7fb3780000) [ 315.020480][T2080@C0] CPU: 0 PID: 2080 Comm: irq/128-dwc3 Tainted: G B W O 5.15.74 #1 [ 315.029220][T2080@C0] Hardware name: Unisoc UIS7885 Board (DT) [ 315.035018][T2080@C0] Call trace: [ 315.038305][T2080@C0] dump_backtrace.cfi_jt+0x0/0x8 [ 315.043236][T2080@C0] show_stack+0x28/0x38 [ 315.047392][T2080@C0] dump_stack_lvl+0x84/0xcc [ 315.051892][T2080@C0] panic+0x180/0x444 [ 315.055787][T2080@C0] __cfi_slowpath_diag+0x1e4/0x230 [ 315.060894][T2080@C0] rcu_do_batch+0x36c/0x8f4 [ 315.065392][T2080@C0] rcu_core+0x210/0x58c [ 315.069547][T2080@C0] rcu_core_si+0x20/0x30 [ 315.073786][T2080@C0] __do_softirq+0x170/0x5c8 [ 315.078287][T2080@C0] do_softirq+0x78/0xf0 [ 315.082441][T2080@C0] __local_bh_enable_ip+0xec/0x138 [ 315.087544][T2080@C0] local_bh_enable+0x28/0x38 [ 315.092134][T2080@C0] dwc3_thread_interrupt+0x12bc/0x15d0 [ 315.097580][T2080@C0] irq_thread_fn+0x54/0xe4 [ 315.101999][T2080@C0] irq_thread+0x1c8/0x3b8 [ 315.106326][T2080@C0] kthread+0x170/0x1d4 [ 315.110392][T2080@C0] ret_from_fork+0x10/0x20 [ 315.114804][T2080@C0] SMP: stopping secondary CPUs [ 315.119802][ T0@C3] unisoc-dump-info: CPU3: stopping… [ 315.125327][ T0@C2] unisoc-dump-info: CPU2: stopping… [ 315.130842][ T0@C1] unisoc-dump-info: CPU1: stopping… [ 315.136368][ T0@C6] unisoc-dump-info: CPU6: stopping… [ 315.142057][ T0@C5] unisoc-dump-info: CPU5: stopping… [ 315.147740][ T0@C4] unisoc-dump-info: CPU4: stopping… [ 315.153429][ T0@C7] unisoc-dump-info: CPU7: stopping… [ 315.159266][T2080@C0] ddr_cur_freq: 3 [ 315.172415][T2080@C0] sysdump: (sysdump_panic_event) ------ in (0) [ 315.178677][T2080@C0] unisoc-mailbox smsg_senddie mailbox send die smsg [ 315.185210][T2080@C0] unisoc-mailbox smsg_senddie mailbox send die smsg [ 316.191817][T2080@C0] sysdump: [ 316.194858][T2080@C0] sysdump: ***************************************************** [ 316.202560][T2080@C0] sysdump: * * [ 316.210263][T2080@C0] sysdump: * Sysdump enter, preparing debug info to dump … * [ 316.217965][T2080@C0] sysdump: * * [ 316.225666][T2080@C0] sysdump: ***************************************************** [ 316.233367][T2080@C0] sysdump: [ 316.236505][T2080@C0] sysdump: reason: CFI failure (target: 0x7fb3780000), sprd_sysdump_info->crash_key: 0 [ 316.246187][T2080@C0] sysdump: [ 316.249230][T2080@C0] sysdump: ***************************************************** [ 316.256931][T2080@C0] sysdump: * * [ 316.264632][T2080@C0] sysdump: * Preparing debug info done … * [ 316.272335][T2080@C0] sysdump: * * [ 316.280036][T2080@C0] sysdump: ***************************************************** [ 316.287738][T2080@C0] sysdump: [ 317.291051][T2080@C0] Kernel Offset: 0x80000 from 0xffffffc008000000 [ 317.297312][T2080@C0] PHYS_OFFSET: 0x80000000 [ 317.301635][T2080@C0] CPU features: 0x2,00000b83,23300e42 [ 317.307000][T2080@C0] Memory Limit: none 第二个内核崩溃日志 [ 2060.258228][T3311@C0] ------------[ cut here ]------------ [ 2060.263654][T3311@C0] kernel BUG at mm/mmap.c:721! [ 2060.268431][T3311@C0] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP [ 2060.274774][T3311@C0] —Die flow print cache!— [ 2060.279467][T3311@C0] [ 2060.281812][T3311@C0] C0 X0: 0xffffff809453cd18: [ 2060.286423][T3311@C0] C0 cd18 95fbf448 ffffff80 00000003 00000000 9453cd28 f fffff80 9453cd28 ffffff80 [ 2060.295724][T3311@C0] C0 cd38 00000000 00000000 0a526818 ffffffc0 00000001 0 0000000 94363a40 ffffff80 [ 2060.305022][T3311@C0] C0 cd58 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.314323][T3311@C0] C0 cd78 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.323624][T3311@C0] C0 cd98 8a6e0000 0000007f 8a6e8000 0000007f 95410740 f fffff80 93184f68 ffffff80 [ 2060.332925][T3311@C0] C0 cdb8 93184db9 ffffff80 00000000 00000000 93184f88 f fffff80 00000000 00000000 [ 2060.342225][T3311@C0] C0 cdd8 9885e400 ffffff80 00000fc3 00600000 00100073 0 0000000 950c2900 ffffff80 [ 2060.351530][T3311@C0] C0 cdf8 00000000 00000000 00000000 00000000 00000000 0 0000000 947d4810 ffffff80 [ 2060.360828][T3311@C0] [ 2060.363172][T3311@C0] C0 X1: 0xffffff8092fcd278: [ 2060.367784][T3311@C0] C0 d278 00000001 00000002 92fcd230 ffffff80 989d47e0 f fffff80 989d47e0 ffffff80 [ 2060.377084][T3311@C0] C0 d298 747131fc 192c0676 92fcd2a0 ffffff80 00000001 0 0000000 93f90000 ffffff80 [ 2060.386385][T3311@C0] C0 d2b8 00000000 00000000 92fcd2c0 ffffff80 92fcd2c0 f fffff80 00000000 00000000 [ 2060.395684][T3311@C0] C0 d2d8 00000000 00000000 00000000 00000000 00000001 0 0000003 92fcd2a0 ffffff80 [ 2060.404987][T3311@C0] C0 d2f8 947d4860 ffffff80 947d4860 ffffff80 747131fc 8 92d0676 92fcd310 ffffff80 [ 2060.414286][T3311@C0] C0 d318 00000000 00000000 00000000 00000000 00000000 0 0000000 92fcd330 ffffff80 [ 2060.423588][T3311@C0] C0 d338 92fcd330 ffffff80 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.432887][T3311@C0] C0 d358 00000000 00000000 92fcd310 ffffff80 00000000 0 0000000 00000000 00000000 [ 2060.442188][T3311@C0] [ 2060.444532][T3311@C0] C0 X4: 0xffffff8091b9c320: [ 2060.449144][T3311@C0] C0 c320 00000000 00000000 0000000a 00000000 91b9c330 f fffff80 91b9c330 ffffff80 [ 2060.458443][T3311@C0] C0 c340 00000000 00000000 0a526818 ffffffc0 00000000 0 0000000 965d1540 ffffff80 [ 2060.467744][T3311@C0] C0 c360 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.477045][T3311@C0] C0 c380 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.486344][T3311@C0] C0 c3a0 00000000 00000000 8a6e0000 0000007f 00000000 0 0000000 00000000 00000000 [ 2060.495645][T3311@C0] C0 c3c0 93184db9 ffffff80 00000000 00000000 93184f88 f fffff80 00000000 00000000 [ 2060.504947][T3311@C0] C0 c3e0 9885e400 ffffff80 00000fc3 00600000 00100073 0 0000000 950c2900 ffffff80 [ 2060.514247][T3311@C0] C0 c400 00000000 00000000 00000000 00000000 00000000 0 0000000 947d4850 ffffff80 [ 2060.523548][T3311@C0] [ 2060.525893][T3311@C0] C0 X21: 0xffffff808102ce20: [ 2060.530588][T3311@C0] C0 ce20 93a55150 ffffff80 0a526818 ffffffc0 00000023 0 0000000 89da97c0 ffffff80 [ 2060.539890][T3311@C0] C0 ce40 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.549190][T3311@C0] C0 ce60 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.558491][T3311@C0] C0 ce80 8a4c0000 0000007f 8a4ca000 0000007f 8102ded0 f fffff80 91b9dc18 ffffff80 [ 2060.567791][T3311@C0] C0 cea0 97c62cd0 ffffff80 91ebe678 ffffff80 95402020 f fffff80 008c56a8 ffffff01 [ 2060.577094][T3311@C0] C0 cec0 9885e400 ffffff80 00000fc3 00600000 00000071 0 0000000 966d6d08 ffffff80 [ 2060.586394][T3311@C0] C0 cee0 00000000 00000000 00000000 00000000 00000009 0 0000000 8102cef8 ffffff80 [ 2060.595694][T3311@C0] C0 cf00 8102cef8 ffffff80 00000000 00000000 0a526818 f fffffc0 00000000 00000000 [ 2060.604994][T3311@C0] [ 2060.607339][T3311@C0] C0 X23: 0xffffff8092fcd220: [ 2060.612036][T3311@C0] C0 d220 947d4ba0 ffffff80 7471301c a92c0676 92fcd230 f fffff80 00000000 00000000 [ 2060.621335][T3311@C0] C0 d240 00000000 00000000 00000000 00000000 92fcd250 f fffff80 92fcd250 ffffff80 [ 2060.630640][T3311@C0] C0 d260 00000000 00000000 00000000 00000000 00000000 0 0000000 00000001 00000002 [ 2060.639938][T3311@C0] C0 d280 92fcd230 ffffff80 989d47e0 ffffff80 989d47e0 f fffff80 747131fc 192c0676 [ 2060.649241][T3311@C0] C0 d2a0 92fcd2a0 ffffff80 00000001 00000000 93f90000 f fffff80 00000000 00000000 [ 2060.658542][T3311@C0] C0 d2c0 92fcd2c0 ffffff80 92fcd2c0 ffffff80 00000000 0 0000000 00000000 00000000 [ 2060.667839][T3311@C0] C0 d2e0 00000000 00000000 00000001 00000003 92fcd2a0 f fffff80 947d4860 ffffff80 [ 2060.677141][T3311@C0] C0 d300 947d4860 ffffff80 747131fc 892d0676 92fcd310 f fffff80 00000000 00000000 [ 2060.686439][T3311@C0] [ 2060.688786][T3311@C0] C0 X25: 0xffffff809453cd18: [ 2060.693483][T3311@C0] C0 cd18 95fbf448 ffffff80 00000003 00000000 9453cd28 f fffff80 9453cd28 ffffff80 [ 2060.702782][T3311@C0] C0 cd38 00000000 00000000 0a526818 ffffffc0 00000001 0 0000000 94363a40 ffffff80 [ 2060.712085][T3311@C0] C0 cd58 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.721387][T3311@C0] C0 cd78 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.730685][T3311@C0] C0 cd98 8a6e0000 0000007f 8a6e8000 0000007f 95410740 f fffff80 93184f68 ffffff80 [ 2060.739988][T3311@C0] C0 cdb8 93184db9 ffffff80 00000000 00000000 93184f88 f fffff80 00000000 00000000 [ 2060.749288][T3311@C0] C0 cdd8 9885e400 ffffff80 00000fc3 00600000 00100073 0 0000000 950c2900 ffffff80 [ 2060.758590][T3311@C0] C0 cdf8 00000000 00000000 00000000 00000000 00000000 0 0000000 947d4810 ffffff80 [ 2060.767889][T3311@C0] [ 2060.770233][T3311@C0] C0 X26: 0xffffff80954106c0: [ 2060.774932][T3311@C0] C0 06c0 00000000 00000000 00000000 00000000 954106d0 f fffff80 954106d0 ffffff80 [ 2060.784230][T3311@C0] C0 06e0 00000000 00000000 00000000 00000000 07f835a5 0 0000000 00000000 00000000 [ 2060.793533][T3311@C0] C0 0700 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.802831][T3311@C0] C0 0720 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.812133][T3311@C0] C0 0740 8a6f0000 0000007f 8a6f2000 0000007f 954100e8 f fffff80 9453cd98 ffffff80 [ 2060.821433][T3311@C0] C0 0760 91ebe678 ffffff80 95402f88 ffffff80 931842d8 f fffff80 00008000 00000000 [ 2060.830735][T3311@C0] C0 0780 9885e400 ffffff80 00000f82 04600000 00100070 0 0000000 00000000 00000000 [ 2060.840035][T3311@C0] C0 07a0 00000000 00000000 00000000 00000000 00000000 0 0000000 954107b8 ffffff80 [ 2060.849335][T3311@C0] [ 2060.851680][T3311@C0] C0 X27: 0xffffff8091b9c320: [ 2060.856379][T3311@C0] C0 c320 00000000 00000000 0000000a 00000000 91b9c330 f fffff80 91b9c330 ffffff80 [ 2060.865677][T3311@C0] C0 c340 00000000 00000000 0a526818 ffffffc0 00000000 0 0000000 965d1540 ffffff80 [ 2060.874979][T3311@C0] C0 c360 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.884277][T3311@C0] C0 c380 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.893578][T3311@C0] C0 c3a0 00000000 00000000 8a6e0000 0000007f 00000000 0 0000000 00000000 00000000 [ 2060.902880][T3311@C0] C0 c3c0 93184db9 ffffff80 00000000 00000000 93184f88 f fffff80 00000000 00000000 [ 2060.912179][T3311@C0] C0 c3e0 9885e400 ffffff80 00000fc3 00600000 00100073 0 0000000 950c2900 ffffff80 [ 2060.921482][T3311@C0] C0 c400 00000000 00000000 00000000 00000000 00000000 0 0000000 947d4850 ffffff80 [ 2060.930780][T3311@C0] [ 2060.933127][T3311@C0] C0 X28: 0xffffff809453cd90: [ 2060.937822][T3311@C0] C0 cd90 00000000 00000000 8a6e0000 0000007f 8a6e8000 0 000007f 95410740 ffffff80 [ 2060.947123][T3311@C0] C0 cdb0 93184f68 ffffff80 93184db9 ffffff80 00000000 0 0000000 93184f88 ffffff80 [ 2060.956427][T3311@C0] C0 cdd0 00000000 00000000 9885e400 ffffff80 00000fc3 0 0600000 00100073 00000000 [ 2060.965726][T3311@C0] C0 cdf0 950c2900 ffffff80 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.975027][T3311@C0] C0 ce10 947d4810 ffffff80 947d4810 ffffff80 92fcd2a0 f fffff80 00000000 00000000 [ 2060.984326][T3311@C0] C0 ce30 0ff14dc6 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2060.993628][T3311@C0] C0 ce50 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 2061.002929][T3311@C0] C0 ce70 00000000 00000000 00000000 00000000 10680000 0 000007f 106a4000 0000007f [ 2061.012233][T3311@C0] sysdump: dump_die_cb save pregs_die_g ok . [ 2061.018225][T3311@C0] Modules linked in: npu_img_vha(O) sprd_vdsp(O) vpu(O) s prdbt_tty(O) mali_kbase(O) sprd_wlan_combo(O) flash_ic_aw3641(O) chsc5xxx(O) spr d_compr_2stage_dma sprd_dmaengine_pcm snd_soc_sprd_dai snd_soc_sprd_vbc_fe snd_s oc_sprd_vbc_v4 sprd_platform_pcm_routing snd_soc_sprd_tdm snd_soc_sprd_pdm_r2p0 snd_soc_sprd_dummy_codec snd_soc_unisoc_dp_codec snd_soc_sprd_codec_ump9620 snd_ soc_sprd_codec_ump9620_power_dev snd_soc_sprd_codec_ump9620_power snd_soc_sprd_c ard snd_soc_sprd_ocp96011 snd_soc_sprd_pa_aw87390 voice_trigger_irq sprd_cp_dvfs sprd_pmic_wdt sprd_audcp_boot sprd_audcp_dvfs mcdt_hw_r2p0 audio_pipe sprd_apip e sprd_audio_usb_offload audio_dsp_dump audio_sipc audio_mem agdsp_pd [ 2061.080043][T3311@C0] CPU: 0 PID: 3311 Comm: malloc-multi-th Tainted: G W O 5.15.74 #1 [ 2061.089077][T3311@C0] Hardware name: Unisoc UIS7885 Board (DT) [ 2061.094901][T3311@C0] pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS B TYPE=–) [ 2061.102723][T3311@C0] pc : __vma_adjust+0xc44/0xc78 [ 2061.107589][T3311@C0] lr : __vma_adjust+0x260/0xc78 [ 2061.112460][T3311@C0] sp : ffffffc0144d3c10 [ 2061.116630][T3311@C0] x29: ffffffc0144d3c70 x28: ffffff809453ce10 x27: ffffff 8091b9c3a0 [ 2061.124628][T3311@C0] x26: ffffff8095410740 x25: ffffff809453cd98 x24: 000000 0000000000 [ 2061.132625][T3311@C0] x23: ffffff8092fcd2a0 x22: 0000000000000000 x21: ffffff 808102cea0 [ 2061.140620][T3311@C0] x20: 0000000000000000 x19: ffffffc00ac5e000 x18: ffffff c0132f5050 [ 2061.148618][T3311@C0] x17: 0000000000000000 x16: 0000000000000000 x15: 000000 0000000008 [ 2061.156613][T3311@C0] x14: 0000000000000000 x13: 0000000000000004 x12: 000000 0c78d2bef3 [ 2061.164612][T3311@C0] x11: 0000007f8a4c0000 x10: 0000007f8a6e0000 x9 : 000000 0000000000 [ 2061.172611][T3311@C0] x8 : 0000000000000000 x7 : 0000000000000000 x6 : 000000 0000000000 [ 2061.180607][T3311@C0] x5 : 0000000000000000 x4 : ffffff8091b9c3a0 x3 : ffffff c0144d3aa0 [ 2061.188604][T3311@C0] x2 : 000000010006b6fe x1 : ffffff8092fcd2f8 x0 : ffffff 809453cd98 [ 2061.196599][T3311@C0] Call trace: [ 2061.199906][T3311@C0] __vma_adjust+0xc44/0xc78 [ 2061.204424][T3311@C0] __split_vma+0x14c/0x260 [ 2061.208855][T3311@C0] __do_munmap+0x168/0x724 [ 2061.213291][T3311@C0] __vm_munmap.llvm.15742267499309760575+0x94/0x180 [ 2061.219896][T3311@C0] __arm64_sys_munmap+0x50/0x68 [ 2061.224761][T3311@C0] invoke_syscall+0x6c/0x15c [ 2061.229369][T3311@C0] el0_svc_common.llvm.9499517201915720397+0xd4/0x120 [ 2061.236150][T3311@C0] do_el0_svc+0x34/0xac [ 2061.240324][T3311@C0] el0_svc+0x2c/0x94 [ 2061.244235][T3311@C0] el0t_64_sync_handler+0x8c/0xf0 [ 2061.249276][T3311@C0] el0t_64_sync+0x1b4/0x1b8 [ 2061.253801][T3311@C0] Code: 9400281d aa1303ea 35fffe40 17fffd49 (d4210000) [ 2061.260749][T3311@C0] —[ end trace 1949c3d540cc5187 ]— [ 2061.287887][T238@C7] [SPRD_PDBG] #---------PDBG LIGHT SLEEP START---------# [ 2061.288611][T3311@C0] p->addr = 0x00000000d7c1766e, pc = 0xffffffc008 1de8f8, pstate = 0x604003c5 [ 2061.294790][T238@C7] [SPRD_PDBG] [SLP_STATE] deep: 0xfffffffffffffecc, light: 0xffffffffffffff20 [ 2061.304250][T3311@C0] sprd_serror_debug: panic hook handler [ 2061.304258][T3311@C0] Kernel panic - not syncing: Oops - BUG: Fatal exception [ 2061.304261][T3311@C0] SMP: stopping secondary CPUs [ 2061.304461][T238@C7] unisoc-dump-info: CPU7: stopping… [ 2061.304900][ T0@C1] unisoc-dump-info: CPU1: stopping… [ 2061.305319][ T0@C6] unisoc-dump-info: CPU6: stopping… [ 2061.305892][ T0@C2] unisoc-dump-info: CPU2: stopping… [ 2061.306313][ T0@C3] unisoc-dump-info: CPU3: stopping… [ 2061.306732][ T0@C5] unisoc-dump-info: CPU5: stopping… [ 2061.307305][ T0@C4] unisoc-dump-info: CPU4: stopping… [ 2061.307871][T3311@C0] ddr_cur_freq: 1 [ 2061.318118][T3311@C0] sysdump: (sysdump_panic_event) ------ in (0) [ 2061.318303][T3311@C0] unisoc-mailbox smsg_senddie mailbox send die smsg [ 2061.318315][T3311@C0] unisoc-mailbox smsg_senddie mailbox send die smsg [ 2062.318360][T3311@C0] sysdump: [ 2062.318362][T3311@C0] sysdump: ********************************************** ******* [ 2062.318365][T3311@C0] sysdump: * * [ 2062.318367][T3311@C0] sysdump: * Sysdump enter, preparing debug info to dump … * [ 2062.318369][T3311@C0] sysdump: * * [ 2062.318372][T3311@C0] sysdump: ********************************************** ******* [ 2062.318373][T3311@C0] sysdump: [ 2062.318392][T3311@C0] sysdump: reason: Oops - BUG: Fatal exception, sprd_sysd ump_info->crash_key: 0 [ 2062.318523][T3311@C0] sysdump: [ 2062.318527][T3311@C0] sysdump: ********************************************** ******* [ 2062.318528][T3311@C0] sysdump: * * [ 2062.318530][T3311@C0] sysdump: * Preparing debug info done … * [ 2062.318532][T3311@C0] sysdump: * * [ 2062.318535][T3311@C0] sysdump: ********************************************** ******* [ 2062.318536][T3311@C0] sysdump: [ 2063.318737][T3311@C0] Kernel Offset: 0x80000 from 0xffffffc008000000 [ 2063.318747][T3311@C0] PHYS_OFFSET: 0x80000000 [ 2063.318749][T3311@C0] CPU features: 0x2,00000b83,23300e42 [ 2063.318756][T3311@C0] Memory Limit: none static void __insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma) { struct vm_area_struct *prev; struct rb_node **rb_link, *rb_parent; if (find_vma_links(mm, vma->vm_start, vma->vm_end, &prev, &rb_link, &rb_parent)) BUG(); __vma_link(mm, vma, prev, rb_link, rb_parent); mm->map_count++; } mmap.c 721代码如上 BUG();,如何修复这个问题 第3个内核崩溃 [ 102.427572][T14@C0] refcount_t: underflow; use-after-free. [ 102.433062][T14@C0] WARNING: CPU: 0 PID: 14 at lib/refcount.c:28 refcount_war n_saturate+0x110/0x154 [ 102.442008][T14@C0] Modules linked in: npu_img_vha(O) sprd_vdsp(O) vpu(O) spr dbt_tty(O) mali_kbase(O) sprd_wlan_combo(O) flash_ic_aw3641(O) chsc5xxx(O) sprd_ compr_2stage_dma sprd_dmaengine_pcm snd_soc_sprd_dai snd_soc_sprd_vbc_fe snd_soc _sprd_vbc_v4 sprd_platform_pcm_routing snd_soc_sprd_tdm snd_soc_sprd_pdm_r2p0 sn d_soc_sprd_dummy_codec snd_soc_unisoc_dp_codec snd_soc_sprd_codec_ump9620 snd_so c_sprd_codec_ump9620_power_dev snd_soc_sprd_codec_ump9620_power snd_soc_sprd_car d snd_soc_sprd_ocp96011 snd_soc_sprd_pa_aw87390 voice_trigger_irq sprd_cp_dvfs s prd_pmic_wdt sprd_audcp_boot sprd_audcp_dvfs mcdt_hw_r2p0 audio_pipe sprd_apipe sprd_audio_usb_offload audio_dsp_dump audio_sipc audio_mem agdsp_pd [ 102.503378][T14@C0] CPU: 0 PID: 14 Comm: ksoftirqd/0 Tainted: G W O 5.15.74 #1 [ 102.511681][T14@C0] Hardware name: Unisoc UIS7885 Board (DT) [ 102.517307][T14@C0] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTY PE=--) [ 102.524921][T14@C0] pc : refcount_warn_saturate+0x110/0x154 [ 102.530460][T14@C0] lr : refcount_warn_saturate+0x110/0x154 [ 102.535998][T14@C0] sp : ffffffc00b0bbc00 [ 102.539982][T14@C0] x29: ffffffc00b0bbc00 x28: ffffff8080352abc x27: 00000000 00000000 [ 102.547768][T14@C0] x26: ffffff8080352610 x25: ffffffc00ac37000 x24: ffffffc0 098541b0 [ 102.555557][T14@C0] x23: ffffff8080352600 x22: 0000000000000006 x21: 00000000 0000000a [ 102.563344][T14@C0] x20: ffffff817cf03dc0 x19: ffffff808bc0a658 x18: ffffffc0 0b08d048 [ 102.571132][T14@C0] x17: ffffffffffffffff x16: 0000000000000004 x15: 00000000 00000004 [ 102.578924][T14@C0] x14: 000000000000074a x13: ffffffc00abda7b0 x12: 00000000 00000003 [ 102.586709][T14@C0] x11: 000000010000574a x10: 0000000000000101 x9 : 0b06cdfe fb609000 [ 102.594498][T14@C0] x8 : 0b06cdfefb609000 x7 : 545b5d3237353732 x6 : 342e3230 3120205b [ 102.602290][T14@C0] x5 : ffffffc00aef35b4 x4 : ffffffc00b0bb9b7 x3 : 00000000 00000000 [ 102.610076][T14@C0] x2 : 0000000000000000 x1 : ffffffc00b0bb9a0 x0 : 00000000 00000026 [ 102.617865][T14@C0] Call trace: [ 102.620981][T14@C0] refcount_warn_saturate+0x110/0x154 [ 102.626174][T14@C0] __vm_area_free+0xbc/0xe0 [ 102.630498][T14@C0] rcu_do_batch+0x2ac/0x8f4 [ 102.634826][T14@C0] rcu_core+0x210/0x58c [ 102.638806][T14@C0] rcu_core_si+0x20/0x30 [ 102.642875][T14@C0] __do_softirq+0x170/0x5c8 [ 102.647203][T14@C0] run_ksoftirqd+0x50/0xac [ 102.651442][T14@C0] smpboot_thread_fn+0x2d4/0x3d8 [ 102.656202][T14@C0] kthread+0x170/0x1d4 [ 102.660096][T14@C0] ret_from_fork+0x10/0x20 [ 102.664338][T14@C0] ---[ end trace 4990effe52f21971 ]--- [ 102.669634][T14@C0] irqsoff_warn: C0 T:<14>ksoftirqd/0 D:236.601ms F:102.4330 31s E:236.193ms [ 102.678027][T14@C0] irqsoff_warn: C0 disabled IRQ at: [ 102.678027][T14@C0] trace_hardirqs_off_finish+0x22c/0x270 [ 102.678027][T14@C0] arm64_enter_el1_dbg+0x54/0x70 [ 102.678027][T14@C0] el1_dbg+0x2c/0x68 [ 102.678027][T14@C0] el1h_64_sync_handler+0x48/0xa4 [ 102.678027][T14@C0] el1h_64_sync+0x7c/0x80 [ 102.705538][T14@C0] irqsoff_warn: C0 enabled IRQ at: [ 102.705538][T14@C0] trace_hardirqs_on+0x19c/0x1c8 [ 102.705538][T14@C0] exit_to_kernel_mode+0x48/0x5c [ 102.705538][T14@C0] exit_el1_irq_or_nmi+0x18/0x28 [ 102.705538][T14@C0] el1_interrupt+0x54/0x68 [ 102.705538][T14@C0] el1h_64_irq_handler+0x20/0x30 [ 103.157689][T2335@C0] Unable to handle kernel paging request at virtual addre ss ff95d29bb82a9843 [ 103.166489][T2335@C0] Mem abort info: [ 103.170056][T2335@C0] ESR = 0x96000004 [ 103.174117][T2335@C0] EC = 0x25: DABT (current EL), IL = 32 bits [ 103.180298][T2335@C0] SET = 0, FnV = 0 [ 103.184276][T2335@C0] EA = 0, S1PTW = 0 [ 103.188287][T2335@C0] FSC = 0x04: level 0 translation fault [ 103.194013][T2335@C0] Data abort info: [ 103.197724][T2335@C0] ISV = 0, ISS = 0x00000004 [ 103.202388][T2335@C0] CM = 0, WnR = 0 [ 103.206187][T2335@C0] [ff95d29bb82a9843] address between user and kernel addr ess ranges [ 103.214172][T2335@C0] Internal error: Oops: 96000004 [#1] PREEMPT SMP [ 103.220514][T2335@C0] ---Die flow print cache!--- [ 103.225185][T2335@C0] [ 103.227520][T2335@C0] C0 X0: 0xffffff8080005c00: [ 103.232113][T2335@C0] C0 5c00 801e0d80 ffffff80 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.241368][T2335@C0] C0 5c20 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.250628][T2335@C0] C0 5c40 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.259888][T2335@C0] C0 5c60 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.269148][T2335@C0] C0 5c80 0ab6bac0 ffffffc0 44040000 00000000 00000005 0 0000000 000000e8 000000e8 [ 103.278407][T2335@C0] C0 5ca0 1a7b9612 00000701 00000070 0000001e 00010023 0 0010023 00000011 00040000 [ 103.287668][T2335@C0] C0 5cc0 00000001 00000000 00000000 00000000 000000e8 0 0000008 00000000 00000000 [ 103.296927][T2335@C0] C0 5ce0 0a41d0d1 ffffffc0 80005b68 ffffff80 80005e68 f fffff80 0a41d0d1 ffffffc0 [ 103.306184][T2335@C0] [ 103.308519][T2335@C0] C0 X10: 0xffffff808bfb9290: [ 103.313197][T2335@C0] C0 9290 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.322454][T2335@C0] C0 92b0 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.331716][T2335@C0] C0 92d0 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.340975][T2335@C0] C0 92f0 00000000 00000000 00000000 00000000 00000008 0 0000000 82917000 00000000 [ 103.350235][T2335@C0] C0 9310 00000001 00000001 1388d000 ffffffc0 1388d0d8 f fffffc0 00000000 00000000 [ 103.359494][T2335@C0] C0 9330 13be8000 ffffffc0 00000001 00400040 00000000 0 0000001 00000000 00000000 [ 103.368753][T2335@C0] C0 9350 00000030 00000000 00000000 00000009 ffff3fc7 0 0000000 94d62600 ffffff80 [ 103.378012][T2335@C0] C0 9370 00000001 00000000 00000001 00000078 00000078 0 0000078 00000000 00000000 [ 103.387272][T2335@C0] [ 103.389606][T2335@C0] C0 X20: 0xffffff8080005c00: [ 103.394283][T2335@C0] C0 5c00 801e0d80 ffffff80 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.403541][T2335@C0] C0 5c20 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.412800][T2335@C0] C0 5c40 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.422060][T2335@C0] C0 5c60 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.431323][T2335@C0] C0 5c80 0ab6bac0 ffffffc0 44040000 00000000 00000005 0 0000000 000000e8 000000e8 [ 103.440581][T2335@C0] C0 5ca0 1a7b9612 00000701 00000070 0000001e 00010023 0 0010023 00000011 00040000 [ 103.449839][T2335@C0] C0 5cc0 00000001 00000000 00000000 00000000 000000e8 0 0000008 00000000 00000000 [ 103.459099][T2335@C0] C0 5ce0 0a41d0d1 ffffffc0 80005b68 ffffff80 80005e68 f fffff80 0a41d0d1 ffffffc0 [ 103.468357][T2335@C0] [ 103.470692][T2335@C0] C0 X25: 0xffffff808829f0e8: [ 103.475370][T2335@C0] C0 f0e8 00000000 00000000 94a58dc0 ffffff80 00000000 0 0000000 00000000 00000000 [ 103.484628][T2335@C0] C0 f108 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.493887][T2335@C0] C0 f128 00000000 00000000 00000000 00000000 9e6f0000 0 000007f 9e700000 0000007f [ 103.503149][T2335@C0] C0 f148 923f81d0 ffffff80 8f6f6e80 ffffff80 8f6f6ea1 f fffff80 00000000 00000000 [ 103.512409][T2335@C0] C0 f168 00000000 00000000 0001f000 00000000 8a438000 f fffff80 00000fc3 00600000 [ 103.521669][T2335@C0] C0 f188 00100073 00000000 93c51f80 ffffff80 00000000 0 0000000 00000000 00000000 [ 103.530926][T2335@C0] C0 f1a8 00000000 00000000 93c6a5d0 ffffff80 93c6a5d0 f fffff80 978660e0 ffffff80 [ 103.540188][T2335@C0] C0 f1c8 00000000 00000000 07f9e6f0 00000000 00000000 0 0000000 00000000 00000000 [ 103.549444][T2335@C0] [ 103.551778][T2335@C0] C0 X26: 0xffffff808829f0d8: [ 103.556454][T2335@C0] C0 f0d8 00000000 00000000 0a526818 ffffffc0 00000000 0 0000000 94a58dc0 ffffff80 [ 103.565715][T2335@C0] C0 f0f8 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.574974][T2335@C0] C0 f118 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.584235][T2335@C0] C0 f138 9e6f0000 0000007f 9e700000 0000007f 923f81d0 f fffff80 8f6f6e80 ffffff80 [ 103.593492][T2335@C0] C0 f158 8f6f6ea1 ffffff80 00000000 00000000 00000000 0 0000000 0001f000 00000000 [ 103.602754][T2335@C0] C0 f178 8a438000 ffffff80 00000fc3 00600000 00100073 0 0000000 93c51f80 ffffff80 [ 103.612011][T2335@C0] C0 f198 00000000 00000000 00000000 00000000 00000000 0 0000000 93c6a5d0 ffffff80 [ 103.621271][T2335@C0] C0 f1b8 93c6a5d0 ffffff80 978660e0 ffffff80 00000000 0 0000000 07f9e6f0 00000000 [ 103.630531][T2335@C0] [ 103.632865][T2335@C0] C0 X28: 0xffffff808bfb9280: [ 103.637540][T2335@C0] C0 9280 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.646800][T2335@C0] C0 92a0 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.656061][T2335@C0] C0 92c0 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.665320][T2335@C0] C0 92e0 00000000 00000000 00000000 00000000 00000000 0 0000000 00000000 00000000 [ 103.674580][T2335@C0] C0 9300 00000008 00000000 82917000 00000000 00000001 0 0000001 1388d000 ffffffc0 [ 103.683840][T2335@C0] C0 9320 1388d0d8 ffffffc0 00000000 00000000 13be8000 f fffffc0 00000001 00400040 [ 103.693101][T2335@C0] C0 9340 00000000 00000001 00000000 00000000 00000030 0 0000000 00000000 00000009 [ 103.702359][T2335@C0] C0 9360 ffff3fc7 00000000 94d62600 ffffff80 00000001 0 0000000 00000001 00000078 [ 103.711621][T2335@C0] sysdump: dump_die_cb save pregs_die_g ok . [ 103.717589][T2335@C0] Modules linked in: npu_img_vha(O) sprd_vdsp(O) vpu(O) s prdbt_tty(O) mali_kbase(O) sprd_wlan_combo(O) flash_ic_aw3641(O) chsc5xxx(O) spr d_compr_2stage_dma sprd_dmaengine_pcm snd_soc_sprd_dai snd_soc_sprd_vbc_fe snd_s oc_sprd_vbc_v4 sprd_platform_pcm_routing snd_soc_sprd_tdm snd_soc_sprd_pdm_r2p0 snd_soc_sprd_dummy_codec snd_soc_unisoc_dp_codec snd_soc_sprd_codec_ump9620 snd_ soc_sprd_codec_ump9620_power_dev snd_soc_sprd_codec_ump9620_power snd_soc_sprd_c ard snd_soc_sprd_ocp96011 snd_soc_sprd_pa_aw87390 voice_trigger_irq sprd_cp_dvfs sprd_pmic_wdt sprd_audcp_boot sprd_audcp_dvfs mcdt_hw_r2p0 audio_pipe sprd_apip e sprd_audio_usb_offload audio_dsp_dump audio_sipc audio_mem agdsp_pd [ 103.779131][T2335@C0] CPU: 0 PID: 2335 Comm: malloc-multi-th Tainted: G W O 5.15.74 #1 [ 103.788124][T2335@C0] Hardware name: Unisoc UIS7885 Board (DT) [ 103.793924][T2335@C0] pstate: a0400005 (NzCv daif +PAN -UAO -TCO -DIT -SSBS B TYPE=--) [ 103.801712][T2335@C0] pc : kmem_cache_alloc+0x128/0x3dc [ 103.806904][T2335@C0] lr : vm_area_alloc+0x34/0xac [ 103.811664][T2335@C0] sp : ffffffc013bebb60 [ 103.815818][T2335@C0] x29: ffffffc013bebb70 x28: ffffff808bfb9300 x27: ffffff c00aec4000 [ 103.823780][T2335@C0] x26: ffffff808829f158 x25: ffffff808829f168 x24: ec95d2 9bb82a97d3 [ 103.831741][T2335@C0] x23: ffffffc0081d7e6c x22: 0000000000000000 x21: ffffff c0081d7e6c [ 103.839702][T2335@C0] x20: ffffff8080005c80 x19: 0000000000000cc0 x18: ffffff c01388d060 [ 103.847663][T2335@C0] x17: 0000000000000000 x16: ffffffc009828428 x15: ffffff c00a871000 [ 103.855629][T2335@C0] x14: 0000000000000001 x13: 0000000000000004 x12: ac2a12 1038d5682c [ 103.863587][T2335@C0] x11: 000000009fdd27de x10: ffffff808bfb9310 x9 : ff95d2 9bb82a9843 [ 103.871549][T2335@C0] x8 : 00000000006087c0 x7 : 0000000007f9e6e9 x6 : 000000 0000000000 [ 103.879511][T2335@C0] x5 : 0000000000000000 x4 : 0000000007f9e6f0 x3 : 000000 00006087e0 [ 103.887472][T2335@C0] x2 : 0000000000000000 x1 : 0000000000000cc0 x0 : ffffff 8080005c80 [ 103.895435][T2335@C0] Call trace: [ 103.898722][T2335@C0] kmem_cache_alloc+0x128/0x3dc [ 103.903569][T2335@C0] vm_area_alloc+0x34/0xac [ 103.907981][T2335@C0] mmap_region+0x268/0x728 [ 103.912394][T2335@C0] do_mmap+0x3d4/0x540 [ 103.916462][T2335@C0] vm_mmap_pgoff+0xd0/0x234 [ 103.920962][T2335@C0] ksys_mmap_pgoff+0xbc/0x108 [ 103.925634][T2335@C0] __arm64_sys_mmap+0x44/0x54 [ 103.930309][T2335@C0] invoke_syscall+0x6c/0x15c [ 103.934897][T2335@C0] el0_svc_common.llvm.9499517201915720397+0xd4/0x120 [ 103.941644][T2335@C0] do_el0_svc+0x34/0xac [ 103.945800][T2335@C0] el0_svc+0x2c/0x94 [ 103.949694][T2335@C0] el0t_64_sync_handler+0x8c/0xf0 [ 103.954712][T2335@C0] el0t_64_sync+0x1b4/0x1b8 [ 103.959217][T2335@C0] Code: f9406e8c 91008103 8b8a2129 9100438a (f940012b) [ 103.966137][T2335@C0] ---[ end trace 4990effe52f21972 ]--- [ 103.990260][T2335@C0] <panic> p->addr = 0x0000000094d0f85d, pc = 0xffffffc008 1de8f8, pstate = 0x604000c5 [ 103.999625][T2335@C0] sprd_serror_debug: panic hook handler [ 103.999632][T2335@C0] Kernel panic - not syncing: Oops: Fatal exception [ 104.011742][T2335@C0] SMP: stopping secondary CPUs [ 104.016964][ T0@C2] unisoc-dump-info: CPU2: stopping... [ 104.022517][ T0@C3] unisoc-dump-info: CPU3: stopping... [ 104.028067][ T0@C1] unisoc-dump-info: CPU1: stopping... [ 104.033611][ T0@C4] unisoc-dump-info: CPU4: stopping... [ 104.039306][ T0@C6] unisoc-dump-info: CPU6: stopping... [ 104.045004][ T0@C5] unisoc-dump-info: CPU5: stopping... [ 104.050702][ T0@C7] unisoc-dump-info: CPU7: stopping... [ 104.056541][T2335@C0] ddr_cur_freq: 1 [ 104.070830][T2335@C0] sysdump: (sysdump_panic_event) ------ in (0) [ 104.077102][T2335@C0] unisoc-mailbox smsg_senddie mailbox send die smsg [ 104.083639][T2335@C0] unisoc-mailbox smsg_senddie mailbox send die smsg [ 105.090244][T2335@C0] sysdump: [ 105.093284][T2335@C0] sysdump: ********************************************** ******* [ 105.100987][T2335@C0] sysdump: * * [ 105.108689][T2335@C0] sysdump: * Sysdump enter, preparing debug info to dump ... * [ 105.116391][T2335@C0] sysdump: * * [ 105.124093][T2335@C0] sysdump: ********************************************** ******* [ 105.131794][T2335@C0] sysdump: [ 105.134925][T2335@C0] sysdump: reason: Oops: Fatal exception, sprd_sysdump_in fo->crash_key: 0 [ 105.143524][T2335@C0] sysdump: [ 105.146569][T2335@C0] sysdump: ********************************************** ******* [ 105.154270][T2335@C0] sysdump: * * [ 105.161972][T2335@C0] sysdump: * Preparing debug info done ... * [ 105.169672][T2335@C0] sysdump: * * [ 105.177374][T2335@C0] sysdump: ********************************************** ******* [ 105.185077][T2335@C0] sysdump: [ 106.188392][T2335@C0] Kernel Offset: 0x80000 from 0xffffffc008000000 [ 106.194662][T2335@C0] PHYS_OFFSET: 0x80000000 [ 106.198981][T2335@C0] CPU features: 0x2,00000b83,23300e42 [ 106.204349][T2335@C0] Memory Limit: none
07-04
package service import ( "fmt" "log" "os" "regexp" "sort" "github.com/tidwall/gjson" "github.com/tidwall/sjson" ) // JSONProcessor 处理 JSON 数据的工具类 type JSONProcessor struct { jsonStr string } // NewJSONProcessor 创建新的 JSON 处理器 func NewJSONProcessor(jsonStr string) *JSONProcessor { return &JSONProcessor{jsonStr: jsonStr} } // RemoveInvalidImage 删除不合规图片及其关联数据 func (jp *JSONProcessor) RemoveInvalidImage(invalidURL string) error { // basePath := "schema.model" // 1. 检查并删除 spec_detail 中的规格值 if err := jp.removeSpecValuesByImage(invalidURL); err != nil { return err } // 2. 删除其他图片字段中的无效图片 fields := []string{"white_background_pic", "main_image_three_to_four", "pic"} for _, field := range fields { if err := jp.removeImageFromField(field, invalidURL); err != nil { return fmt.Errorf("failed to remove from %s: %v", field, err) } } // 3. 从描述中删除图片 if err := jp.removeImageFromDescription(invalidURL); err != nil { return fmt.Errorf("failed to remove from description: %v", err) } return nil } // removeSpecValuesByImage 删除包含指定图片URL的规格值 func (jp *JSONProcessor) removeSpecValuesByImage(invalidURL string) error { basePath := "schema.model" specDetailPath := fmt.Sprintf("%s.spec_detail.value", basePath) result := gjson.Get(jp.jsonStr, specDetailPath) if !result.Exists() { return nil // 没有规格数据,直接返回 } // 收集需要删除的规格值ID var specValueIDs []string result.ForEach(func(_, group gjson.Result) bool { group.Get("spec_values").ForEach(func(_, spec gjson.Result) bool { if imgURL := spec.Get("img_url").String(); imgURL == invalidURL { if id := spec.Get("id").String(); id != "" { specValueIDs = append(specValueIDs, id) } } return true }) return true }) // 删除所有关联的规格值 for _, id := range specValueIDs { if err := jp.RemoveSpecValueByID(id); err != nil { return fmt.Errorf("failed to remove spec value %s: %v", id, err) } } return nil } // removeImageFromField 从指定图片字段中删除无效图片 func (jp *JSONProcessor) removeImageFromField(fieldPath, invalidURL string) error { fullPath := fmt.Sprintf("schema.model.%s.value", fieldPath) result := gjson.Get(jp.jsonStr, fullPath) if !result.Exists() { return nil // 字段不存在,直接返回 } // 收集需要删除的索引 var indicesToDelete []int result.ForEach(func(index gjson.Result, item gjson.Result) bool { if url := item.Get("url").String(); url == invalidURL { indicesToDelete = append(indicesToDelete, int(index.Int())) } return true }) // 从后往前删除(避免索引变化) sort.Sort(sort.Reverse(sort.IntSlice(indicesToDelete))) for _, idx := range indicesToDelete { path := fmt.Sprintf("%s.%d", fullPath, idx) var err error jp.jsonStr, err = sjson.Delete(jp.jsonStr, path) if err != nil { return err } } return nil } // removeImageFromDescription 从描述中删除无效图片 func (jp *JSONProcessor) removeImageFromDescription(invalidURL string) error { descPath := "schema.model.description.value" result := gjson.Get(jp.jsonStr, descPath) if !result.Exists() { return nil // 描述不存在,直接返回 } html := result.String() // 正则表达式匹配包含指定URL的img标签 re := regexp.MustCompile(`<img[^>]+src="` + regexp.QuoteMeta(invalidURL) + `"[^>]*>`) newHTML := re.ReplaceAllString(html, "") // 更新描述 _, err := sjson.Set(jp.jsonStr, descPath, newHTML) return err } // ExtractAllPics 提取所有图片 URL(包括描述中的图片) func (jp *JSONProcessor) ExtractAllPics() []string { // 基础路径 basePath := "schema.model" // 存储所有图片的集合(使用 map 去重) uniquePics := make(map[string]bool) // 1. 处理指定字段的图片 fields := []string{"spec_detail", "white_background_pic", "main_image_three_to_four", "pic"} for _, field := range fields { path := fmt.Sprintf("%s.%s.value", basePath, field) result := gjson.Get(jp.jsonStr, path) if result.Exists() { result.ForEach(func(_, item gjson.Result) bool { // 处理 spec_detail 的特殊结构 if field == "spec_detail" { item.Get("spec_values").ForEach(func(_, spec gjson.Result) bool { if img := spec.Get("img_url"); img.Exists() { uniquePics[img.String()] = true } return true }) } else if url := item.Get("url"); url.Exists() { // 处理其他标准字段 uniquePics[url.String()] = true } return true }) } } // 2. 处理 description 中的图片 descPath := fmt.Sprintf("%s.description.value", basePath) descResult := gjson.Get(jp.jsonStr, descPath) if descResult.Exists() { html := descResult.String() re := regexp.MustCompile(`<img[^>]+src="([^">]+)"`) matches := re.FindAllStringSubmatch(html, -1) for _, match := range matches { if len(match) > 1 && !uniquePics[match[1]] { uniquePics[match[1]] = true } } } // 转换为切片返回 allPics := make([]string, 0, len(uniquePics)) for pic := range uniquePics { allPics = append(allPics, pic) } return allPics } // RemoveSpecValueByID 根据 spec_value ID 删除规格值及其关联的 SKU func (jp *JSONProcessor) RemoveSpecValueByID(specValueID string) error { basePath := "schema.model" // 1. 删除 spec_detail 中的 spec_value specDetailPath := fmt.Sprintf("%s.spec_detail.value", basePath) specDetailResult := gjson.Get(jp.jsonStr, specDetailPath) if !specDetailResult.Exists() { return fmt.Errorf("spec_detail.value does not exist") } specGroups := specDetailResult.Array() // 收集需要删除的索引(组索引和值索引) type deletionPoint struct { groupIndex int valueIndex int } var deletions []deletionPoint // 遍历所有规格组 for groupIdx, group := range specGroups { specValues := group.Get("spec_values").Array() // 遍历组内的规格值 for valueIdx, value := range specValues { if id := value.Get("id").String(); id == specValueID { deletions = append(deletions, deletionPoint{groupIdx, valueIdx}) } } } // 从后往前删除(避免索引变化) sort.Slice(deletions, func(i, j int) bool { if deletions[i].groupIndex == deletions[j].groupIndex { return deletions[i].valueIndex > deletions[j].valueIndex } return deletions[i].groupIndex > deletions[j].groupIndex }) for _, del := range deletions { path := fmt.Sprintf("%s.%d.spec_values.%d", specDetailPath, del.groupIndex, del.valueIndex) var err error jp.jsonStr, err = sjson.Delete(jp.jsonStr, path) if err != nil { return err } } // 2. 删除关联的 SKU skuDetailPath := fmt.Sprintf("%s.sku_detail.value", basePath) skuDetailResult := gjson.Get(jp.jsonStr, skuDetailPath) if !skuDetailResult.Exists() { // 没有 SKU 数据,直接返回 return nil } skus := skuDetailResult.Array() var skuIndicesToDelete []int // 收集需要删除的 SKU 索引 for idx, sku := range skus { specDetailIDs := sku.Get("spec_detail_ids").Array() for _, id := range specDetailIDs { if id.String() == specValueID { skuIndicesToDelete = append(skuIndicesToDelete, idx) break // 找到匹配即跳出 } } } // 从后往前删除 SKU(避免索引变化) sort.Sort(sort.Reverse(sort.IntSlice(skuIndicesToDelete))) for _, idx := range skuIndicesToDelete { path := fmt.Sprintf("%s.%d", skuDetailPath, idx) var err error jp.jsonStr, err = sjson.Delete(jp.jsonStr, path) if err != nil { return err } } return nil } // UpdateSkuPrice 更新 SKU 的价格 func (jp *JSONProcessor) UpdateSkuPrice(skuID, newPrice string) error { path := "schema.model.sku_detail.value" result := gjson.Get(jp.jsonStr, path) if !result.Exists() { return fmt.Errorf("sku_detail.value does not exist") } skuArray := result.Array() for idx, sku := range skuArray { if id := sku.Get("id").String(); id == skuID { fullPath := fmt.Sprintf("%s.%d.price", path, idx) var err error jp.jsonStr, err = sjson.Set(jp.jsonStr, fullPath, newPrice) return err } } return fmt.Errorf("SKU with ID %s not found", skuID) } // UpdateSkuStock 更新 SKU 的库存 func (jp *JSONProcessor) UpdateSkuStock(skuID string, newStock int) error { path := "schema.model.sku_detail.value" result := gjson.Get(jp.jsonStr, path) if !result.Exists() { return fmt.Errorf("sku_detail.value does not exist") } skuArray := result.Array() for idx, sku := range skuArray { if id := sku.Get("id").String(); id == skuID { // 更新 stock_info.stock_num stockPath := fmt.Sprintf("%s.%d.stock_info.stock_num", path, idx) var err error jp.jsonStr, err = sjson.Set(jp.jsonStr, stockPath, newStock) if err != nil { return err } // 更新 self_sell_stock selfStockPath := fmt.Sprintf("%s.%d.self_sell_stock", path, idx) jp.jsonStr, err = sjson.Set(jp.jsonStr, selfStockPath, newStock) return err } } return fmt.Errorf("SKU with ID %s not found", skuID) } // GetField 获取指定字段的值 func (jp *JSONProcessor) GetField(fieldPath string) (gjson.Result, bool) { fullPath := fmt.Sprintf("schema.model.%s", fieldPath) result := gjson.Get(jp.jsonStr, fullPath) return result, result.Exists() } // UpdateField 更新指定字段的值 func (jp *JSONProcessor) UpdateField(fieldPath string, newValue interface{}) error { fullPath := fmt.Sprintf("schema.model.%s", fieldPath) newJSON, err := sjson.Set(jp.jsonStr, fullPath, newValue) if err != nil { return err } jp.jsonStr = newJSON return nil } // DeleteField 删除指定字段 func (jp *JSONProcessor) DeleteField(fieldPath string) error { fullPath := fmt.Sprintf("schema.model.%s", fieldPath) newJSON, err := sjson.Delete(jp.jsonStr, fullPath) if err != nil { return err } jp.jsonStr = newJSON return nil } // AddArrayItem 向数组字段添加新元素 func (jp *JSONProcessor) AddArrayItem(fieldPath string, newItem interface{}) error { // 检查数组字段是否存在 basePath := fmt.Sprintf("schema.model.%s.value", fieldPath) result := gjson.Get(jp.jsonStr, basePath) // 如果数组不存在,先创建空数组 if !result.Exists() { var err error jp.jsonStr, err = sjson.Set(jp.jsonStr, basePath, []interface{}{}) if err != nil { return fmt.Errorf("failed to create array field: %v", err) } } // 添加新元素到数组末尾 fullPath := fmt.Sprintf("%s.-1", basePath) newJSON, err := sjson.Set(jp.jsonStr, fullPath, newItem) if err != nil { return fmt.Errorf("failed to add array item: %v", err) } jp.jsonStr = newJSON return nil } // RemoveArrayItem 从数组中删除指定索引的元素 func (jp *JSONProcessor) RemoveArrayItem(fieldPath string, index int) error { basePath := fmt.Sprintf("schema.model.%s.value", fieldPath) result := gjson.Get(jp.jsonStr, basePath) if !result.Exists() { return fmt.Errorf("array field does not exist") } // 检查索引是否有效 array := result.Array() if index < 0 || index >= len(array) { return fmt.Errorf("index %d out of range [0, %d]", index, len(array)-1) } fullPath := fmt.Sprintf("%s.%d", basePath, index) newJSON, err := sjson.Delete(jp.jsonStr, fullPath) if err != nil { return err } jp.jsonStr = newJSON return nil } // GetJSON 获取当前处理后的 JSON func (jp *JSONProcessor) GetJSON() string { return jp.jsonStr } // TestFunc 测试函数 func TestFunc() { content, err := os.ReadFile("asyncCheckPost.json") if err != nil { log.Printf("读取过滤文件失败: %v", err) return } processor := NewJSONProcessor(string(content)) // 提取所有图片 allPics := processor.ExtractAllPics() fmt.Printf("提取到 %d 张图片\n", len(allPics)) // 假设我们检测到第二张图片不合规 if len(allPics) > 1 { invalidURL := "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a469f301b9c195b6b833240f9adc1ffc_sx_36996_www790-314" fmt.Printf("检测到不合规图片: %s\n", invalidURL) // 删除不合规图片及其关联数据 if err := processor.RemoveInvalidImage(invalidURL); err != nil { fmt.Println("删除不合规图片失败:", err) } else { fmt.Println("成功删除不合规图片及其关联数据") // 验证删除后图片数量 newPics := processor.ExtractAllPics() fmt.Printf("删除后剩余图片: %d 张\n", len(newPics)) // 检查是否不再包含不合规图片 for _, url := range newPics { if url == invalidURL { fmt.Println("错误: 不合规图片仍然存在!") break } } } } // 1. 删除规格值及其关联的 SKU specValueID := "1839581026529404" // 小号钢架尺30米的 ID if err := processor.RemoveSpecValueByID(specValueID); err != nil { fmt.Println("删除规格值失败:", err) } else { fmt.Println("成功删除规格值及其关联SKU") } // 2. 更新 SKU 价格和库存 skuID := "3527608283404802" // 第一个 SKU 的 ID newPrice := "99.99" newStock := 3000 if err := processor.UpdateSkuPrice(skuID, newPrice); err != nil { fmt.Println("更新价格失败:", err) } else { fmt.Println("成功更新SKU价格") } if err := processor.UpdateSkuStock(skuID, newStock); err != nil { fmt.Println("更新库存失败:", err) } else { fmt.Println("成功更新SKU库存") } // 3. 测试数组操作 // 向不存在的数组添加元素 if err := processor.AddArrayItem("new_field", map[string]string{"test": "value"}); err != nil { fmt.Println("添加数组项失败:", err) } else { fmt.Println("成功添加数组项到新字段") } // 尝试删除不存在的数组项 if err := processor.RemoveArrayItem("non_existent_field", 0); err != nil { fmt.Println("删除数组项失败(预期):", err) } else { fmt.Println("意外成功删除不存在的数组项") } // 尝试越界删除 if err := processor.RemoveArrayItem("pic", 100); err != nil { fmt.Println("删除数组项失败(预期):", err) } else { fmt.Println("意外成功删除越界数组项") } // 获取最终 JSON // finalJSON := processor.GetJSON() // fmt.Println(finalJSON) } 这段代码是修改后的代码,要处理的json数据为:{"schema":{"model":{"sku_detail":{"value":[{"brand_country":null,"cargo_related_cmpu":null,"cb_wares_info":null,"customs_report_info":null,"id":"3527608283404802","price":"70.8","reserved_stock_info":{"channel_stock_detail":[],"channel_stock_num":null,"promotion_stock_num":null},"self_sell_stock":5000,"shop_warehouse":null,"sku_delivery_delay_day":"","sku_id":"3527608283404802","sku_status":true,"source_country":null,"source_product":null,"spec_detail_ids":["1839581026529356"],"stock_info":{"stock_inc_num":0,"stock_num":5000,"use_cargo_stock":false},"supplier_id":""},{"brand_country":null,"cargo_related_cmpu":null,"cb_wares_info":null,"customs_report_info":null,"id":"3527608283405058","price":"97.8","reserved_stock_info":{"channel_stock_detail":[],"channel_stock_num":null,"promotion_stock_num":null},"self_sell_stock":5000,"shop_warehouse":null,"sku_delivery_delay_day":"","sku_id":"3527608283405058","sku_status":true,"source_country":null,"source_product":null,"spec_detail_ids":["1839581026529372"],"stock_info":{"stock_inc_num":0,"stock_num":5000,"use_cargo_stock":false},"supplier_id":""},{"brand_country":null,"cargo_related_cmpu":null,"cb_wares_info":null,"customs_report_info":null,"id":"3527608283405314","price":"127.8","reserved_stock_info":{"channel_stock_detail":[],"channel_stock_num":null,"promotion_stock_num":null},"self_sell_stock":5000,"shop_warehouse":null,"sku_delivery_delay_day":"","sku_id":"3527608283405314","sku_status":true,"source_country":null,"source_product":null,"spec_detail_ids":["1839581026529388"],"stock_info":{"stock_inc_num":0,"stock_num":5000,"use_cargo_stock":false},"supplier_id":""},{"brand_country":null,"cargo_related_cmpu":null,"cb_wares_info":null,"customs_report_info":null,"id":"3527608283405570","price":"41.7","reserved_stock_info":{"channel_stock_detail":[],"channel_stock_num":null,"promotion_stock_num":null},"self_sell_stock":5000,"shop_warehouse":null,"sku_delivery_delay_day":"","sku_id":"3527608283405570","sku_status":true,"source_country":null,"source_product":null,"spec_detail_ids":["1839581026529404"],"stock_info":{"stock_inc_num":0,"stock_num":5000,"use_cargo_stock":false},"supplier_id":""},{"brand_country":null,"cargo_related_cmpu":null,"cb_wares_info":null,"customs_report_info":null,"id":"3527608283405826","price":"53.7","reserved_stock_info":{"channel_stock_detail":[],"channel_stock_num":null,"promotion_stock_num":null},"self_sell_stock":5000,"shop_warehouse":null,"sku_delivery_delay_day":"","sku_id":"3527608283405826","sku_status":true,"source_country":null,"source_product":null,"spec_detail_ids":["1839581026596876"],"stock_info":{"stock_inc_num":0,"stock_num":5000,"use_cargo_stock":false},"supplier_id":""}]},"spec_detail":{"value":[{"id":"1839581026528380","name":"颜色","spec_values":[{"id":"1839581026529356","img_url":"https://p9-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_5df95571bacacf922e8c37a3de756431_sx_158437_www800-800","name":"大号钢架尺30米"},{"id":"1839581026529372","img_url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_5df95571bacacf922e8c37a3de756431_sx_158437_www800-800","name":"大号钢架尺50米"},{"id":"1839581026529388","img_url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_5df95571bacacf922e8c37a3de756431_sx_158437_www800-800","name":"大号钢架尺100米"},{"id":"1839581026529404","img_url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_fbe9fe8421903b55ba4d145a2643ed81_sx_126893_www800-800","name":"超小号钢架尺50米"},{"id":"1839581026596876","img_url":"https://p9-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_fbe9fe8421903b55ba4d145a2643ed81_sx_126893_www800-800","name":"小号钢架尺50米"}]},{"is_default":true,"id":"994777959641832039","name":"默认","spec_values":[{"id":"992068055803834573","name":"默认"}]}]},"white_background_pic":{"value":[{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_c8ffb8f0d8743a222b460447af724639_sx_101226_www800-800"}]},"after_sale":{"value":{"quality_problem_return":{"option_id":null,"selected":true},"supply_day_return_selector":{"option_id":"7-5","selected":true}}},"area_stock_switcher":{"value":false},"category_properties":{"value":{"1687":[{"diy_type":0,"measure_info":null,"tags":null,"value_id":"596120136","value_name":"无品牌"}]}},"delivery_delay_day":{"value":"2"},"description":{"value":"<p><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_9af34d3b91dfcda1f1aa02cbd595fed0_sx_402315_www790-1125\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_54ab3b361d68c7bb91d1fdb93e2f9d48_sx_84695_www790-645\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_66e5bc7a2ae789f9880a5329d3236380_sx_472879_www790-1170\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e0f605bb1021b0cc92c805fdd64a537e_sx_357278_www790-1054\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_afd37094560a88654f3abe5b31dab275_sx_309478_www790-1126\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_29350443b0952fdebb41a90bcb8d3e23_sx_257960_www790-949\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_582e010aec902ddfa4e814ac7fdb49e2_sx_74202_www790-347\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_807296a14becfead2f2c15427217fc78_sx_197482_www790-1121\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_ed2c93c7f42ac21027712920c9044af7_sx_85018_www790-358\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_468e4a3ee78512501983183a56adb9d8_sx_192991_www790-850\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_f2b733d2637cf06262e7bbf3179b2f5b_sx_183613_www790-915\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a469f301b9c195b6b833240f9adc1ffc_sx_36996_www790-314\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_d8c57ff3a871af865c5b600b05d2b9dd_sx_129008_www790-747\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_6e3cd37d29b3a2931251cbf2f9a95182_sx_130183_www790-739\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e702d505e493d3a194f9e1d9defc2bd8_sx_125097_www790-759\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a4e66d51475bb4427acfc96b1b427354_sx_123603_www790-754\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_862268da94f1d404cf17a9f563da1616_sx_215538_www750-779\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_7aaf5ee245ebf2251b89edb26698405d_sx_179597_www750-547\" style=\"max-width:100%;\"/><img src=\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_1a5719c6d9fd72751e90050d293e0628_sx_403325_www750-1204\" style=\"max-width:100%;\"/></p>"},"detail_prettify_uri":{"value":"detail_prettify_045e485dda90cf1d41c224daa17d5345_1ujByp"},"freight_id":{"value":"876937218"},"goods_category":{"value":{"category_leaf_id":22672,"first_cid":20013,"first_cname":"五金/工具","fourth_cid":22672,"fourth_cname":"其他测量工具","second_cid":20284,"second_cname":"手动工具","third_cid":38226,"third_cname":"测量工具"}},"interest_free_activity":{"value":[]},"interest_free_activity_id":{"value":{"activity_template_id":"AT202406281206214183151154"}},"interest_free_open":{"value":false},"main_image_three_to_four":{"value":[{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_fc2053327038b10f398e5b773b2ef501_sx_196929_www600-800"},{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_580ec2400c025f3d4162d314af4c9a30_sx_102512_www600-800"},{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_c6f5e4d3d0fda36b9c236761e4efa738_sx_94422_www600-800"},{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_c5b07fbf071f79bcb95446ac0f751f12_sx_109630_www600-800"}]},"pic":{"value":[{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_79b809eafd2cb2785d72d12c8b1c8313_sx_329742_www800-800"},{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_d8e5f02311d394ebe93bdf397b900ecd_sx_142390_www800-800"},{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_fbe9fe8421903b55ba4d145a2643ed81_sx_126893_www800-800"},{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_5df95571bacacf922e8c37a3de756431_sx_158437_www800-800"}]},"pickup_method":{"value":"0"},"presell_type":{"value":"0"},"product_type":{"value":"0"},"qualification":{"value":{}},"reduce_type":{"value":"2"},"short_product_name":{"value":"批发50米不锈钢卷尺"},"start_sale_type":{"value":"1"},"title":{"value":"批发卷尺钢卷尺50米手提式不锈钢架子尺插地尺50m盒尺不锈钢卷尺"},"title_prefix":{"value":""},"title_suffix":{"value":""},"title_use_brand_name":{"value":false}},"context":{"ability":[],"biz_identity":"xiaodian","category_id":"22672","fast_publish_type":"","feature":{"not_first_render":"1","session_data":"{\"stock_incr_mode\":true,\"only_update_stock\":null}"},"gray_components":["is_evaluate_opened","use_gold_price","gold_price_type","white_background_pic","total_buy_num","max_buy_num","min_buy_num","pickup_method","is_auto_charge","start_sale_type","enable_all_channel_product_online","car_vin_code","category_properties","goods_category","interest_free_open","interest_free_activity_id","interest_free_activity","main_image_three_to_four","presell_type","delivery_delay_day","appoint_delivery_switch","appoint_delivery_day","delay_rule_switch","delay_rule_order_time","delay_rule_delivery_day","delay_rule_delivery_date","presell_end_time_switch","presell_end_time","presell_delivery_type","presell_delay","presell_time","spec_detail","use_old_spec","privilege_service","cp_contract_info","contract_interest_subsidy_switch","product_instant_discount_coupon","product_promotion","sale_channel_type","alli_promotion_plan_switch","after_sale","supply_day_return_selector","damaged_order_return","support_authentic_guaranteeV2","support_allergy_returnV2","supply_allergy_return","quality_problem_return","supply_red_ass_return","worry_free_settlement","is_large_product","three_guarantees","fix_duration","extended_duration","mass_auction_rules","gx_freight_id","edu_discount","size_info_template_id","search_strategy_2c","market_price","sku_detail","area_stock_switcher","deposit_is_select","deposit_price","deposit_find_time","is_c2b_switch_on","micro_app_id","dcar_coupon_type","is_hainan_post","is_hainan_pick","freight_id","custom_property","refund_tips","product_desc_text","promotion_goods_coupon_comp","quality_control","title","title_prefix","title_suffix","title_use_brand_name","title_struct","title_switcher","main_pic_video","description","detail_prettify_uri","detail_prettify_info","account_template_id","reduce_type","short_product_name","inner_shop_category","outer_product_id","category_property_prefill","category_property_prefill_spu","category_property_prefill_barcode","item_max_per_order","customs_clear_type","cdf_category","cross_warehouse_id","origin_country_id","source_country_id","brand_country_id","tax_payer","net_weight_qty","nutritional_information","shop_category","product_ingredients","default_process_time","category_property_pic","#notification","long_pic","poi_code_type","poi_coupon_return_methods","poi_total_can_use_count","poi_condition","poi_link","poi_valid_range","poi_service_num","poi_notification","poi_lib_id","poi_financial_settlement_rate","poi_ids","poi_valid_type","poi_valid_days","product_type","qualification","reference_price","reference_price_certificate_type","reference_price_certificate_urls","restricted_purchasing_plan","pic","weight_unit","weight_value","first_charge_verification","return_address","auction_type","common_reject","quality_inspection_info","dcar_coupon_rights"],"model_type":"normal","n_token":"202508051519307564B95E4372C9DA5687","operation_type":"normal","product_id":"3767461092264116344","token":"202508051519297564B95E4372C9DA5687","version":"v1_v8_v9"}},"is_commit":true,"product_prettify_info":[{"front_unique_key":"$instance-id$800ec0d7-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_9af34d3b91dfcda1f1aa02cbd595fed0_sx_402315_www790-1125\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_9af34d3b91dfcda1f1aa02cbd595fed0_sx_402315_www790-1125\",\"width\":790,\"height\":1125},\"$$name$$\":\"图片1\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_9af34d3b91dfcda1f1aa02cbd595fed0_sx_402315_www790-1125\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_9af34d3b91dfcda1f1aa02cbd595fed0_sx_402315_www790-1125","width":790,"height":1125}},{"front_unique_key":"$instance-id$800ec14f-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_54ab3b361d68c7bb91d1fdb93e2f9d48_sx_84695_www790-645\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_54ab3b361d68c7bb91d1fdb93e2f9d48_sx_84695_www790-645\",\"width\":790,\"height\":645},\"$$name$$\":\"图片2\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_54ab3b361d68c7bb91d1fdb93e2f9d48_sx_84695_www790-645\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_54ab3b361d68c7bb91d1fdb93e2f9d48_sx_84695_www790-645","width":790,"height":645}},{"front_unique_key":"$instance-id$800ec169-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_66e5bc7a2ae789f9880a5329d3236380_sx_472879_www790-1170\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_66e5bc7a2ae789f9880a5329d3236380_sx_472879_www790-1170\",\"width\":790,\"height\":1170},\"$$name$$\":\"图片3\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_66e5bc7a2ae789f9880a5329d3236380_sx_472879_www790-1170\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_66e5bc7a2ae789f9880a5329d3236380_sx_472879_www790-1170","width":790,"height":1170}},{"front_unique_key":"$instance-id$800ec185-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e0f605bb1021b0cc92c805fdd64a537e_sx_357278_www790-1054\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e0f605bb1021b0cc92c805fdd64a537e_sx_357278_www790-1054\",\"width\":790,\"height\":1054},\"$$name$$\":\"图片4\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e0f605bb1021b0cc92c805fdd64a537e_sx_357278_www790-1054\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e0f605bb1021b0cc92c805fdd64a537e_sx_357278_www790-1054","width":790,"height":1054}},{"front_unique_key":"$instance-id$800ec199-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_afd37094560a88654f3abe5b31dab275_sx_309478_www790-1126\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_afd37094560a88654f3abe5b31dab275_sx_309478_www790-1126\",\"width\":790,\"height\":1126},\"$$name$$\":\"图片5\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_afd37094560a88654f3abe5b31dab275_sx_309478_www790-1126\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_afd37094560a88654f3abe5b31dab275_sx_309478_www790-1126","width":790,"height":1126}},{"front_unique_key":"$instance-id$800ec1af-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_29350443b0952fdebb41a90bcb8d3e23_sx_257960_www790-949\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_29350443b0952fdebb41a90bcb8d3e23_sx_257960_www790-949\",\"width\":790,\"height\":949},\"$$name$$\":\"图片6\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_29350443b0952fdebb41a90bcb8d3e23_sx_257960_www790-949\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_29350443b0952fdebb41a90bcb8d3e23_sx_257960_www790-949","width":790,"height":949}},{"front_unique_key":"$instance-id$800ec1d8-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_582e010aec902ddfa4e814ac7fdb49e2_sx_74202_www790-347\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_582e010aec902ddfa4e814ac7fdb49e2_sx_74202_www790-347\",\"width\":790,\"height\":347},\"$$name$$\":\"图片7\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_582e010aec902ddfa4e814ac7fdb49e2_sx_74202_www790-347\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_582e010aec902ddfa4e814ac7fdb49e2_sx_74202_www790-347","width":790,"height":347}},{"front_unique_key":"$instance-id$800ec1ef-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_807296a14becfead2f2c15427217fc78_sx_197482_www790-1121\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_807296a14becfead2f2c15427217fc78_sx_197482_www790-1121\",\"width\":790,\"height\":1121},\"$$name$$\":\"图片8\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_807296a14becfead2f2c15427217fc78_sx_197482_www790-1121\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_807296a14becfead2f2c15427217fc78_sx_197482_www790-1121","width":790,"height":1121}},{"front_unique_key":"$instance-id$800ec208-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_ed2c93c7f42ac21027712920c9044af7_sx_85018_www790-358\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_ed2c93c7f42ac21027712920c9044af7_sx_85018_www790-358\",\"width\":790,\"height\":358},\"$$name$$\":\"图片9\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_ed2c93c7f42ac21027712920c9044af7_sx_85018_www790-358\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_ed2c93c7f42ac21027712920c9044af7_sx_85018_www790-358","width":790,"height":358}},{"front_unique_key":"$instance-id$800ec21c-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_468e4a3ee78512501983183a56adb9d8_sx_192991_www790-850\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_468e4a3ee78512501983183a56adb9d8_sx_192991_www790-850\",\"width\":790,\"height\":850},\"$$name$$\":\"图片10\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_468e4a3ee78512501983183a56adb9d8_sx_192991_www790-850\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_468e4a3ee78512501983183a56adb9d8_sx_192991_www790-850","width":790,"height":850}},{"front_unique_key":"$instance-id$800ec232-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_f2b733d2637cf06262e7bbf3179b2f5b_sx_183613_www790-915\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_f2b733d2637cf06262e7bbf3179b2f5b_sx_183613_www790-915\",\"width\":790,\"height\":915},\"$$name$$\":\"图片11\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_f2b733d2637cf06262e7bbf3179b2f5b_sx_183613_www790-915\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_f2b733d2637cf06262e7bbf3179b2f5b_sx_183613_www790-915","width":790,"height":915}},{"front_unique_key":"$instance-id$800ec246-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a469f301b9c195b6b833240f9adc1ffc_sx_36996_www790-314\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a469f301b9c195b6b833240f9adc1ffc_sx_36996_www790-314\",\"width\":790,\"height\":314},\"$$name$$\":\"图片12\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a469f301b9c195b6b833240f9adc1ffc_sx_36996_www790-314\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a469f301b9c195b6b833240f9adc1ffc_sx_36996_www790-314","width":790,"height":314}},{"front_unique_key":"$instance-id$800ec25a-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_d8c57ff3a871af865c5b600b05d2b9dd_sx_129008_www790-747\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_d8c57ff3a871af865c5b600b05d2b9dd_sx_129008_www790-747\",\"width\":790,\"height\":747},\"$$name$$\":\"图片13\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_d8c57ff3a871af865c5b600b05d2b9dd_sx_129008_www790-747\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_d8c57ff3a871af865c5b600b05d2b9dd_sx_129008_www790-747","width":790,"height":747}},{"front_unique_key":"$instance-id$800ec26d-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_6e3cd37d29b3a2931251cbf2f9a95182_sx_130183_www790-739\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_6e3cd37d29b3a2931251cbf2f9a95182_sx_130183_www790-739\",\"width\":790,\"height\":739},\"$$name$$\":\"图片14\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_6e3cd37d29b3a2931251cbf2f9a95182_sx_130183_www790-739\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_6e3cd37d29b3a2931251cbf2f9a95182_sx_130183_www790-739","width":790,"height":739}},{"front_unique_key":"$instance-id$800ec27f-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e702d505e493d3a194f9e1d9defc2bd8_sx_125097_www790-759\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e702d505e493d3a194f9e1d9defc2bd8_sx_125097_www790-759\",\"width\":790,\"height\":759},\"$$name$$\":\"图片15\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e702d505e493d3a194f9e1d9defc2bd8_sx_125097_www790-759\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e702d505e493d3a194f9e1d9defc2bd8_sx_125097_www790-759","width":790,"height":759}},{"front_unique_key":"$instance-id$800ec291-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a4e66d51475bb4427acfc96b1b427354_sx_123603_www790-754\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a4e66d51475bb4427acfc96b1b427354_sx_123603_www790-754\",\"width\":790,\"height\":754},\"$$name$$\":\"图片16\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a4e66d51475bb4427acfc96b1b427354_sx_123603_www790-754\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a4e66d51475bb4427acfc96b1b427354_sx_123603_www790-754","width":790,"height":754}},{"front_unique_key":"$instance-id$800ec2a3-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_862268da94f1d404cf17a9f563da1616_sx_215538_www750-779\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_862268da94f1d404cf17a9f563da1616_sx_215538_www750-779\",\"width\":750,\"height\":779},\"$$name$$\":\"图片17\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_862268da94f1d404cf17a9f563da1616_sx_215538_www750-779\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_862268da94f1d404cf17a9f563da1616_sx_215538_www750-779","width":750,"height":779}},{"front_unique_key":"$instance-id$800ec2c6-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_7aaf5ee245ebf2251b89edb26698405d_sx_179597_www750-547\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_7aaf5ee245ebf2251b89edb26698405d_sx_179597_www750-547\",\"width\":750,\"height\":547},\"$$name$$\":\"图片18\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_7aaf5ee245ebf2251b89edb26698405d_sx_179597_www750-547\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_7aaf5ee245ebf2251b89edb26698405d_sx_179597_www750-547","width":750,"height":547}},{"front_unique_key":"$instance-id$800ec2d8-71a4-11f0-9ced-0a8ccaf43bfc","id":2,"show_plan":null,"component_type_id":2,"component_front_data":"{\"imgList\":[\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_1a5719c6d9fd72751e90050d293e0628_sx_403325_www750-1204\"],\"droppedEventTriggered\":true,\"image\":{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_1a5719c6d9fd72751e90050d293e0628_sx_403325_www750-1204\",\"width\":750,\"height\":1204},\"$$name$$\":\"图片19\"}","component_data":"{\"url\":\"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_1a5719c6d9fd72751e90050d293e0628_sx_403325_www750-1204\"}","image":{"url":"https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_1a5719c6d9fd72751e90050d293e0628_sx_403325_www750-1204","width":750,"height":1204}}],"component_template_info":{"template_type":"size_info","template_name":"","component_front_data":"{\"title\":\"尺码推荐\",\"desc\":\"\",\"tempName\":\"\",\"configTable\":[],\"selectedSpecs\":[],\"headerName\":\"尺码\",\"specOptions\":[],\"selectedSize\":[],\"selectedSizeSpecValMap\":{}}","component_data":"{\"title\":\"尺码推荐\",\"sub_title\":\"\",\"selected_size\":[],\"selected_specs\":[],\"config\":{},\"selected_size_spec_val_map\":{}}","image":null,"is_shareable":true},"appid":1,"__token":"d1bb83f794ebaa920694e15f353f023b","_bid":"ffa_goods","_lid":"073964694622"} 经过测试,removeImageFromDescription并没有删除https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a469f301b9c195b6b833240f9adc1ffc_sx_36996_www790-314 这张图片。请帮我修复这个BUG
08-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值