重现步骤

[步骤]

SELECT * from  sys_autopublishdata  where StrategyId in (
59286,
59287,
59288,
59289,
59290,
59291,
59292,
59293,
59294,
59295,
59296,
59297,
59298,
59299,
59300,
59301,
59303,
59304,
59305,

58750,

59377)


策略ID:58750 指定了248个SKU,只执行了90条 找出其中符合条件的在建指定策略

【策略ID: 59377 无数据执行 指定 系统SKU: 10688829 1402102 15458238 3453784 4079638 4525185 7615635 8405029 9612151 】

[结果]

策略58570:找出其中符合条件的在建指定策略

其它策略,找出执行不出数据的原因

[期望]


历史记录  
  1. 2022-12-15 17:29:38, 由 李乐同 创建。
  2. 2022-12-15 17:30:45, 由 李乐同 编辑。
    修改了 影响环境,旧值为 "627,",新值为 "627"。
    修改了 重现步骤,区别为:
    022- [结果]
    022+
    023- 策略58570:找出其中符合条件的在建指定策略
    023+ [结果]
    024- 其它策略,找出执行不出数据的原因
    024+ 策略58570:找出其中符合条件的在建指定策略
    025- [期望]
    025+ 其它策略,找出执行不出数据的原因
    026-
    026+ [期望]
    027+
    022- <p>[结果]</p>
    022+ <p><img src="{232752.png}" alt="" /></p>
    023- <p>策略58570:找出其中符合条件的在建指定策略</p>
    023+ <p>[结果]</p>
    024- <p>其它策略,找出执行不出数据的原因</p>
    024+ <p>策略58570:找出其中符合条件的在建指定策略</p>
    025- <p>[期望]</p>
    025+ <p>其它策略,找出执行不出数据的原因</p>
    026- <br />
    026+ <p>[期望]</p>
    027+ <br />
  3. 2022-12-15 19:50:56, 由 程伟 指派给 刘朋飞。
    修改了 指派给,旧值为 "chengwei",新值为 "liupengfei"。
  4. 2022-12-15 19:52:03, 由 程伟 指派给 程伟。
    修改了 指派给,旧值为 "liupengfei",新值为 "chengwei"。
  5. 2022-12-19 08:47:20, 由 程伟 指派给 韦思成。
    修改了 指派给,旧值为 "chengwei",新值为 "weisicheng"。
  6. 2022-12-23 11:57:47, 由 韦思成 解决,方案为 非BUG-纯属误判 。
    修改了 解决方案,旧值为 "",新值为 "feiBUG"。
    修改了 解决版本,旧值为 "",新值为 "trunk"。
    修改了 解决日期,旧值为 "",新值为 "2022-12-23 11:54:41"。
    修改了 指派给 ,旧值为 "weisicheng",新值为 "liletong"。
    修改了 Bug状态 ,旧值为 "active",新值为 "resolved"。
    修改了 是否确认,旧值为 "0",新值为 "1"。
    修改了 解决者 ,旧值为 "",新值为 "weisicheng"。

    本次验证策略 59377,

    第一步 查询接口过滤后,只剩下3个符合条件的,查询SQL如下:

    SELECT
        `m`.`CustomerId` AS `CustomerId`,
        `m`.`Sku` AS `Sku`,
        `m`.`CustomSku` AS `CustomSku`,
        `m`.`IsVariant` AS `IsVariant`,
        `m`.`IsMainVariant` AS `IsMainVariant`,
        `m`.`ParentId` AS `ParentId`,
        `m`.`Id` AS `Id`,
        `m`.`LogisticsAttribute` AS `LogisticsAttribute`,
        `m`.`FinalJudgmentStatus` AS `FinalJudgmentStatus`,
        `m`.`FinalJudgmentTime` AS `FinalJudgmentTime`,
        `m`.`AccurateKeywords` AS `AccurateKeywords`,
        `m`.`BrandId` AS `BrandId`,
        `m`.`BrandName` AS `BrandName`,
        `m`.`CartonPcsNum` AS `CartonPcsNum`,
        `m`.`CategoryId` AS `CategoryId`,
        `m`.`CategoryIds` AS `CategoryIds`,
        `m`.`FirstCategoryId` AS `FirstCategoryId`,
        `m`.`Color` AS `Color`,
        `m`.`DeclarationCode` AS `DeclarationCode`,
        `m`.`DeclarationLocalName` AS `DeclarationLocalName`,
        `m`.`DeclarationName` AS `DeclarationName`,
        `m`.`DeclarationPrice` AS `DeclarationPrice`,
        `m`.`DevelopmentType` AS `DevelopmentType`,
        `m`.`EditStatus` AS `EditStatus`,
        `m`.`GrossWeight` AS `GrossWeight`,
        `m`.`GroupSkuId` AS `GroupSkuId`,
        `m`.`Height` AS `Height`,
        `m`.`IsDelete` AS `IsDelete`,
        `m`.`IsGroup` AS `IsGroup`,
        `m`.`RiskInfringement` AS `RiskInfringement`,
        `m`.`Length` AS `Length`,
        `m`.`Material` AS `Material`,
        `m`.`MaxPurchasePrice` AS `MaxPurchasePrice`,
        `m`.`MinPurchasePrice` AS `MinPurchasePrice`,
        `m`.`Name` AS `Name`,
        `m`.`NameEn` AS `NameEn`,
        `m`.`NetWeight` AS `NetWeight`,
        `m`.`PackageHeight` AS `PackageHeight`,
        `m`.`PackageLength` AS `PackageLength`,
        `m`.`PackageWeight` AS `PackageWeight`,
        `m`.`PackageWidth` AS `PackageWidth`,
        `m`.`PurchasePrice` AS `PurchasePrice`,
        `m`.`StrongPlug` AS `StrongPlug`,
        `m`.`StrongPlugItem` AS `StrongPlugItem`,
        `m`.`Size` AS `Size`,
        `m`.`ShoeTightness` AS `ShoeTightness`,
        `m`.`StartBatch` AS `StartBatch`,
        `m`.`State` AS `State`,
        `m`.`SuitableforGender` AS `SuitableforGender`,
        `m`.`SupplyPrice` AS `SupplyPrice`,
        `m`.`Type` AS `Type`,
        `m`.`Width` AS `Width`
    FROM
        (
        SELECT
            `m`.`CustomerId` AS `CustomerId`,
            `m`.`Sku` AS `Sku`,
            `m`.`CustomSku` AS `CustomSku`,
            `m`.`IsVariant` AS `IsVariant`,
            `m`.`IsMainVariant` AS `IsMainVariant`,
            `m`.`ParentId` AS `ParentId`,
            `m`.`Id` AS `Id`,
            `m`.`LogisticsAttribute` AS `LogisticsAttribute`,
            `m`.`FinalJudgmentStatus` AS `FinalJudgmentStatus`,
            `m`.`FinalJudgmentTime` AS `FinalJudgmentTime`,
            `m`.`AccurateKeywords` AS `AccurateKeywords`,
            `m`.`BrandId` AS `BrandId`,
            `m`.`BrandName` AS `BrandName`,
            `m`.`CartonPcsNum` AS `CartonPcsNum`,
            `m`.`CategoryId` AS `CategoryId`,
            `m`.`CategoryIds` AS `CategoryIds`,
            `m`.`FirstCategoryId` AS `FirstCategoryId`,
            `m`.`Color` AS `Color`,
            `m`.`DeclarationCode` AS `DeclarationCode`,
            `m`.`DeclarationLocalName` AS `DeclarationLocalName`,
            `m`.`DeclarationName` AS `DeclarationName`,
            `m`.`DeclarationPrice` AS `DeclarationPrice`,
            `m`.`DevelopmentType` AS `DevelopmentType`,
            `m`.`EditStatus` AS `EditStatus`,
            `m`.`GrossWeight` AS `GrossWeight`,
            `m`.`GroupSkuId` AS `GroupSkuId`,
            `m`.`Height` AS `Height`,
            `m`.`IsDelete` AS `IsDelete`,
            `m`.`IsGroup` AS `IsGroup`,
            `m`.`RiskInfringement` AS `RiskInfringement`,
            `m`.`Length` AS `Length`,
            `m`.`Material` AS `Material`,
            `m`.`MaxPurchasePrice` AS `MaxPurchasePrice`,
            `m`.`MinPurchasePrice` AS `MinPurchasePrice`,
            `m`.`Name` AS `Name`,
            `m`.`NameEn` AS `NameEn`,
            `m`.`NetWeight` AS `NetWeight`,
            `m`.`PackageHeight` AS `PackageHeight`,
            `m`.`PackageLength` AS `PackageLength`,
            `m`.`PackageWeight` AS `PackageWeight`,
            `m`.`PackageWidth` AS `PackageWidth`,
            `m`.`PurchasePrice` AS `PurchasePrice`,
            `m`.`StrongPlug` AS `StrongPlug`,
            `m`.`StrongPlugItem` AS `StrongPlugItem`,
            `m`.`Size` AS `Size`,
            `m`.`ShoeTightness` AS `ShoeTightness`,
            `m`.`StartBatch` AS `StartBatch`,
            `m`.`State` AS `State`,
            `m`.`SuitableforGender` AS `SuitableforGender`,
            `m`.`SupplyPrice` AS `SupplyPrice`,
            `m`.`Type` AS `Type`,
            `m`.`Width` AS `Width`
        FROM
            (
            SELECT
                `m`.`CustomerId` AS `CustomerId`,
                `m`.`Sku` AS `Sku`,
                `m`.`CustomSku` AS `CustomSku`,
                `m`.`IsVariant` AS `IsVariant`,
                `m`.`IsMainVariant` AS `IsMainVariant`,
                `m`.`ParentId` AS `ParentId`,
                `m`.`Id` AS `Id`,
                `m`.`LogisticsAttribute` AS `LogisticsAttribute`,
                `m`.`FinalJudgmentStatus` AS `FinalJudgmentStatus`,
                `m`.`FinalJudgmentTime` AS `FinalJudgmentTime`,
                `m`.`AccurateKeywords` AS `AccurateKeywords`,
                `m`.`BrandId` AS `BrandId`,
                `m`.`BrandName` AS `BrandName`,
                `m`.`CartonPcsNum` AS `CartonPcsNum`,
                `m`.`CategoryId` AS `CategoryId`,
                `m`.`CategoryIds` AS `CategoryIds`,
                `m`.`FirstCategoryId` AS `FirstCategoryId`,
                `m`.`Color` AS `Color`,
                `m`.`DeclarationCode` AS `DeclarationCode`,
                `m`.`DeclarationLocalName` AS `DeclarationLocalName`,
                `m`.`DeclarationName` AS `DeclarationName`,
                `m`.`DeclarationPrice` AS `DeclarationPrice`,
                `m`.`DevelopmentType` AS `DevelopmentType`,
                `m`.`EditStatus` AS `EditStatus`,
                `m`.`GrossWeight` AS `GrossWeight`,
                `m`.`GroupSkuId` AS `GroupSkuId`,
                `m`.`Height` AS `Height`,
                `m`.`IsDelete` AS `IsDelete`,
                `m`.`IsGroup` AS `IsGroup`,
                `m`.`RiskInfringement` AS `RiskInfringement`,
                `m`.`Length` AS `Length`,
                `m`.`Material` AS `Material`,
                `m`.`MaxPurchasePrice` AS `MaxPurchasePrice`,
                `m`.`MinPurchasePrice` AS `MinPurchasePrice`,
                `m`.`Name` AS `Name`,
                `m`.`NameEn` AS `NameEn`,
                `m`.`NetWeight` AS `NetWeight`,
                `m`.`PackageHeight` AS `PackageHeight`,
                `m`.`PackageLength` AS `PackageLength`,
                `m`.`PackageWeight` AS `PackageWeight`,
                `m`.`PackageWidth` AS `PackageWidth`,
                `m`.`PurchasePrice` AS `PurchasePrice`,
                `m`.`StrongPlug` AS `StrongPlug`,
                `m`.`StrongPlugItem` AS `StrongPlugItem`,
                `m`.`Size` AS `Size`,
                `m`.`ShoeTightness` AS `ShoeTightness`,
                `m`.`StartBatch` AS `StartBatch`,
                `m`.`State` AS `State`,
                `m`.`SuitableforGender` AS `SuitableforGender`,
                `m`.`SupplyPrice` AS `SupplyPrice`,
                `m`.`Type` AS `Type`,
                `m`.`Width` AS `Width`
            FROM
                (
                SELECT
                    `CustomerId`,
                    `Sku`,
                    `CustomSku`,
                    `IsVariant`,
                    `IsMainVariant`,
                    `ParentId`,
                    `Name`,
                    `NameEn`,
                    `BrandId`,
                    `BrandName`,
                    `Material`,
                    `FirstCategoryId`,
                    `CategoryId`,
                    `CategoryIds`,
                    `State`,
                    `StartBatch`,
                    `RiskInfringement`,
                    `Type`,
                    `LogisticsAttribute`,
                    `StrongPlug`,
                    `StrongPlugItem`,
                    `PurchasePrice`,
                    `MinPurchasePrice`,
                    `MaxPurchasePrice`,
                    `SupplyPrice`,
                    `Color`,
                    `Size`,
                    `PackageWeight`,
                    `GrossWeight`,
                    `NetWeight`,
                    `Length`,
                    `Width`,
                    `Height`,
                    `PackageLength`,
                    `PackageWidth`,
                    `PackageHeight`,
                    `DevelopmentType`,
                    `FinalJudgmentTime`,
                    `EditStatus`,
                    `DeclarationPrice`,
                    `AccurateKeywords`,
                    `FinalJudgmentStatus`,
                    `DeclarationName`,
                    `DeclarationCode`,
                    `SuitableforGender`,
                    `ShoeTightness`,
                    `CartonPcsNum`,
                    `IsGroup`,
                    `GroupSkuId`,
                    `DeclarationLocalName`,
                    `IsDelete`,
                    `RealSku`,
                    `LastModifierId`,
                    `LastModifier`,
                    `LastModificationTime`,
                    `CreatorId`,
                    `Creator`,
                    `CreationTime`,
                    `Id`
                FROM
                    P_Product FORCE INDEX ( idx_finaljudgmenttime )
                ) m
                LEFT JOIN (
                SELECT
                    `CustomerId` AS `CustomerId`,
                    `Sku` AS `Sku`
                FROM
                    `Ap_AutoPublish_AliExpress_AllSku`
                WHERE
                    ((((
                                    `CustomerId` = 1
                                    )
                                AND ( `MarketId` = 57 ))
                            AND ( `StrategyId` = 59377 ))
                    AND ( `OrderSourceId` = 12607 ))
                    ) s ON ((
                        `m`.`CustomerId` = `s`.`CustomerId`
                    )
                AND ( `m`.`Sku` = `s`.`Sku` ))
            WHERE
                ((((((((((((((((((
                                                                                        NOT ( `m`.`IsDelete` = 1 )
                                                                                        AND ( IFNULL( CAST( `m`.`IsGroup` AS SIGNED ), FALSE ) <> TRUE ))
                                                                                    AND ( `m`.`Id` > 0 ))
                                                                                AND ((
                                                                                        `m`.`CustomerId` = 1
                                                                                        )
                                                                                AND ( `m`.`FinalJudgmentStatus` = 1 )))
                                                                            AND ( `s`.`Sku` IS NULL ))
                                                                        AND ( `m`.`IsMainVariant` = 1 )
                                                                        )
                                                                    AND NOT ( `m`.`IsVariant` = 1 )
                                                                    )
                                                                AND (
                                                                `m`.`State` IN ( 0, 1, 4 ))
                                                                )
                                                            AND (( CASE WHEN ( `m`.`State` = 1 ) THEN `m`.`StartBatch` ELSE 1 END ) >= 1 ))
                                                        AND (( CASE WHEN ( `m`.`State` = 1 ) THEN `m`.`StartBatch` ELSE 2000 END ) <= 2000 ))
                                                    AND (
                                                    `m`.`RiskInfringement` IN ( 1 ))
                                                    )
                                                AND ( `m`.`PackageLength` <= 60 ))
                                            AND ( `m`.`PackageWidth` <= 60 ))
                                        AND ( `m`.`PackageHeight` <= 60 ))
                                    AND ((( `m`.`PackageLength` + `m`.`PackageWidth` ) + `m`.`PackageHeight` ) <= 90 ))
                                AND ((
                                    CASE
                                            
                                            WHEN ( `m`.`PackageWeight` = 0 ) THEN
                                            `m`.`GrossWeight` ELSE `m`.`PackageWeight`
                                        END
                                            ) <=(
                                            10 * 1000
                                        )))
                                AND ((
                                    CASE
                                            
                                            WHEN ((( `m`.`PackageLength` * `m`.`PackageWidth` ) * `m`.`PackageHeight` ) = 0 ) THEN
                                            ((( `m`.`Length` * `m`.`Width` ) * `m`.`Height` ) / 8000 ) ELSE ((( `m`.`PackageLength` * `m`.`PackageWidth` ) * `m`.`PackageHeight` ) / 8000 )
                                        END
                                        ) <= 2
                                    ))
                                AND (((
                                        CASE
                                                
                                                WHEN ((( `m`.`PackageLength` * `m`.`PackageWidth` ) * `m`.`PackageHeight` ) = 0 ) THEN
                                                ((( `m`.`Length` * `m`.`Width` ) * `m`.`Height` ) / 8000 ) ELSE ((( `m`.`PackageLength` * `m`.`PackageWidth` ) * `m`.`PackageHeight` ) / 8000 )
                                            END
                                                ) /(
                                            CASE
                                                    
                                                    WHEN ( `m`.`PackageWeight` = 0 ) THEN
                                                    `m`.`GrossWeight` ELSE `m`.`PackageWeight`
                                                END
                                                )) <= 2
                                            ))
                                    AND (
                                        NOT EXISTS (
                                        SELECT
                                            *
                                        FROM
                                            `P_Product_ProhibitionSaleMarket`
                                        WHERE
                                            ((((
                                                            `CustomerId` = `m`.`CustomerId`
                                                            )
                                                        AND ( `MarketId` = 57 ))
                                                    AND ( `Sku` = `m`.`Sku` ))
                                            AND ( `SiteCodes` IS NULL OR `SiteCodes` = '' ))
                                        )))
                                ) m
                            INNER JOIN ( SELECT CustomerId, Sku FROM Ap_AutoPublish_Strategy_Source_Sku WHERE CustomerId = 1 AND StrategyId = 59377 LIMIT 0, 20000 ) u ON ((
                                    `m`.`CustomerId` = `u`.`CustomerId`
                                    )
                            AND ( `m`.`Sku` = `u`.`Sku` ))
                            ) m
                        INNER JOIN (
                        SELECT
                            `CustomerId`,
                            `ProductId`,
                            `MarketId`,
                            `SiteCode`,
                            `IsVariant`,
                            `Sku`,
                            `CustomSku`,
                            `FirstCategoryId`,
                            `CategoryId`,
                            `CategoryIds`,
                            `CollectionCategoryIds`,
                            `CollectionCategoryNames`,
                            `Title`,
                            `ShortTitle`,
                            `Tags`,
                            `Brand`,
                            `Dangerous`,
                            `Condition`,
                            `Material`,
                            `FinalJudgmentStatus`,
                            `DaysToShip`,
                            `LastModifierId`,
                            `LastModifier`,
                            `LastModificationTime`,
                            `CreatorId`,
                            `Creator`,
                            `CreationTime`,
                            `Id`
                        FROM
                            `P_Market_Product`
                        WHERE
                            ((
                                    `CustomerId` = 1
                                    )
                            AND ( `MarketId` = 57 ))
                            AND NOT ( `CategoryId` IS NULL OR `CategoryId` = '' )
                            AND ( `SiteCode` = 'RU' )
                            ) u ON ((
                                `m`.`CustomerId` = `u`.`CustomerId`
                            )
        AND ( `m`.`Sku` = `u`.`Sku` ))


    结果如下:

  7. 2022-12-23 12:15:47, 由 韦思成 指派给 李乐同。

    第二步过虑:此3个SKU为清库,全部过滤掉,整个策略无符合的数据。


  8. 2022-12-26 14:27:54, 由 李乐同 关闭。
    修改了 Bug状态 ,旧值为 "resolved",新值为 "closed"。
    修改了 指派给 ,旧值为 "liletong",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "liletong"。
    修改了 关闭日期,旧值为 "",新值为 "2022-12-26 14:27:54"。
  9. 2022-12-27 17:02:40, 由 黄爱琳 添加备注。
    本次验证策略 59377,

    第一步 查询接口过滤后,只剩下3个符合条件的,查询SQL如下:

    10688829 1402102 15458238 4079638  7615635 8405029
    以上SKU是在第一步查询接口时被过滤掉,麻烦查明是被什么条件过滤掉
  10. 2022-12-27 17:07:29, 由 李乐同 指派给 韦思成。
    修改了 指派给,旧值为 "closed",新值为 "weisicheng"。
  11. 2022-12-27 17:07:35, 由 李乐同 激活。
    修改了 Bug状态 ,旧值为 "closed",新值为 "active"。
    修改了 激活日期,旧值为 "",新值为 "2022-12-27 17:07:35"。
    修改了 激活次数,旧值为 "0",新值为 "1"。
    修改了 解决方案,旧值为 "feiBUG",新值为 ""。
    修改了 解决日期,旧值为 "2022-12-23 11:54:41",新值为 "0000-00-00"。
    修改了 解决者 ,旧值为 "weisicheng",新值为 ""。
    修改了 解决版本,旧值为 "trunk",新值为 ""。
    修改了 由谁关闭,旧值为 "liletong",新值为 ""。
    修改了 关闭日期,旧值为 "2022-12-26 14:27:54",新值为 "0000-00-00"。
  12. 2022-12-28 09:47:51, 由 李乐同 添加备注。

  13. 2022-12-28 10:42:13, 由 李乐同 添加备注。
    策略没有选择分类,为什么有分类不满足条件
  14. 2022-12-28 10:50:21, 由 李乐同 编辑。
    修改了 抄送给,旧值为 "",新值为 ",chengwei,liuhanze"。

  15. 2023-01-03 15:00:37, 由 韦思成 解决,方案为 非BUG-纯属误判 。
    修改了 解决方案,旧值为 "",新值为 "feiBUG"。
    修改了 解决版本,旧值为 "",新值为 "trunk"。
    修改了 解决日期,旧值为 "",新值为 "2023-01-03 14:59:50"。
    修改了 指派给 ,旧值为 "weisicheng",新值为 "liletong"。
    修改了 Bug状态 ,旧值为 "active",新值为 "resolved"。
    修改了 解决者 ,旧值为 "",新值为 "weisicheng"。

    从代码看,除了wish  其它都有验证平台分类


  16. 2023-01-06 10:17:34, 由 李乐同 编辑。
    修改了 关键词,旧值为 "",新值为 "功能缺陷---影响业务判断"。
  17. 2023-01-11 19:26:13, 由 李乐同 指派给 刘瀚泽。
    修改了 指派给,旧值为 "liletong",新值为 "liuhanze"。
    修改了 抄送给,旧值为 ",chengwei,liuhanze",新值为 ""。
    解决方案
  18. 2023-01-11 19:34:26, 由 刘瀚泽 指派给 李乐同。
    修改了 指派给,旧值为 "liuhanze",新值为 "liletong"。

    已通过需求先处理,bug 可以先关闭

    13319 速卖通自动刊登重新支持刊登清库产品

  19. 2023-01-11 19:46:21, 由 李乐同 关闭。
    修改了 Bug状态 ,旧值为 "resolved",新值为 "closed"。
    修改了 指派给 ,旧值为 "liletong",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "liletong"。
    修改了 关闭日期,旧值为 "",新值为 "2023-01-11 19:46:21"。
    跟进需求
  20. 2023-11-17 09:45:18, 由 刘超 编辑。
    修改了 所属模块,旧值为 "1729",新值为 "1868"。
所属项目 技术中心-需求池
所属模块 多平台   Aliexpress
所属计划
所属迭代
Bug类型
严重程度 提示
优先级 P2
Bug状态 已关闭
业务部门
影响功能
开发责任人
测试责任人
解决时效 0
激活次数 1
激活日期 2022-12-27 17:07:35
是否确认 是
当前指派 Closed 于 2023-01-11 19:46:21
截止日期 0000-00-00
上线时间
上线时效
操作系统 Windows
浏览器 firefox系列
关键词 功能缺陷---影响业务判断
抄送给
所属迭代
相关需求
相关任务
由谁创建 李乐同 于 2022-12-15 17:29:37
影响环境 627
由谁解决 韦思成 于 2023-01-03 14:59:50
解决版本 主干
解决方案 非BUG-纯属误判
由谁关闭 李乐同 于 2023-01-11 19:46:21
最后修改 刘超 于 2023-11-17 09:45:15
相关Bug