text:
[Crashlytics] Illegal instruction: 4 on Xcode Cloud during upload-symbols

Description
It was definitely working before with the same codebase and the same Xcode (14.3).
then around weeks ago, I could not run upload-symbols any more.
Here is the error message:

/Volumes/workspace/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/APAC_Prod/IntermediateBuildFilesPath/TravelAssist.build/Release-iphoneos/APAC_Prod.build/Script-279FBB7E289DFDD000526D82.sh: line 8:  8016 Illegal instruction: 4  "${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/Configuration/Firebase/APAC/prod/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
Reproducing the issue
No response
Firebase SDK Version
10.11.0
Xcode Version
14.2
Installation Method
CocoaPods
Firebase Product(s)
Crashlytics
Targeted Platforms
iOS
Relevant Log Output
If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet

Replace this line with the contents of your Package.resolved.

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet

Replace this line with the contents of your Podfile.lock!

Same issue here

Thanks for reporting, @skywalkerlw. I tried reproducing the issue on Xcode Cloud, but I'm unable to get the same error. Is it possible for you to share the script you used to upload your dSYMs from your shell script file (excluding any private information)?

It reproduces on macOS Sonoma (Xcode Cloud)

I am seeing the same issue as well.

For the last few weeks, the script stopped working, but with no issues/errors reported.
When running the script in Build Phase, which was working for the last 6 months, dSYMs stopped appearing in Firebase.
The command I have been running:
${PODS_ROOT}/FirebaseCrashlytics/run -gsp ${PROJECT_DIR}/MyProject/GoogleService-Info.plist
with input files:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}.
After getting annoyed by manually uploading dSYMs, and as I have been using XCode Cloud, I tried to run the script in ci_post_xcodebuild step. But everything I tried would result in Illegal Instruction Exception which does not give me any useful information.
$CI_PRIMARY_REPOSITORY_PATH/Pods/FirebaseCrashlytics/upload-symbols -d -gsp "$CI_PRIMARY_REPOSITORY_PATH/MyProject/GoogleService-Info.plist" -p ios "$CI_ARCHIVE_PATH/dSYMs"
All paths are correct and files are existing in XCodeCloud env.
Local:
XCode 14.3.1
MacOS Ventura 13.4
XcodeCloud:
XCode 14.3.1
Latest (MacOS Sonoma 14 RC)
Pod: Firebase/Crashlytics 10.3.0
Also, this has been happening on all of my projects built with XCodeCloud

I started seeing this issue in Xcode Cloud recently too.  Here's a log from an example failure, which ran with Xcode 14.3.1 (14E300c) and macOS Sonoma 14 RC (23A339).
Run ci_post_xcodebuild.sh script
    Run command: 'cd /Volumes/workspace/repository/ci_scripts && CI_XCODEBUILD_EXIT_CODE=0 /Volumes/workspace/repository/ci_scripts/ci_post_xcodebuild.sh'
    Found valid archive path, trying to upload dSYMs.
    /Volumes/workspace/repository/ci_scripts/ci_post_xcodebuild.sh: line 8: 12494 Illegal instruction: 4  ../Pods/FirebaseCrashlytics/upload-symbols -gsp ../fastlane/$GSERVICE_PLIST_NAME -p ios $CI_ARCHIVE_PATH/dSYMs
    Command exited with non-zero exit-code: 132

Following the statements made earlier in this thread, I updated my Xcode Cloud build configuration to use macOS Ventura 13.5.2 (22G91) and the error went away.
This is my full ci_post_xcodebuild.sh script:
#!/bin/sh

set -e

if [[ -n $CI_ARCHIVE_PATH ]]; then
    echo "Found valid archive path, trying to upload dSYMs for config $GSERVICE_PLIST_NAME from $CI_ARCHIVE_PATH"
    ../Pods/FirebaseCrashlytics/upload-symbols -gsp ../fastlane/$GSERVICE_PLIST_NAME -p ios $CI_ARCHIVE_PATH/dSYMs
fi

We resolved this problem by switching build os for Xcode cloud from MacOS 14 to MacOS 13. It still doesn't solve the actual problem but atleast builds are working fine now.

Has anyone updated local MacOS to 14, to maybe check if combination of new Xcode and new MacOS is working? Or hopefully does a better error reporting in this case?

I'm testing issues that might pop up with macOS 14. I Ran 3 projects with iOS and Android builds Local:
System Version: macOS 14.0 (23A344)
Kernel-Version: Darwin 23.0.0
Xcode 14.3.1.
The upload step fails on iOS part but works for Android.

line 2:  6128 Illegal instruction: 4 - *

On baseline test with the same jobs/builds ran on macOS 13.6 and uploads worked fine.
So I can confirm that something happens when upgrading macOS to 14.
I ended up here trying to find a fix for the issue.

I am seeing the same issue as well.

Same here, just ran upload-symbols -gsp <path to path> -p ios <path to dsym zip file> and it crashed on Sonoma (macOS 14.0). Works well on 13.6.

Installing Xcode 15 fixed the issue for me.
The project setting was still set to use Xcode 14.3.1.
But installing Xcode 15 made uploading work.

We're having the same issue on our CI (that runs on Buildkite, using our own Intel MacMini that run our build jobs in a Parallels VM) since we migrated our VMs to Xcode 15.
builder@xcode-15 tumblr-ios % /usr/local/var/buildkite-agent/builds/MV-MKE-X64-012/automattic/tumblr-ios/Pods/FirebaseCrashlytics/upload-symbols -d -gsp /usr/local/var/buildkite-agent/builds/MV-MKE-X64-012/automattic/tumblr-ios/Resources/GoogleService-Info.plist -p ios /usr/local/var/buildkite-agent/builds/MV-MKE-X64-012/automattic/tumblr-ios/artifacts/publish/com.tumblr.Tumblr_319009_beta.app.dSYM.zip
upload-symbols 3.16 build 35

Arguments:
Debug mode enabled
Google App ID: {redacted}
Platform: ios
DSYM Paths: ["/usr/local/var/buildkite-agent/builds/MV-MKE-X64-012/automattic/tumblr-ios/artifacts/publish/com.tumblr.Tumblr_319009_beta.app.dSYM.zip"]

Inspecting next path: /usr/local/var/buildkite-agent/builds/MV-MKE-X64-012/automattic/tumblr-ios/artifacts/publish/com.tumblr.Tumblr_319009_beta.app.dSYM.zip
Found archive at path: /usr/local/var/buildkite-agent/builds/MV-MKE-X64-012/automattic/tumblr-ios/artifacts/publish/com.tumblr.Tumblr_319009_beta.app.dSYM.zip
Inspecting next path: /var/folders/xl/csng4q450h96m4tbz0p12_xh0000gn/T///usr/local/var/buildkite-agent/builds/MV-MKE-X64-012/automattic/tumblr-ios/artifacts/publish/com.tumblr.Tumblr_319009_beta.app.dSYM.zip.unzipped/Notification.appex.dSYM
Found dSYM at path: /var/folders/xl/csng4q450h96m4tbz0p12_xh0000gn/T///usr/local/var/buildkite-agent/builds/MV-MKE-X64-012/automattic/tumblr-ios/artifacts/publish/com.tumblr.Tumblr_319009_beta.app.dSYM.zip.unzipped/Notification.appex.dSYM
Begin processing dSYM at /var/folders/xl/csng4q450h96m4tbz0p12_xh0000gn/T///usr/local/var/buildkite-agent/builds/MV-MKE-X64-012/automattic/tumblr-ios/artifacts/publish/com.tumblr.Tumblr_319009_beta.app.dSYM.zip.unzipped/Notification.appex.dSYM
zsh: illegal hardware instruction   -d -gsp  -p ios

xcodebuild -version = Xcode 15.0, Build version 15A240d

Upgraded my laptop to Sonoma but so far I could not reproduce the problem locally. Tested build on xcode15 through application and xcode14.3.1 through command line. They all work for me on Sonoma. I am a bit curious if this is an issue on x86 arch machine. I am on 23.0.0 Darwin Kernel Version 23.0.0: Fri Sep 15 14:41:43 PDT 2023; root:xnu-10002.1.13~1/RELEASE_ARM64_T6000 arm64

This seems to be resolved on macOS 14.1

authors: AliSoftware ansabalisf barakwei dneprDroid jaltreuter kgrigsby59 max9631 rizafran roby0970 skywalkerlw syboMuhamed themiswang

repo: firebase/firebase-ios-sdk


text:
Add new target FirebaseSharedSwift

As discussed in issue #8528 I am starting this work by moving Database.Encoder and Database.Decoder to a shared framework, FirebaseSharedSwift (should it be FirebaseSwiftShared? something else?) and rebranding as StructureEncoder and StructureDecoder while adding typealiases to keep API compatibility.

I'm going to merge this PR to the codable-refactor branch to make the Functions Codable PR more manageable and to set up CI and CocoaPods for FirebaseSharedSwift

source: gharchive/pull-request

license_type: permissive

license_source: github-api


text:
🐛 [cloud_firestore] old data retrieved if get is called just after a transaction when a stream is active

Bug report
Describe the bug
Firestore doesn't retrieve the latest data when using 'get' on a document just after this document was modified through a transaction and a stream to listen on the same document is active
Steps to reproduce
Steps to reproduce the behavior:

Listen to a document
Update this document via a transaction
Call get method on this document just after transaction has succeeded.

Expected behavior
Content of the retrieved document  in the 'Get' call should be updated but it is not !
This issue is not happening if we are not listening to the document OR if the document is not updated through a transaction.
Sample project
To reproduce the problem.

Create a 'test' collection with a 'test' document. Add a 'population' field to this document with a number value of 1.
Run the following widget.
Issue will appear if you click 'Listen to the stream' and then 'Transact then Get'

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';

class TestBugWidget extends StatefulWidget {
  const TestBugWidget({super.key});

  @override
  State<TestBugWidget> createState() => _TestBugWidgetState();
}

class _TestBugWidgetState extends State<TestBugWidget> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Bug repro')),
      body: Column(children: [
        ListTile(
          title: const Text('Listen to the stream'),
          onTap: streamListen,
        ),
        ListTile(
          title: const Text('Update then Get'),
          onTap: updateThenGet,
        ),
        ListTile(
          title: const Text('Transact then Get'),
          onTap: transactThenGet,
        )
      ]),
    );
  }

  void streamListen() {
    FirebaseFirestore.instance
        .collection('test')
        .doc('test')
        .snapshots()
        .listen((event) {
      debugPrint('new test has arrived');
    });
  }

  Future<void> transactThenGet() async {
    final docRef = FirebaseFirestore.instance.collection("test").doc("test");
    var newPopulation;
    await FirebaseFirestore.instance.runTransaction((transaction) async {
      final snapshot = await transaction.get(docRef);
      final prevPopulation = snapshot.get("population");
      newPopulation = prevPopulation + 1;
      transaction.update(docRef, {"population": newPopulation});
    });
    Map<String, dynamic> updated = (await docRef.get()).data()!;
    debugPrint('Expecting : ${newPopulation.toString()}');
    debugPrint('Got : ${updated['population'].toString()}');
  }

  Future<void> updateThenGet() async {
    final docRef = FirebaseFirestore.instance.collection("test").doc("test");
    final snapshot = await docRef.get();
    final prevPopulation = snapshot.get("population");
    final newPopulation = prevPopulation + 1;
    await docRef.update({"population": newPopulation});
    Map<String, dynamic> updated = (await docRef.get()).data()!;
    debugPrint('Expecting : ${newPopulation.toString()}');
    debugPrint('Got : ${updated['population'].toString()}');
  }
}

Additional context
cloud_firestore: ^4.0.5
firebase_core: ^2.2.0
I tested both on Android and Web. Issue happens in both cases.

Thanks for the report @pldelattre
Using the details you provided, I ran on mobile platform (iOS) and observed below in the console:
flutter: new test has arrived
flutter: new test has arrived
flutter: Expecting : 2
flutter: Got : 2
flutter: new test has arrived
flutter: Expecting : 3
flutter: Got : 3

Is above an expected result you are looking for ? Or do you see any other output ?
I am unable to verify this on web due to throw FallThroughError(); error which is being discussed here already

A bit more investigation:

Issue is consistently happening when using Firestore on GCP but not always when using emulator (50% of tries).
A workaround that solve the issue is to add a "await Future.delayed(const Duration(milliseconds: 300));" in the transactThenGet() Future :

  Future<void> transactThenGet() async {
    final docRef = FirebaseFirestore.instance.collection("test").doc("test");
    var newPopulation;
    await FirebaseFirestore.instance.runTransaction((transaction) async {
      final snapshot = await transaction.get(docRef);
      final prevPopulation = snapshot.get("population");
      newPopulation = prevPopulation + 1;
      transaction.update(docRef, {"population": newPopulation});
    });
    await Future.delayed(const Duration(milliseconds: 300)); // <-- WORKAROUND
    Map<String, dynamic> updated = (await docRef.get()).data()!;
    debugPrint('Expecting : ${newPopulation.toString()}');
    debugPrint('Got : ${updated['population'].toString()}');
  }

@darshankawar
This is what I get when I click 'Listen to the stream' and then two times on 'Transact then Get'
new test has arrived
Expecting : 2
Got : 1
new test has arrived
Expecting : 3
Got : 2
new test has arrived

However if I reload the app and click only on 'Transact then Get', I get
Expecting : 4
Got : 4

It seems the problem is that the Firestore get action will retrieve the previous record until the stream has finished serving the new record. And that looks like a bug.

Thanks for the feedback. Using above mentioned details and running on Android, seeing same behavior as reported. Keeping this issue open and labeling for team's attention on expected behavior.

@Lyokone Thanks for working on this. You mention that your PR close the issue, however, your code seem to only touch IOS files.
This bug (#10153) happens on Android (tested by me and confirmed by @darshankawar) and Web platform (tested by me) but not on IOS (tested by @darshankawar), so your fix is possibly unrelated to this issue ?

@Lyokone Have you tried on a firestore cloud instance  ? It is is more difficult to reproduce with emulator.

I'm testing with with a Cloud Instance but not having any issue with Web 🤔

I updated to the latest versions :

Flutter (Channel stable, 3.3.10, on macOS 12.6.2 21G320 darwin-x64, locale en)
cloud_firestore: ^4.3.0
firebase_core: ^2.4.0

I updated the code to the bare minimum, everything in a single dart file, including the main() function. Also added the "const GetOptions(source: Source.server)" in the Get call  :
import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );

  runApp(MaterialApp(
      title: 'Bug Repro',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const TestBugWidget()));
}

class TestBugWidget extends StatefulWidget {
  const TestBugWidget({super.key});

  @override
  State<TestBugWidget> createState() => _TestBugWidgetState();
}

class _TestBugWidgetState extends State<TestBugWidget> {
  StreamSubscription? _sub;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Bug repro')),
      body: Column(children: [
        ListTile(
          title: const Text('Listen to the stream'),
          onTap: streamListen,
        ),
        ListTile(
          title: const Text('Transact then Get'),
          onTap: transactThenGet,
        )
      ]),
    );
  }

  void streamListen() {
    debugPrint('*** User clicked on \'Listen to the stream\' ***');
    _sub?.cancel();
    debugPrint('Let\'s listen to test document!');
    _sub = FirebaseFirestore.instance
        .collection('test')
        .doc('test')
        .snapshots()
        .listen((event) {
      debugPrint('new test document has arrived');
    });
  }

  Future<void> transactThenGet() async {
    debugPrint('*** User clicked on \'Transact then Get\' ***');
    final docRef = FirebaseFirestore.instance.collection("test").doc("test");
    var newPopulation;
    await FirebaseFirestore.instance.runTransaction((transaction) async {
      final snapshot = await transaction.get(docRef);
      final prevPopulation = snapshot.get("population");
      newPopulation = prevPopulation + 1;
      debugPrint('updating population to : ${newPopulation.toString()}');
      transaction.update(docRef, {"population": newPopulation});
    });
    Map<String, dynamic> updated = (await docRef.get(const GetOptions(source: Source.server))).data()!;
    debugPrint('Expecting : ${newPopulation.toString()}');
    debugPrint('Got : ${updated['population'].toString()}');
  }

}

Unfortunately, it does not solve the issue for me.
Here is what I get when running on web :
*** User clicked on 'Listen to the stream' ***
Let's listen to test document!
new test document has arrived
*** User clicked on 'Transact then Get' ***
updating population to : 57
Expecting : 57
Got : 56
new test document has arrived
*** User clicked on 'Transact then Get' ***
updating population to : 58
Expecting : 58
Got : 57
new test document has arrived

Here is what I get when running on android
I/flutter ( 5669): *** User clicked on 'Listen to the stream' ***
I/flutter ( 5669): Let's listen to test document!
W/DynamiteModule( 5669): Local module descriptor class for com.google.android.gms.providerinstaller.dynamite not found.
I/DynamiteModule( 5669): Considering local module com.google.android.gms.providerinstaller.dynamite:0 and remote module com.google.android.gms.providerinstaller.dynamite:0
W/ProviderInstaller( 5669): Failed to load providerinstaller module: No acceptable module com.google.android.gms.providerinstaller.dynamite found. Local version is 0 and remote version is 0.
D/nativeloader( 5669): classloader namespace configured for unbundled product apk. library_path=/product/priv-app/PrebuiltGmsCore/lib/x86_64:/product/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk!/lib/x86_64:/product/lib64:/system/product/lib64
V/NativeCrypto( 5669): Registering com/google/android/gms/org/conscrypt/NativeCrypto's 294 native methods...
W/eon.myapp.in( 5669): Accessing hidden method Ljava/security/spec/ECParameterSpec;->getCurveName()Ljava/lang/String; (unsupported, reflection, allowed)
I/ProviderInstaller( 5669): Installed default security provider GmsCore_OpenSSL
I/flutter ( 5669): new test document has arrived
W/eon.myapp.in( 5669): Accessing hidden field Ljava/net/Socket;->impl:Ljava/net/SocketImpl; (unsupported, reflection, allowed)
W/eon.myapp.in( 5669): Accessing hidden field Ljava/io/FileDescriptor;->descriptor:I (unsupported, JNI, allowed)
W/eon.myapp.in( 5669): Accessing hidden method Ljava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V (unsupported, reflection, allowed)
I/flutter ( 5669): new test document has arrived
D/EGL_emulation( 5669): app_time_stats: avg=1103.09ms min=17.37ms max=5156.58ms count=5
I/flutter ( 5669): *** User clicked on 'Transact then Get' ***
I/flutter ( 5669): updating population to : 59
I/flutter ( 5669): new test document has arrived
I/flutter ( 5669): Expecting : 59
I/flutter ( 5669): Got : 59
D/EGL_emulation( 5669): app_time_stats: avg=134.23ms min=6.90ms max=1313.40ms count=12
I/flutter ( 5669): *** User clicked on 'Transact then Get' ***
I/flutter ( 5669): updating population to : 60
I/flutter ( 5669): Expecting : 60
I/flutter ( 5669): Got : 59
I/flutter ( 5669): new test document has arrived
D/EGL_emulation( 5669): app_time_stats: avg=272.38ms min=6.09ms max=3581.75ms count=14
I/flutter ( 5669): *** User clicked on 'Transact then Get' ***
I/flutter ( 5669): updating population to : 61
I/flutter ( 5669): new test document has arrived
I/flutter ( 5669): Expecting : 61
I/flutter ( 5669): Got : 61
I/flutter ( 5669): *** User clicked on 'Transact then Get' ***
D/EGL_emulation( 5669): app_time_stats: avg=489.51ms min=74.10ms max=1857.45ms count=5
I/flutter ( 5669): updating population to : 62
I/flutter ( 5669): new test document has arrived
I/flutter ( 5669): Expecting : 62
I/flutter ( 5669): Got : 62
D/EGL_emulation( 5669): app_time_stats: avg=436.70ms min=74.24ms max=1064.18ms count=3
I/flutter ( 5669): *** User clicked on 'Transact then Get' ***
I/flutter ( 5669): updating population to : 63
I/flutter ( 5669): new test document has arrived
I/flutter ( 5669): Expecting : 63
I/flutter ( 5669): Got : 63
D/EGL_emulation( 5669): app_time_stats: avg=170.16ms min=43.96ms max=972.57ms count=8
I/flutter ( 5669): *** User clicked on 'Transact then Get' ***
I/flutter ( 5669): updating population to : 64
I/flutter ( 5669): Expecting : 64
I/flutter ( 5669): Got : 63
I/flutter ( 5669): new test document has arrived

We can notice that:

it is always failing on Web but only from time to time on Android.
When 'new test document has arrived' is written just after 'updating population', then Expecting and Got numbers will match. However, they won't match if 'new test document has arrived' is written after Expecting and Got.

I also tried to compile web on another computer with a fresh install of flutter to see if result would be different. Unfortunately it is not.  And we have also @darshankawar that confirmed he was able to reproduce the issue on Android.
Another info that I didn't mention is that I am using EUR3 Firestore instance. Maybe it is worth trying to reproduce on that instance ?

After a lot of different tests, I was able to also reproduce it in the JS SDK with the following code:
import { initializeApp } from "firebase/app";
import {
  doc,
  getDoc,
  getFirestore,
  onSnapshot,
  runTransaction,
} from "firebase/firestore";

var config = {
...
};

// Initialize Firebase
var app = initializeApp(config);
const db = getFirestore(app);

const test_doc = doc(db, "test_10153", "test");

const unsub = onSnapshot(test_doc, (doc) => {
  console.log("Current data: ", doc.data());
});

for (let i = 0; i < 10; i++) {
  var newPopulation;

  await runTransaction(db, async (transaction) => {
    const sfDoc = await transaction.get(test_doc);
    if (!sfDoc.exists()) {
      throw "Document does not exist!";
    }

    newPopulation = sfDoc.data().population + 1;
    console.log("Updating to:", newPopulation);
    transaction.update(test_doc, { population: newPopulation });
  });

  const data = await getDoc(test_doc);

  console.log("Expected: ", newPopulation);
  console.log("Actual: ", data.data().population);

  console.log("---------");
}

unsub();

I'll post an issue to the JS SDK repository.

Thanks for following up on this @Lyokone and for opening an issue on the JS SDK repository.
Assuming they can fix the issue on the JS SDK, would that fix the issue only on Web or also Android ? Is Firestore Android implementation relying on the same SDK ?

@pldelattre I have opened the issue only on the JS SDK repository because I think this is not a bug but an expected behaviour (transaction taking some time to be applied on the backend properly). My guess is that the await runTransaction is just awaiting to send the transaction to the backend but does not await the transaction to be applied. If this is the case, it will be the same thing on iOS and Android.

@Lyokone
if your guess was correct, we would see the same behavior when there is no active listener. In my tests, when there is no active listener, I cannot reproduce the issue.

@Lyokone your theory and my last comment gave me the idea of a new test :

Start a first chrome tab with the repro code and listen to the document.
Start a second chrome tab with the same repro code and click on 'Transact then Get' without listening to the document.

In that context, I only see the issue in the first tab but not in the second tab. IMHO, this tends to prove that the issue is not with the backend (that would not be awaiting the transaction to be applied) but with the frontend.

@Lyokone @pldelattre We're experiencing a similar issue.  In our case, we run a transaction where we delete a document and remove the reference to it in another. The stream listening to the parent collection emits two events after the transaction has run. The second one includes both changes. The first one however, includes the removed reference but the deleted document is still in the snapshot. Isn't the idea of transactions that exactly this doesn't happen, e.g. that the changes are atomic?

I'll close this as "will not fix" according to this response from a Googler: https://github.com/firebase/firebase-js-sdk/issues/6915#issuecomment-1439374095

source: gharchive/issue

authors: Lyokone darshankawar edhom pldelattre

repo: firebase/flutterfire

license_source: bigquery


text:
APNS stops working on FCM Token Refresh

I'm having a big problem:
When I install the app and run the app for the first time, both the APNS and FCM notifications work ok. I can send Push Notifications via FCM and they're received via FCM and APNS with no problem.
When the FCM token is updated though, I stop receiving Notifications through the method didReceiveRemoteNotification at all, and am only able to receive messages through the (received remoteMessage: MessagingRemoteMessage) - that said, the Notification dictionary of my push isn't read as a APNS.
I haven't disabled FCM's swizzling, here's the code I use for setting up Push Notifications:
func setupUserNotifications(application: UIApplication) {
        if #available(iOS 10.0, *) {
            let authOptions : UNAuthorizationOptions = [.alert, .badge, .sound]
            UNUserNotificationCenter.current().requestAuthorization(
                options: authOptions, completionHandler: {_,_ in })

            // For iOS 10 display notification (sent via APNS)
            UNUserNotificationCenter.current().delegate = self
            // For iOS 10 data message (sent via FCM)
            Messaging.messaging().delegate = self

        } else {
            // Fallback on earlier versions
            let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)

            application.registerUserNotificationSettings(settings)
        }

        application.registerForRemoteNotifications()

        FirebaseApp.configure()

        if let token = Messaging.messaging().fcmToken() {
            connectToFcm(token)
        }
    }

I just tested sending the APNS notification via NWPusher and it works alright.
Therefore I can only imagine the Messaging lib is failing to "link" the apns token with the new FCM token.

Same situation here. Push notifications work perfect until firebase token is refreshed. After token refresh device stops receiving notifications(no matter using server API, or firebase console).

Hmm, when you say:

When the FCM token is updated though, I stop receiving Notifications

Are you triggering an FCM token update, somehow? How can I replicate this issue?

Yes i'm triggering FCM token update by deleting FIRInstanceID.
[[FIRInstanceID instanceID]deleteIDWithHandler:^(NSError * _Nullable error) {
    NSLog(@"%@", error.description);

}];

What is interesting same technique is used on Android, and notifications do not stop to work.

Exactly. I'm forcing the FCM token update through that very same method - though on Swift.
That said, the very same problem eventually happens naturally if I don't force the FCM Token update.

Thanks folks, I'm going to look into this. I'm just curious: Why are you deleting the ID? Is this a common thing? Trying to understand the scenario. Thanks!

I'm deleting the ID as a means of testing something that eventually will happen naturally.

Same issue here. I am not deleting the ID but I distribute new versions of the app in Crashlytics to internal testers. When testers install a newer version of the app, the FCM token is updated. From this point no APNS notification is received anymore, but fcm messaging are received correctly.
I can confirm that the new FCM token is correctly updated on our backend side, and push notifications permissions are granted on client side.

I have exactly the same issue.. Started happening after updating Firebase to version 4 and using the new p8 file.
What's maybe of interest is, after the token is changed, I can still send push notifications to the device with the previous old token, even though Firebase is reporting a completely new token. Sending to the new token gives me a success response on the sender side, but the message is never received.

Hi, we have the same issue and for us it is quite important.
Our App has a function to reset all private data. This is where we delete the token. If we do not do this, we fear that users will delete their private data, give their phone to someone else, who then gets messages meant for the prior owner. We believe that this presents a significant legal and reputation risk here in the EU. We are currently looking into workarounds, which might delay us launching, so it would be much appreciated if this could be fixed soon.

We have the same problem.
After reset we need to delete all user data as well as FCM token. If FIRInstanceID.instanceID().delete() runs into error, user will never get any notifications.
@rsattar We call FIRInstanceID.instanceID().delete(), because we have to make sure that after app reset, new user will get a new token.

I have a similar problem. After deleting the instance ID, a new token is not generated, the library always returns the same Token.
However, if you kill the App and open it again, a new token is generated normally and the messages come back to work.

Hmm, I'm unable to reproduce this. If you're not on the latest Firebase InstanceID SDK, please do so. There have been several internal changes recently that could have addressed this issue.
This is what I'm doing:
  FIRInstanceID *iid = [FIRInstanceID instanceID];
  [iid deleteIDWithHandler:^(NSError *error) {
    // Force a token fetch, if one hasn't started
    NSString *token = iid.token;
  }];

In this call, iid.token returns nil, because the tokens associated with that appID have been deleted/invalidated. But a new token will be fetched. When I test that token, it seems to deliver notifications over APNs in my test app.
Questions:

What version of the Firebase InstanceID SDK is linked into your app?
Are you expecting the same FCM token as before to work, after calling deleteIDWithHandler?
Are you getting a new FCM token, and that one is failing to deliver a notification?

Hey, I know this has been closed. But I have to make sure something. I have the similar issue here.
But my code is like that:
- (AnyPromise *)resetFCMToken
{
    return [AnyPromise promiseWithResolverBlock:^(PMKResolver resolve) {
        [[FIRInstanceID instanceID] deleteTokenWithAuthorizedEntity:[self fcmAuthorizedEntity] scope:kFIRInstanceIDScopeFirebaseMessaging handler:^(NSError * _Nullable error) {
            DLog(LOG_APNS, @"Delete FCM Token Error: %@", error);
            if (error) {
                resolve(error);
            } else {
                resolve(nil);
            }
        }];
    }];
}

- (AnyPromise *)refreshFCMToken
{
    return [self resetFCMToken].then(^{
        [[FIRInstanceID instanceID] tokenWithAuthorizedEntity:[self fcmAuthorizedEntity] scope:kFIRInstanceIDScopeFirebaseMessaging options:@{@"apns_token":[FIRMessaging messaging].APNSToken} handler:^(NSString * _Nullable token, NSError * _Nullable error) {
            DLog(LOG_APNS, @"Refresh FCM Token, error : %@, token : %@", error, token);
        }];
    });
}

I use deleteTokenWithAuthorizedEntity  before tokenWithAuthorizedEntity, did I do someting wrong? or how could we do if we need to delete the old FCM_token and fetch a new one?

That error means you're missing the APNs server type in your options dictionary.
This is an error that's no longer referenced in the most recent version of InstanceID, which just provides a default for you now if it's missing.

Hey, thanks for your heads-up ;)  But according to this docs, they didn't mention APNs server type, and  the apns_token is only required
So I added a dictionary like this options:@{@"apns_token":[FIRMessaging messaging].APNSToken}
https://firebase.google.com/docs/reference/swift/firebaseinstanceid/api/reference/Classes/InstanceID
I'm not sure how to fix it. Should I add something like this:
@{@"apns_token":[FIRMessaging messaging].APNSToken,
     @"apns_type":???}
}

Hey, I think I finally make it works. Just a record here.
I have to change the API that I used. I used -deleteIDWithHandler instead of deleteTokenWithAuthorizedEntity  and tokenWithAuthorizedEntity to reset fcmToken.
Looks that works fine for me but I'm still confused what this tokenWithAuthorizedEntity  method meaning is since it can't update a new token?
Reset fcmToken Code: (You can ignore the AnyPromise that I used)
- (AnyPromise *)resetFCMToken
{
    return [AnyPromise promiseWithResolverBlock:^(PMKResolver resolve) {
        [[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError * _Nullable error) {
            if (error) {
                resolve(error);
            } else {
                resolve(nil);
            }
        }];
    }];
}

Then we need to register again and try to get the new fcmToken.
I set APNSToken to FIRMessaging [[FIRMessaging messaging] setAPNSToken:deviceToken type:FIRMessagingAPNSTokenTypeUnknown]; in -application-didRegisterForRemoteNotificationsWithDeviceToken method.
That means the new fcmToken will be fetched after the next time app launched.
Setup deviceToken:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    [[FIRMessaging messaging] setAPNSToken:deviceToken type:FIRMessagingAPNSTokenTypeUnknown];
}

Fetch new token :
#pragma mark - FIRMessagingDelegate
- (void)messaging:(nonnull FIRMessaging *)messaging didRefreshRegistrationToken:(nonnull NSString *)fcmToken
{
    // Note that this callback will be fired everytime a new token is generated, including the first
    // time. So if you need to retrieve the token as soon as it is available this is where that
    // should be done.
    [self reportFCMTokenIfNeeded];
}

tokenWithAuthorizedEntity should fetch a new FCM token with the same instance ID for the specific server type (production, sandbox, etc). In the newest version of the SDK, the server type is no longer required (you should update your SDK version if you're not on the latest version).
Deleting the InstanceID instance forces a token refresh as well.

I am facing this issue not receiving notification after fcm token refresh.
I am using Firebase 5.15. I try in latest but didn't work.
Any one have solution ?

I'm facing this issue too, old token is still working though. Fix anyone ?

I have this issue as well - I get a new token but pushes don't work on update

Having a similar issue with APNS notifications not being delivered within the last few weeks out of the blue.   Not sure if its due to a token refresh or what the deal is but we have come across devices where the FCM pushes to the result in a 200 OK and a success JSON payload but the notifications never make it to the user.

I found a good solution. Force delete the token on the device - for with react-native-firebase it's .deleteToken(). Also only rely off the onTokenRefresh callback as that's where you will always get the latest. Learn more about my issue and solution here: https://github.com/invertase/react-native-firebase/issues/2035#issuecomment-480925392

Same issue here. The strangest thing is, that sending a notification through APNs itself remakes the FCM notifications working properly for the FCM token registered with the APNs token.

Same issue here. We have the following in our Podfile.lock
- FirebaseInstanceID (4.3.0):
    - FirebaseCore (~> 6.6)
    - FirebaseInstallations (~> 1.0)
    - GoogleUtilities/Environment (~> 6.5)
    - GoogleUtilities/UserDefaults (~> 6.5)
  - FirebaseMessaging (4.2.0):
    - FirebaseAnalyticsInterop (~> 1.5)
    - FirebaseCore (~> 6.6)
    - FirebaseInstanceID (~> 4.3)
    - GoogleUtilities/AppDelegateSwizzler (~> 6.5)
    - GoogleUtilities/Environment (~> 6.5)
    - GoogleUtilities/Reachability (~> 6.5)
    - GoogleUtilities/UserDefaults (~> 6.5)
    - Protobuf (>= 3.9.2, ~> 3.9)

Seems like the issue only happens when we delete the token and then kill the app.
This is because FIRMessaging fails to get access to APNS token after the app is killed.
Solution: We need to somehow call [RCTSharedApplication() registerForRemoteNotifications] whenever the app restarts. If you're using firebase-react-native, make sure to call firebase.messaging().ios.registerForRemoteNotifications() when the app restarts

I've spent the whole day searching on why our notifications are not delivered after calling deleteIdWithHandler and it turns out the APN Token is not automatically passed when a new ID is requested/generated. Thus to solve this, thanks to all the comments here, we call UIApplication.shared.registerForRemoteNotifications() so the APN Token gets refreshed and Firebase notifications start working again. I think just by fetching and setting the APN token on the Messaging SDK would do the trick, but we decided to keep it clean and let the method swizzling take care of it.
I think a warning should be added somewhere in the documentation to let the users know they need to manually refresh the APN Token after deleting the instance ID.

authors: L4grange Martynas101 MeteC MrBoog dltlr douglasjunior evanjmg gica-gugui m2wester morganchen12 npocmo raiffeisennet ranipanimisha94 romaindutartre rsattar thomasttvo victorlsn

repo: firebase/quickstart-ios


text:
[feature request] Hosted samples.

If you'd enabled GitHub pages option, we could get chance to watch and try on demo codes that you provides here. Next time, please enable it. I was trying to open https://firebase.github.io/quickstart-js/messaging/ and found that GitHub page is disabled for that repository.

Closing this as a duplicate of #178

authors: AJ-Creations jhuleatt

repo: firebase/quickstart-js


text:
onActivityResult is deprecated in FirebaseUI AuthUI snippet

It's recommended instead that you use registerForActivityResult() instead to launch an activity. Developer reference: https://developer.android.com/training/basics/intents/result
Affected snippet:
https://github.com/firebase/snippets-android/blob/171f53681481afbcb084a9f0f8e80d922ae3d7ac/auth/app/src/main/java/com/google/firebase/quickstart/auth/kotlin/FirebaseUIActivity.kt#L19-L58

Closing as this is a duplicate of #280

repo: firebase/snippets-android


text:
Pic第一次似乎是下载失败，然后就不会自动下载了

猜一张卡
没找到对应图片~
咿呀？启动失败了呢

我这边__init__.py里的deck_url = "https://gitee.com/fireinsect/image-save/raw/master/decks/"手动打开为纯白网页，不过我手动进入https://gitee.com/fireinsect/image-save/tree/master/decks/倒是可以进入仓库

猜卡卡图同卡查卡图

猜卡卡图同卡查卡图

我这边随机一卡、查卡、猜一张卡都没有图片资源

猜卡卡图同卡查卡图

我是需要手动下载https://gitee.com/fireinsect/image-save/tree/master/decks/仓库里的内容放入指定的文件夹里吗

自动下载只会下载卡运使用的卡图，具体使用卡图请查看配置方法

自动下载只会下载卡运使用的卡图，具体使用卡图请查看配置方法

懂了，/cdb和/pics需要自己下载放进入是不

cdb存在默认数据（不保证更新），pics需要手动导入，或者在env中写入文件夹绝对地址

authors: ElainaFanBoy fireinsect

license: MIT


text:
Is there any update or any sort of maintenance for this project?

Yes, there will be some minor updates. Those including:

Enlist this mod to Sayonika (a mod-listing website)
Integrate to DDLC Mod Launcher (from Pi)(if he's still alive)(but I doubt not a lot of mods are going to integrate this mod launcher since the modding community is different nowadays)

However, there will be some updates that I will not be going to work on, which is:

No full support for fddme Mod Launcher (if there is something wrong with the compatibility of my mod in his launcher, that is not my responsibility)
Will not integrate into Doki-Doki Mod Launcher (DDML) by GanstaKingofSA (there are a few flaws that I do not want to solve, or the mod launcher is quite flimsy for "compatibleness" - I would prefer fddme)
No implementation of Travis CI for Sayonika - I only prefer list only, not auto mod-builder (I'm fine with the traditional way, not using rpatool btw)

If someone is going to fully resume this mod, these problems will likely to be solved. But so far no one has stepped forward to do so.

My schedule will likely to be packed with my classes in my college so I won't have time for those anyway, but if I have a chance, I will do it.


text:
Build staging images and binaries identically to prod

Currently the Rust artifacts are built with --debug but this can lead to drift between staging and production. We should build staging artifacts just like how we build prod.
Debugging would need to be done adhoc or with on-demand demo instances.

We currently do this already. See here
The particular issue seen for this was user error not using the most up-to-date binaries

repo: firezone/firezone


text:
RFC: Opt-in Client metrics / telemetry for dev builds on dev machines

Is your feature request related to a problem? Please describe.
During today's incident (need to cross-link) we weren't sure when the Gateways were most recently working
Describe the solution you'd like
Something outside of the logs that allows us to automatically record how the dogfooding is going without any chance for human error or forgetfulness.

More like a set of data points than a string-based log, something you could graph in Prometheus
Not deleted when the logs are cleared
Only used on dev systems, so privacy is not a problem
Machine-readable to find things like, "This new Client is slower" or "Staging quit working at this exact date and time"

This would give us a little bit of visibility / coverage into tricky platform-specific I/O things that are otherwise undertested or impractical to test properly in CI. CI can't do soak tests either.
Describe alternatives you've considered
This could come from the normal logs, but I usually clear my logs dir before replicating an issue, so that information is lost. The logs may also be either too verbose (using debug defaults) or too terse (using release defaults)
Additional context
Add any other context or screenshots about the feature request here.

This might be a lot of work to add to the existing clients running on dev machines. Would #4506 deliver most of the value here?

Let's do #4506 first. But for this I'd like to also catch I/O problems, since I/O for Linux is well-covered and for Windows is almost not covered at all.
Like right now I've still had to turn off my macOS Client because it was interfering with my UTM dev VM and music player. That isn't automatically captured anywhere.

Might schedule later if it seems useful

authors: ReactorScram jamilbk


text:
Limit number of parallel subscribers to backing event store

Currently the event store implementation is a bit aggressive with the number of consumers. This makes, in this case NATS, hit the (artificial) limits regarding subjects and subscribers.
TODO

[x] bump up limits in NATS streaming pod
[x] Unsubscribe from completed invocations in event store implementation

This issue is a short term solution for the longer term issue #4

Fixed in #103 and https://github.com/fission/fission/pull/482

repo: fission/fission-workflows


text:
Register pin without altering state

Great library :+1:
Not really an issue, more like a feature request.
When a pin is registered at the start of the script using
var led = new Gpio(14, 'out');
The state of pin 14 is set to LOW (0), regardless of what it was before. If a previous script has set the pin to HIGH and then finishes, or the script restarts for whatever reason, the pin is always reset to LOW.
Is it possible to have the pin registered, but not have the start altered until it is done so manually using write or writeSync?
I appreciate your time.

No, this currently isn't possible. If persistent state is needed between different runs of the script, it would be better to store the required information using the file system. Also, if this feature was implemented, it would be unclear what state the output pin should have the first time the script is run. It would also be unclear what state the pin should have if the system is powered down between two runs of the script.

I'm going to close this one as onoff isn't the correct place for saving/restoring the state of pins between different runs of the application.

authors: domoconnell fivdi

repo: fivdi/onoff

license: mit


text:
bind to raw data without generic type

Port.bind(T* data) is restrictive to use in certain circumstances.
Adding a Halide::Type as an argument and removing the generic typing helps.
Port.bind(Halide::Type, void* data) allows binding to raw addresses.

@richardfixstars Can you reimplemnt generic version of bind as a wrapper function of the new function which you propose?

@richardfixstars Can you reimplemnt generic version of bind as a wrapper function of the new function which you propose?

That makes sense. Done.

authors: iitaku richardfixstars

repo: fixstars/ion-kit


text:
None of the demos seem to work on OSx Firefox or Safari

Hey! I wanted to use this polyfill in my library, but when I fired up the demos locally, I noticed that none of them work properly in either OSx Firefox or Safari. On Chrome everything appears to work as expected as far as I can tell.
I am on macOS Ventura (13.6.6)
Here are some recordings:
Chrome, Version 124.0.6367.158
https://github.com/flackr/scroll-timeline/assets/34210193/f2688d5e-8d80-428b-b532-6fb1966765ba
Firefox, version 106.0.1
https://github.com/flackr/scroll-timeline/assets/34210193/06cfab04-253a-4974-b65c-9dd86d51c413
Safari, Version 17.4.1
https://github.com/flackr/scroll-timeline/assets/34210193/feba95f6-ddd6-4415-88c9-d9f870d60fda
Has anyone else ran into a similar issue? I am interested in the scroll( ) function polyfill

Hey @haach, same here. It isn't working locally or when using the CDN on Safari iOS and macOS 17.4."

Check the console. You’ll see an error that it can’t load thescroll-timeline.js file.
E.g, in Safari:
Failed to load resource: the server responded with a status of 404 (Not Found)

The fix is that you need to build the project first before serving the demos.
# Build
npm run build

# Start DevServer
npm run dev

Preferably, npm run dev would also build the project first (and set up a watcher).

Check the console. You’ll see an error that it can’t load thescroll-timeline.js file.
E.g, in Safari:
Failed to load resource: the server responded with a status of 404 (Not Found)

The fix is that you need to build the project first before serving the demos.
# Build
npm run build

# Start DevServer
npm run dev

Preferably, npm run dev would also build the project first (and set up a watcher).

That worked :)

Reopening as it’s best that we get this fixed, or at least make a note of it in the README.

authors: Floran-mtte bramus haach

repo: flackr/scroll-timeline


text:
Image model only used in local method

Other methods might want to use the Image model too. Which allows for better moderation.

https://github.com/flagrow/flarum-ext-image-upload/pull/25

repo: flagrow/flarum-ext-image-upload


text:
added onCompleteAnimation to trigger when animation finished

Now it seems everything is ok.
Please let me know if there is anything else.

LGTM
@diegomgarcia you don't to close and open a new PR when changing things on it, you can just commit and push commits to branch and the PR is updated.

Wow, I din't know that. I'm new to github process, we usually use attlassian with bitbucket that works a little different.
So just to clarify if I commit the next changes to my own forked develop branch it will automatically update here ? even if I rebase my branch ou reset the HEAD and forced push it ?

So just to clarify if I commit the next changes to my own forked develop branch it will automatically update here ? even if I rebase my branch ou reset the HEAD and forced push it ?

Exactly!

authors: diegomgarcia erickzanardo

repo: flame-engine/flame


text:
Ignite create using the 'Example template' results in 'Invalid template example'

When creating choosing Example template unhandled exceptions appears
➜  one_bit ignite create
✔ Choose a name for your project:  ‥ my_game
✔ Choose an org for your project:  ‥ org.my_game.game

Your current directory is: /Users/janstepien/projects/one_bit
Do you want to put your project files directly on the current dir or do you want to create a folder called my_game?:

* Create a folder called my_game
Put the files directly on /Users/janstepien/projects/one_bit

What template would you like to use for your new project?:

Simple: an empty Flame project with just the bare minimums to get you up and running.
* Example: a very simple example game built on top of Simple; give you some ideas of how to use Flame if you are new.

Running flutter create on /Users/janstepien/projects/one_bit/my_game ...
$ flutter create --org org.my_game.game --project-name my_game .
Signing iOS app for device deployment using developer identity: "Apple Development: <removed>"
Recreating project ....
  test/widget_test.dart (created)
  android/app/src/main/kotlin/org/my_game/game/my_game/MainActivity.kt (created)
Running "flutter pub get" in my_game...                          2,439ms
Wrote 5 files.

All done!
In order to run your application, type:

  $ cd .
  $ flutter run

Your application code is in ./lib/main.dart.

Unhandled exception:
Invalid template example
#0      getTemplateForName (package:ignite_cli/templates/template.dart:54:5)
#1      createCommand (package:ignite_cli/commands/create_command.dart:82:9)
<asynchronous suspension>
#2      mainCommand (package:ignite_cli/main.dart:65:5)
<asynchronous suspension>

Hi, which version of Ignite do you have?

Tricky question since ignite -v fails #8
But flutter pub global activate ignite_cli proves:
Package ignite_cli is currently active at version 0.4.0.

Try 0.5.0-rc.1 instead, I think that you have to set that version explicitly when activating it from pub.

0.5.0 is also released now which should solve this.

authors: Jan-Stepien spydon

repo: flame-engine/ignite-cli


text:
Simplify Neo contract to store id instead of address

I've updated the Neo contract to use an id instead of an address to store the paid out amount (I call it tea). Also, the message to be signed is now the concatenation of id + total earned amount (previously address + total earned amount).
I haven't worked on invoke part on the golang side here. I can take a look sometime, or maybe @faragos or @a-lesi could take a look at this and integrate it in this PR.
Last but not least, you can check the updated contract code here and I've also updated all integration tests to verify that the update actually works as expected.
@tbocek @gsmachado

@mialbu long time no see 🙂
TBH I'm a little bit out-of-the-loop to exactly do the change.  I looked at your change shortly. I see the batchPayout now has 3 parameters. I'm not sure how to get the ownerId. If you want we can do a session on your side. Because I have a new PC and I don't have any tooling anymore.

Thanks! I'll take a look at it

authors: faragos mialbu tbocek

repo: flatfeestack/payout


text:
2 panel expand not stays in header and screen scrolls to bottom

When you expand the first tab, and scroll to 2nd tab and click to expand the screen not stays in the header instead it scroll the screen to bottom position. Please provide solution.
https://codepen.io/anon/pen/owvXme
Thanks, -sen

$(document).on("shown.bs.collapse", ".panel-collapse", function (e) {
$('html, body').animate({scrollTop: $(e.target).offset().top -115}, 500);
});

repo: flatlogic/bootstrap-tabcollapse


text:
Filter anonymous user on the backend

When getting all the users, the anonymous user is ignored.

Thanks @hdurix, I merge it.

authors: flaviencathala hdurix

repo: flaviencathala/generator-jhipster


text:
Finished first project

I don't know if I did the pull request correctly but looking forward for your input.

Thanks Mich! Can you add a .gitignore file with
node_modules

in it, it will tell Git to ignore that folder and not push all the 30.000 files :) but just the ones that you added in the project.
You can try and make a new pull request

authors: flaviocopes michermd

repo: flaviocopes/react-counter


text:
adds go mod support

creates go.mod for dependency management.

Thanks!

authors: flaviostutz ggrcha

repo: flaviostutz/schellar


text:
Add multiversion support for development dependencies

It was implemented for runtime dependencies only.

Looks good! Will merge and cut a release in the morning.

Thank you!

Thanks Mike for maintaining this gem!

v1.4.0 was just released with this fix in it.

authors: flavorjones larskanis

repo: flavorjones/hoe-bundler


text:
[cmake] Support cross-compiling out of the box

While working on https://github.com/mudge/re2/pull/67, I had to add a number of configuration options to make cross-compiling work properly.
For the standard make, mini_portile2 provides the configure script with the --host parameter, and the script figures out the target compilers to use. With CMake, we don't have that benefit so we need to set the C and C++ compilers ourselves.
I used a simple heuristic to find the target compilers:

For macOS, use clang and clang++. Otherwise use gcc and gcc++.
We search the PATH for <host>-compiler. Use that if we find it. Otherwise default to the base compilers.

To make CMake work with cross-compilation, a number of variables have to be set:

CMAKE_SYSTEM_PROCESSOR
CMAKE_SYSTEM_NAME
CMAKE_C_COMPILER
CMAKE_CXX_COMPILER

I was surprised that CMAKE_SYSTEM_NAME has to be set, or cmake won't try to cross-compile.
I think mini_portile2 should provide these options by default.

In order to build a C extension against a library, we may also want to add:

CMAKE_POSITION_INDEPENDENT_CODE=ON

Ack. CMake is still "experimental" and you may be the first person to really try to use it for something. Will take a look, but prioritizing it behind some other work at the moment.

authors: flavorjones stanhu


text:
feat: ipfs origin

Why

Nodes should request content from origin on cache miss after bitswap queries.
Resolves #134
What

Added OriginBehaviour allowing optimized origin requests
Added service test and rpc tests

Demo

Cli

Tests

Notes

concurrent requests for a cid that does not exist in the store (for both bitswap and origin) will be grouped and all will resolve as soon as any request for a cid comes back. if someone requests for a cid while someone else already did, they would both get the response from the first request

Checklist

[x] I have performed a self-review and commented my code, particularly in complex areas
[x] I have made corresponding changes to the tests
[x] I have made corresponding changes to the documentation
[x] I have run the app using my feature and ensured that no functionality is broken

btw: requested @b0xtch @kckeiks not sure why it says removed botch ^

Noticed an issue, marking draft for now

Looking good. I see some unresolved conversations though, are we good to move forward with this PR?

To unblock this I'll do as suggested here: https://github.com/fleek-network/ursa/pull/278#discussion_r1071470631
But I'm still unconvinced that we should skip over making sure the root cid is present. I'll put together a little showcase of the potential issue separately and address it from there

To unblock this I'll do as suggested here: #278 (comment) But I'm still unconvinced that we should skip over making sure the root cid is present. I'll put together a little showcase of the potential issue separately and address it from there

You can still check the root cid, like suggested after using the load_car file. To see if it returns the same root cid. Then we can wait or pr this https://github.com/filecoin-project/ref-fvm/issues/1522

authors: b0xtch kckeiks ozwaldorf

repo: fleek-network/ursa


text:
POL-464

Description
[Describe what this change achieves]
Issues Resolved
[List any existing issues this PR resolves]
Contribution Check List

[ ] All tests pass.
[ ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable
[ ] New functionality has been documented in CHANGELOG.MD

          3 Errors

:no_entry_sign:
Please add a CHANGELOG.md file

:no_entry_sign:
A README.md is required for new templates

:no_entry_sign:
Please add labels to this Pull Request

          1 Warning

:warning:
Should this include readme changes

  Generated by :no_entry_sign: Danger

authors: flexera-ci rshade


text:
Text property (of Button, LineEdit, etc.) is interpreted as HTML

As a consequence, setting the text to e.g. "<empty>" or repr(ob) will give odd results. It can also be an advantage though, e.g. to include a small image or use markup like <b>.
Affected widgets: Button, RadioButton, CheckButton, LineEdit, Label.text (has probably many cases where HTML is deliberately used). Widget.title in some places, TreeItem.text and TreeItem.title, ComboBox.items, ui.html.XX.text is deliberately html.
Questions:

Should we sanitize the input of this prop?
If not, should we sanitize some of them? E.g. .title
How hard is it to do this in JS? -> easy, look at html.escape(), though not sufficient in light of this
If we sanitize, should we also have a html prop?

cc @Maxyme

Maybe a magic prefix, like widget.text = '/plain/<haha>'. Something like this would avoid synchronization issues (sanitizing in JS and Py), and backwards incompatibility.

Note that we depend on this functionality in some places by now.

I think having a deliberate html property would solve most of this problem, where text is always escaped, and html a property that can have dynamic html and where it gets sanitized.

I am a little worried about backwards compatibility, and not enthousiastic about a text and html prop side-by-side. What about an easy to access function to escape the text where needed. Something like:
from flexx.ui import escape   # works in JS and py
x.text = escape(...)

makes sense. We could have a import sanitize as well for user inputs from the client.

You mean sanitize as in removing < and >?

no, this is a good read:
http://wonko.com/post/html-escaping

Mostly to avoid XSS attacks I guess?

We should probably node.textContent is some places: https://developer.mozilla.org/en/docs/Web/API/Node/textContent

The new _render_dom() is also relevant in this discussion. I think we should avoid users from opening up possibilities for XSS attacks, and provide means to insert plain HTML in some places, with warning signs.

authors: Korijn Maxyme almarklein

repo: flexxui/flexx


text:
curly brackets in string format

pscript gives right result if I use two opening brackets and one closing bracket (3rd line)
Python gives the same result with two opening and two closing brackets (2nd line)
_pymeth_format.call('{"search":"{0}","source_lang": "{1}", "target_lang":"{2}"}', "phrase1", "lang1", "lang2");
"undefined","source_lang": "lang1", "target_lang":"lang2"}"

_pymeth_format.call('{{"search":"{0}","source_lang": "{1}", "target_lang":"{2}"}}', "phrase1", "lang1", "lang2");
"{"search":"phrase1","source_lang": "lang1", "target_lang":"lang2"}}"

_pymeth_format.call('{{"search":"{0}","source_lang": "{1}", "target_lang":"{2}"}', "phrase1", "lang1", "lang2");
"{"search":"phrase1","source_lang": "lang1", "target_lang":"lang2"}"

Thanks!

This code doesn't format text, it just puts field contents into square brackets and parses }} as expected.
def formats(pt, *args, **kw):
    ret = ""
    p = 0
    ln = len(pt)
    while True:
        op = pt.find("{", p)
        cl = pt.find("}", p)
        if op > -1 and (op < cl or cl == -1):  # {
            if op == ln - 1:  # opening { is the last char
                raise ValueError("Single '{' encountered in format string")
            elif pt[op+1] == "{":  # double {
                ret += pt[p: op+1]
                p = op + 2 # {{
            elif cl > -1:  # a field
                ret += pt[p: op]
                ret += "[" + pt[op+1: cl] + "]"  # FIELD
                p = cl + 1
            else:  # no closing }
                raise ValueError("Single '{' encountered in format string")
        elif cl > -1:
            if pt[cl+1] == "}":
                ret += pt[p: cl+1]
                p = cl + 2 # }}
            else:
                raise ValueError("Single '}' encountered in format string")
        else:
            ret += pt[p:]
            break
    return ret

Suddenly i've found out that there's a special case: '{:{width}.{prec}f}'.format(2.7182, width=5, prec=2)
In Python you can put field inside formatting part (after :) of another field. Only 1 level of nesting is supported. But it makes things more complicated.

authors: Winand almarklein

repo: flexxui/pscript


text:
Clarify the purpose of react-dom and react in getting-started.mdx

Hello Federico and atomiks! 👋🏼😊
Thank you very much for having made popper.js/floating-ui and maintaining them all these years 🙌🏼
I wanted to integrate floating-ui for positioning only (as I use other libraries for interactions) and started reading the documentation on the "Getting Started" page. I thought it'd be better if the Getting Started page already had the positioning-only-package install command, as their difference isn't clear until the user goes to the /docs/react page.
I used the same language found on /docs/react page for consistency.

Thank you. I changed the presentation a bit to default to the full package first.

authors: atomiks sam-hosseini

repo: floating-ui/floating-ui


text:
Fix invalid XML error

I had trouble installing this plugin with ionic cli, as the XML had an invalid character.
$ ionic plugin add --save cordova-plugin-nativeaudio
Fetching plugin "cordova-plugin-nativeaudio" via npm

Error: Invalid character in entity name
Line: 8
Column: 54
Char:

& by itself is not valid in XML and must be escaped by using &.
I fixed this issue and now I can install the plugin via a git URL.

hey guys, doesn't make sense to create new PRs again and again if there is already one, see #94, #109
@gligoran it's worth to look around in existing PRs and issues before creating a new PR

Oh, right, I forgot to check other PRs. Sorry. But I would urge @floatinghotpot to fix this XML problem as soon as possible.

authors: didlich gligoran


text:
Cmake error

I tried building on arch, with #93's manual. This error occured. How can i fix this?
[ 58%] Linking C static library libXNNPACK.a
[ 87%] Built target XNNPACK
make: *** [Makefile:156: all] Error 2

I guess you'll have to build with VERBOSE=1 make and post the actual error before we can make any guess here.

Sorry, i think i missed one step in #93 . It now has build correctly.
I have this error now though :(
ERROR: Could not open 'models/segm_full_v679.tflite'.
error: unable to load model from file: 'models/segm_full_v679.tflite'.
Error: Could not create mask context

#101, Manually loading model works

authors: floe hellojaccc

repo: floe/backscrub


text:
China: Add missing mobile prefixes

The mobile phone prefixes was outdated.

[x] Add missing prefixes to the list
[x] Add a spec, and pass the test in local

Coverage increased (+0.004%) to 98.415% when pulling 02e121e02343dfa44237cbf3dab55d0a75496c6e on zerozh:patch-1 into 37c079a9376fcdb445f1c49820b19d4e820c6d4d on floere:master.

Released in 2.18.13, thank you! 😊🚀

authors: coveralls floere zerozh

repo: floere/phony


text:
Fully-specify namespaces in code referenced from OryolMain

Allow people to avoid "using namespace Oryol;". Looks like this was the intent and some spots were missed?

Indeed, these are oversights, headers should also work if no "using namespace Oryol" is used, thanks for the fix!

authors: floooh nfd

repo: floooh/oryol


text:
Can't Set Float Uniform Variable

This is a .glsl shader file that I'm compiling using sokol-shdc I grabbed from the sokol-tools-bin repo. You can see in the fragment shader that I have a uniform block with a float variable called time which I set to '(float)glfwGetTime()'. I am using this variable to just play with the colors. This shader works perfectly fine when embedding this code in the shader desc, but compiling it with sokol-shdc into a header file just does not work. Setting the uniform variable says that the block size does not match and  after going through the generated header file, the float variable in the fragment shader is getting converted into a vec4 for whatever reason. And sure enough, it works perfectly when I set a vec4, no block size errors.
This is the first time I've ever reported an issue on GitHub so excuse me if it's not formatted nicely. I'm really loving sokol by the way, it's great. Also I think it would be kinda cool if there was a discord server or something no?
#version 330 core

@ctype mat4 glm::mat4
@ctype vec3 glm::vec3
@ctype vec4 glm::vec4

@vs vs
// Vertex Attributes
layout(location = 0) in vec3 vertexPos;

// Uniform Variables
uniform vsParams {
    mat4 pvm;
};

// Main
void main() {
    gl_Position = pvm * vec4(vertexPos, 1.0f);
}
@end

@fs fs
// Uniform Variables
uniform fsParams {
    float time;
};

// Output
out vec4 fragColor;

// Main
void main() {
    // Set Final Fragment Color
    vec3 color = vec3(abs(sin(time)), 0.0f, 0.0f);
    fragColor = vec4(color, 1.0f);
}
@end

@program testShaders vs fs

I know the #version 330 core isn't necessary but I was pretty desperate to get it working. I am using the generated struct yes, I'd rather not make my own or mess with the generated one. And, oh, the code example you provided actually works. I guess that's it, thanks.
By the way, using the '&' before 'SG_RANGE' gives me an error. I've seen it being used every example though. The error is 'Taking address of rvalue [-fpermissive]', the program runs fine regardless of this error. I have all warnings and errors enabled so that must be the case.

By the way, using the '&' before 'SG_RANGE' gives me an error.

Ah right, that's a C vs C++ thing. In C++ you can do this instead (just drop the '&'):
sg_apply_uniforms(SG_SHADERSTAGE_FS, SLOT_fsParams, SG_RANGE(fs_params));

...or use the SG_RANGE_REF() macro which does the right thing both in C and C++:
sg_apply_uniforms(SG_SHADERSTAGE_FS, SLOT_fsParams, SG_RANGE_REF(fs_params));

repo: floooh/sokol

license: Zlib


text:
Get credential of gis server from backend

To get the credentials for gis server user this method
GET /api/auth/gis/credentials
This will return a gisCredentials object:
{
"ClientId": "the cleint id, usrename"
"Secret":  "the secret, password"
}
Use this credential instead of asking the user to provide username and password for gis server.

Instead of the username and password, this endpoint should return a token. this token can be generated by sending a POST request to the following url https://salstatstaging.tddev.it/portal/sharing/rest/generateToken. The username and password should be provided in the request body. In the response of this request a token will be provided.
Furthermore, to streamline the process from the frontend part, I would suggest to remove this endpoint completely. Instead, the backend should provide this token when the user is logged in. This way, I can immediately use it without having to send a different request. Furthermore, this would limit the amount of changes I need to do in the frontend to make this work, including the refresh mechanism, which would utilise the same one as the login token.
To sum up:

Backend should generate a token when the user successfully logs in
Backend should provide this token in the JWT returned to the user
Backend should provide new token when refresh endpoint is called

authors: ReiPano florianika

repo: florianika/asrdb-frontend


text:
sourcesContent: null for files in subdirectories with globbed gulp.src

I've been having a problem with blank source .scss files in Chrome's debugger. For a set of files I grab with gulp.src('somedir/**/*.scss'), I'm writing external sourcemaps with includeContent left to true (though I've also tried setting it explicitly). Files in the root directory have their sources included properly, but for any files in subdirectories, their source code is missing ("sourcesContent":[null]).
I created a brand-new project with nothing extraneous and had the same problem:
gulpfile:
var gulp = require('gulp');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');

gulp.task('default', function () {
	return gulp.src('src/scss/**/*.scss')
		.pipe(sourcemaps.init())
		.pipe(sass())
		.pipe(sourcemaps.write('./'))
		.pipe(gulp.dest('build/css'));
});

There are two .scss files:
src/scss/app.scss and
src/scss/foo/bar.scss
When I run gulp, it properly generates these files:
build/css/app.css
build/css/app.css.map
build/css/foo/bar.css and
build/css/foo/bar.css.map
app.css.map contains the proper sourcesContent, but foo/bar.css.map has "sourcesContent":[null].
Any idea what could be going on? Is there an option I'm missing that I need to set? Thanks in advance for any help you can provide!
P.S.
node --version → v.0.12.0
{
  gulp": "^3.8.11",
  "gulp-sass": "^2.0.1",
  "gulp-sourcemaps": "^1.5.2"
}

After some investigation, I believe this is actually an issue with gulp-sass. I'm working to get it resolved with them. Thanks!

repo: floridoo/gulp-sourcemaps

license: isc


text:
Device mgmt solution page

Description
New device management solution page.

@joepavitt two things it would be great to have your help with:

I added a screen shot of the device management console. Not sure if this is the best resolution or not? Can you please check.
For the section on trouble shooting, I added a 'Coming Soon'. It would be nice to have a graphic, almost like an emoji, to indicate this. Not sure if you know where to find one or can create one?

Thanks @iskerrett this is a great start. Couple of comments:

Finding the inconsistency of capitalisation in the different headers quite distracting
I would still be in favour of the  approach for the section headers too, with those words highlighted in red, it makes the content a lot easier to scan, whereas at the moment, there are a lot of bold headers and they're fairly wordy, which makes it feel a little overwhelming and difficult to parse. I won't die on this hill though, so if you're set with how it is, then that's fine, just voicing that it stood out to me again.

Regarding the images

I'd definitely want to have an alternative to the screenshot (or, at least a higher res and better cropped screenshot)
Icon for the Coming Soon should be fine also, we can take something from heroicons

Whilst it's not strictly required in this case, I'd like to experiment with the new "Art Request" workflow and see if that works.
Could you create 2 new issues on the Website repo, one for each, using the Art Request Template please? If all goes well, i'll get notified in a channel on Slack that images are required, and it'll get added to our new Art Requests board. I appreciate it's excessive process for now, but once Yndira comes on board, I'd like to have these kind of requests going to a central place, so that either of us can pick them up, better of testing that out sooner rather than later.

@joepavitt these are done

Finding the inconsistency of capitalisation in the different headers quite distracting

I made this change. It reminds me to ask you why do we use lower case in the menu items? I think this is what threw me.

I would still be in favour of the  approach for the section headers too, with those words highlighted in red, it makes the content a lot easier to scan, whereas at the moment, there are a lot of bold headers and they're fairly wordy, which makes it feel a little overwhelming and difficult to parse. I won't die on this hill though, so if you're set with how it is, then that's fine, just voicing that it stood out to me again.

I have added some highlights.

authors: iskerrett joepavitt

repo: flowforge/website


text:
how use pipe instead of save method in fluent-ffmpeg?

I gonna use fluent ffmpeg to write something on video
I use this cod
var proc = ffmpeg(req.filePath). videoFilters(
  {
    filter: 'drawtext',
    options: {
      text: 'VERY LONG TEXT VERY VERY VERY VERY LOL!!!',
      fontsize: 36,
      fontcolor: 'white',
      x: '(main_w/2-text_w/2)',
      y: '(text_h/2)+15',
      shadowcolor: 'black',
      shadowx: 2,
      shadowy: 2
    }}

)
// use the 'flashvideo' preset (located in /lib/presets/flashvideo.js)
.on('end', function() {
  console.log('file has been converted succesfully');
})
.on('error', function(err) {
  console.log('an error happened: ' + err.message);
}).save('/home/gheidar/Desktop/ffmpeg_test/rt.ts');

and everything is correct
but I want to export this output to stream for the response of the request
means that I want to use pipe() instead of save  method
something like this :
var proc = ffmpeg(req.filePath). videoFilters(
  {
    filter: 'drawtext',
    options: {
      text: 'VERY LONG TEXT VERY VERY VERY VERY LOL!!!',
      fontsize: 36,
      fontcolor: 'white',
      x: '(main_w/2-text_w/2)',
      y: '(text_h/2)+15',
      shadowcolor: 'black',
      shadowx: 2,
      shadowy: 2
    }}

)
// use the 'flashvideo' preset (located in /lib/presets/flashvideo.js)
.on('end', function() {
  console.log('file has been converted succesfully');
})
.on('error', function(err) {
  console.log('an error happened: ' + err.message);
}).pipe(res)

its just change in the last line
and I get this error :

an error happened: ffmpeg exited with code 1: pipe:1: Invalid argument

how can export this ffmpeg command to stream response????

You need to specify a format.
When you use .save() ffmpeg deduces the format from the output filename. When using .pipe() there's nothing to deduce the format from.

thanks
but I don't want to change the format file
how can I do this???
@njoyard

You have to query the input format using ffprobe, and then apply that format to your output

repo: fluent-ffmpeg/node-fluent-ffmpeg


text:
fluentd requires ruby 1.9 syntax.

1.9環境が必要と知らずに1.8環境でgem install。実行して悲しい思いをしたので、rubyのバージョン要求をgemspecに追加してみました。
gemspecの再生成は御手元のjewelerで行ったほうがよろしいかと思い、コミットしていません。(手元でやったらファイル列挙の出力などが微妙に違ってパッチが不必要に膨らんだので)

ありがとうございます！ マージしました。これは必要ですね…
シンプルな変更でとても助かります^^;

https://github.com/fluent/fluentd

added you to the contributors section, thx!

Thanks,  but my family name is OZAWA, not OGAWA:)

Sorry, now it's fixed :-(

authors: frsyuki kzk sakuro

repo: fluent/fluentd


text:
fluentd tries to open whole buffer dir at once

..consumes all available file descriptors and dies
# find /var/lib/td-agent/buffers/output_elasticsearch-7 -type f | wc -l
131046
# su - td-agent -s /bin/bash -c 'ulimit -n'
No directory, logging in with HOME=/
65536

2018-04-06 13:13:00 +0000 [warn]: #0 failed to write data into buffer by buffer overflow action=:throw_exception
2018-04-06 13:13:00 +0000 [warn]: #0 emit transaction failed: error_class=Fluent::Plugin::Buffer::BufferOverflowError error="can't create buffer metadata for /var/lib/td-agent/buffers/output_elasticsearch-7/buff$
r.*.log. Stop creating buffer files: error = Too many open files @ rb_sysopen - /var/lib/td-agent/buffers/output_elasticsearch-7/buffer.b5692dd0baff981007f92e2649ebfdbc3.log.meta" location="/opt/td-agent/embedde$
/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buffer/file_chunk.rb:294:in `rescue in create_new_chunk'" tag="fluent.info"
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buffer/file_chunk.rb:294:in `rescue in create_new_chunk'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buffer/file_chunk.rb:283:in `create_new_chunk'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buffer/file_chunk.rb:50:in `initialize'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buf_file.rb:163:in `new'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buf_file.rb:163:in `generate_chunk'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buffer.rb:530:in `block in write_once'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/2.4.0/monitor.rb:214:in `mon_synchronize'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buffer.rb:530:in `write_once'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buffer.rb:277:in `block in write'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buffer.rb:275:in `each'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buffer.rb:275:in `write'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/output.rb:967:in `block in handle_stream_simple'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/output.rb:851:in `write_guard'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/output.rb:966:in `handle_stream_simple'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/output.rb:841:in `execute_chunking'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/output.rb:771:in `emit_buffered'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/out_copy.rb:58:in `block in process'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/out_copy.rb:56:in `each'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/out_copy.rb:56:in `each_with_index'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/out_copy.rb:56:in `process'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/multi_output.rb:148:in `emit_sync'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/event_router.rb:159:in `emit_events'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/event_router.rb:96:in `emit_stream'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/event_router.rb:87:in `emit'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/engine.rb:207:in `block in log_event_loop'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/engine.rb:205:in `each'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/engine.rb:205:in `log_event_loop'
2018-04-06 13:13:00 +0000 [error]: #0 failed to emit fluentd's log event tag="fluent.info" event={"worker"=>0, "message"=>"fluentd worker is now running worker=0"} error_class=Fluent::Plugin::Buffer::BufferOverf$
owError error="can't create buffer metadata for /var/lib/td-agent/buffers/output_elasticsearch-7/buffer.*.log. Stop creating buffer files: error = Too many open files @ rb_sysopen - /var/lib/td-agent/buffers/out$
ut_elasticsearch-7/buffer.b5692dd0baff981007f92e2649ebfdbc3.log.meta"
2018-04-06 13:13:00 +0000 [warn]: #0 failed to flush the buffer. retry_time=0 next_retry_seconds=2018-04-06 13:13:10 +0000 chunk="5691a86c7266329a125a8f2f4a31216d" error_class=NoMethodError error="undefined meth$
d `downcase' for #<Array:0x00007f53f1562a10>"
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluent-plugin-elasticsearch-2.4.0/lib/fluent/plugin/out_elasticsearch.rb:379:in `block in write'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/event.rb:323:in `each'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/event.rb:323:in `block in each'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buffer/file_chunk.rb:170:in `open'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/event.rb:322:in `each'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluent-plugin-elasticsearch-2.4.0/lib/fluent/plugin/out_elasticsearch.rb:340:in `write'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/output.rb:1093:in `try_flush'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/output.rb:1318:in `flush_thread_run'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/output.rb:439:in `block (2 levels) in start'
  2018-04-06 13:13:00 +0000 [warn]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create'
2018-04-06 13:13:01 +0000 [warn]: #0 failed to write data into buffer by buffer overflow action=:throw_exception
2018-04-06 13:13:01 +0000 [warn]: #0 emit transaction failed: error_class=Fluent::Plugin::Buffer::BufferOverflowError error="can't create buffer metadata for /var/lib/td-agent/buffers/output_elasticsearch-7/buffe
r.*.log. Stop creating buffer files: error = Too many open files @ rb_sysopen - /var/lib/td-agent/buffers/output_elasticsearch-7/buffer.b5692dd0c882c3b11f2a767066ba06050.log.meta" location="/opt/td-agent/embedded
/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/buffer/file_chunk.rb:294:in `rescue in create_new_chunk'" tag="fluent.warn"
  2018-04-06 13:13:01 +0000 [warn]: #0 suppressed same stacktrace
2018-04-06 13:13:01 +0000 [error]: #0 failed to emit fluentd's log event tag="fluent.warn" event={"retry_time"=>0, "next_retry_seconds"=>"2018-04-06 13:13:10 +0000", "chunk"=>"5691a86c7266329a125a8f2f4a31216d", "
error"=>"#<NoMethodError: undefined method `downcase' for #<Array:0x00007f53f1562a10>>", "message"=>"failed to flush the buffer. retry_time=0 next_retry_seconds=2018-04-06 13:13:10 +0000 chunk=\"5691a86c7266329a1
25a8f2f4a31216d\" error_class=NoMethodError error=\"undefined method `downcase' for #<Array:0x00007f53f1562a10>\""} error_class=Fluent::Plugin::Buffer::BufferOverflowError error="can't create buffer metadata for
/var/lib/td-agent/buffers/output_elasticsearch-7/buffer.*.log. Stop creating buffer files: error = Too many open files @ rb_sysopen - /var/lib/td-agent/buffers/output_elasticsearch-7/buffer.b5692dd0c882c3b11f2a76
7066ba06050.log.meta"
2018-04-06 13:13:01 +0000 [warn]: #0 thread exited by unexpected error plugin=Fluent::Plugin::ForwardInput title=:event_loop error_class=LoadError error="library not found for class Digest::SHA512 -- digest/sha2.
so"
2018-04-06 13:13:01 +0000 [error]: #0 unexpected error error_class=LoadError error="library not found for class Digest::SHA512 -- digest/sha2.so"
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/2.4.0/digest.rb:16:in `const_missing'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/in_forward.rb:422:in `check_ping'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/in_forward.rb:200:in `block in handle_connection'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/in_forward.rb:248:in `block (3 levels) in read_messages'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/in_forward.rb:247:in `feed_each'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/in_forward.rb:247:in `block (2 levels) in read_messages'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin/in_forward.rb:256:in `block in read_messages'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin_helper/server.rb:739:in `on_read_without_connection'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/cool.io-1.5.3/lib/cool.io/io.rb:123:in `on_readable'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin_helper/server.rb:711:in `on_readable'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/cool.io-1.5.3/lib/cool.io/io.rb:186:in `on_readable'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/cool.io-1.5.3/lib/cool.io/loop.rb:88:in `run_once'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/cool.io-1.5.3/lib/cool.io/loop.rb:88:in `run'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin_helper/event_loop.rb:84:in `block in start'
  2018-04-06 13:13:01 +0000 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create'
2018-04-06 13:13:01 +0000 [error]: #0 library not found for class Digest::SHA512 -- digest/sha2.so path=nil error_class=LoadError error="library not found for class Digest::SHA512 -- digest/sha2.so"
  2018-04-06 13:13:01 +0000 [error]: #0 suppressed same stacktrace
2018-04-06 13:13:01 +0000 [info]: Worker 0 finished unexpectedly with status 2
2018-04-06 13:13:01 +0000 [info]: Received graceful stop

Buffer config
    <buffer>
      @type file
      flush_interval 10s
      retry_type periodic
      retry_forever true
      retry_wait 10s
      path /var/lib/td-agent/buffers/output_elasticsearch-7
    </buffer>

My versions
2018-03-28 19:46:33 +0000 [info]: starting fluentd-1.0.2 pid=22210 ruby="2.4.2"
2018-03-28 19:46:33 +0000 [info]: spawn command to main:  cmdline=["/opt/td-agent/embedded/bin/ruby", "-Eascii-8bit:ascii-8bit", "/opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/command/fluentd.rb", "-c", "/etc/td-agent/child_7.conf", "--log", "/var/log/td-agent/child_7.log", "--under-supervisor"]
2018-03-28 19:46:34 +0000 [info]: gem 'fluent-plugin-elasticsearch' version '2.4.0'
2018-03-28 19:46:34 +0000 [info]: gem 'fluent-plugin-flowcounter' version '1.3.0'
2018-03-28 19:46:34 +0000 [info]: gem 'fluent-plugin-kafka' version '0.6.5'
2018-03-28 19:46:34 +0000 [info]: gem 'fluent-plugin-multiprocess' version '0.2.2'
2018-03-28 19:46:34 +0000 [info]: gem 'fluent-plugin-prometheus' version '1.0.1'
2018-03-28 19:46:34 +0000 [info]: gem 'fluent-plugin-rewrite-tag-filter' version '2.0.1'
2018-03-28 19:46:34 +0000 [info]: gem 'fluent-plugin-s3' version '1.1.0'
2018-03-28 19:46:34 +0000 [info]: gem 'fluent-plugin-td' version '1.0.0'
2018-03-28 19:46:34 +0000 [info]: gem 'fluent-plugin-td-monitoring' version '0.2.3'
2018-03-28 19:46:34 +0000 [info]: gem 'fluent-plugin-webhdfs' version '1.2.2'
2018-03-28 19:46:34 +0000 [info]: gem 'fluentd' version '1.0.2'

it's stale issue. I'm closing. if you have any problem, updating fluentd might help it.

authors: dmnfortytwo ganmacs


text:
WARN: Unresolved specs during Gem::Specification.reset:       http-cookie (~> 1.0) WARN: Clearing out unresolved specs.

flumtterをインストールして起動しようとしたところ次のようなエラーメッセージが表示され起動できませんでした。
当方初心者のため何か見落としがあるかもしれませんが報告させて頂きます。
環境
　　Ubuntu Gnome 16.04.3
　　http-cookie (1.0.3, 1.0.2)
エラーメッセージ
　　WARN: Unresolved specs during Gem::Specification.reset:
http-cookie (~> 1.0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
/var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/windows/tweet.rb:3:in <module:Window>': uninitialized constant Flumtter::Window::Buf (NameError) 	from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/windows/tweet.rb:2:in module:Flumtter'
from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/windows/tweet.rb:1:in <top (required)>' 	from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require' 	from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/core.rb:41:in block in load_plugin'
from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/core.rb:39:in each' 	from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/core.rb:39:in load_plugin'
from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/core.rb:46:in sarastire' 	from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/curses.rb:89:in module:Flumtter'
from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/curses.rb:88:in <top (required)>' 	from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require' 	from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/core.rb:41:in block in load_plugin'
from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/core.rb:39:in each' 	from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/core.rb:39:in load_plugin'
from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/core.rb:46:in sarastire' 	from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/core.rb:66:in module:Flumtter'
from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/core/core.rb:5:in <top (required)>' 	from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/main.rb:1:in require_relative'
from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter/app/main.rb:1:in <top (required)>' 	from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in require'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in require' 	from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/lib/flumtter.rb:2:in <top (required)>'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in require' 	from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in require'
from /var/lib/gems/2.3.0/gems/flumtter-5.9.1/exe/flumtter:5:in <top (required)>' 	from /usr/local/bin/flumtter:23:in load'
from /usr/local/bin/flumtter:23:in `'

@NekomovYuyusuky ISSUEに気づくのが遅くなってしまい大変申し訳ありません。
たった今修正版あげましたのでもう一度gem install flumtterをしてお試しください。
よろしくお願いいたします。


text:
Created AccumuloReplicator which is an implementation of AccumuloExpo…

…rter
that uses a TxLog to replicate updates from a Fluo transaction to Accumulo.
Created AccumuloReplicatorIT which shares code with AccumuloExporterIT
in AccumuloITBase.  Also, made KryoSimpleSerializer support
serialization of Bytes.

Keith made some comments on duplicate PR https://github.com/keith-turner/fluo-recipes/pull/1

Fixed all CR comments in 9878b1c8f39

This needs end-to-edn documentation.  But so does AccumuloExporter.  I'm thinking both could be documented in a follow on issue, I'll open a issue.
+1

created #16

authors: keith-turner mikewalch

repo: fluo-io/fluo-recipes


text:
Add day of the week picker

Would like to know if you have an included day of week selector, something that only displays Monday - Sunday. And also a day of month selector for days in a month eg 1 - 30.

Not specifically, but I've built a Weekday selector by just using a FormBuilderCheckboxGroup or FormBuilderRadioGroup.
Here is a tip on generating the Weekdays (localized):
      final weekdayFormat = DateFormat.E();
      // Note that 2018-01-01 is special because it is a Monday,
      // so replacing the date with the weekday ordinal produces
      // the correct value from the formatter.
      ...
      final weekdays = List.generate(7,
        (weekday) => Text(weekdayFormat.format(DateTime(2018, 1, weekday))),
      );

Hi @Prn-Ice
This is a nice feature but I don't know if a feature with a lot use. How awhitford says, you can create easily a CheckboxGroup or RadioGroup with options and your own style.
Create this field means idealize a design and now don't exist a pattern (Material or Cupertino) for a week day selector

authors: Prn-Ice awhitford deandreamatias


text:
[scheduler] Implement deflaking backfiller

It would be interesting to use this logic to rerun failed tests to surface flakes. Not needed in this PR though.

https://github.com/flutter/cocoon/pull/1776#discussion_r857897367
https://cs.opensource.google/flutter/cocoon/+/main:app_dart/lib/src/service/scheduler/policy.dart;l=1?q=policy.dart&sq=&ss=flutter%2Fcocoon
It would be nice if backfilling tried to rerun failed tasks to see if they passed.

\cc @keyonghan

@XilaiZhang should this still be assigned to you?

authors: CaseyHillers godofredoc

repo: flutter/flutter


text:
How to implement a mesh gradient

How to implement a mesh gradient, for example Illustrator mesh
https://user-images.githubusercontent.com/58665953/161450102-98801e3a-a36d-4910-990a-8b9de6657424.png

think you


text:
for TextField

How to check phone number and card number in the text field and format it at the same time.
I have used different format packages but I can't format 2 cases at the same time.
please help me.
    mask: '#### #### #### ####',
    filter: {'#': RegExp('[0-9]')},
    type: MaskAutoCompletionType.lazy,
  );

  final phoneFormatter =  MaskTextInputFormatter(
      mask: '# ### (##) ###-##-##',
      filter: { '#': RegExp('[+0-9]')},
      type: MaskAutoCompletionType.lazy,
  );

  MaskTextInputFormatter phoneOrCardNumber() => cardNumberController.text.startsWith('[0-9]') ? numberCardFormatter : phoneFormatter;

  const TransformTextField({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context, WidgetRef ref) => Container(
    alignment: Alignment.center,
    margin: const EdgeInsets.symmetric(vertical: 10, horizontal: 24),
      height: 57,
      width: double.infinity,
      decoration: BoxDecoration(
        borderRadius: BorderRadius.circular(11),
        border: Border.all(color: AppColors.c878B9A),
      ),
      child: TextField(
        textInputAction: TextInputAction.next,
        controller: ref.read(transferCard).cardNumberController,
        keyboardType: TextInputType.text,
        style: Theme.of(context).textTheme.labelMedium?.copyWith(fontWeight: FontWeight.w600, color: AppColors.c878B9A, fontSize: 16,),
        decoration: InputDecoration(
          border: OutlineInputBorder(borderRadius: BorderRadius.circular(10), borderSide: const BorderSide(color: AppColors.c3554D1,),),
          suffix: Transform.translate(offset: const Offset(-15, 2),
           child: ref.watch(transferCard.select((value) => value.selectCardImage())),
          ),
          suffixIcon: ref.watch(transferCard.select((value) => value.cardNumberController.length >= 1)) ? IconButton(
            splashRadius: 25,
            onPressed: ref.read(transferCard).clearText,
            icon: const Icon(CupertinoIcons.clear_circled_solid, color: AppColors.c878B9A,),
          ) : const SizedBox.shrink(),
        ),
        inputFormatters: [
          LengthLimitingTextInputFormatter(20),
          ref.read(transferCard).phoneOrCardNumber(),
        ],
        onChanged: (String text){
          ref.read(transferCard).selectCompanyCode(text);
          if(text.length >= 4){
            ref.read(transferCard).companyCode = ref.read(transferCard).cardNumberController.text.trim().substring(0, 4);
          }
        },
      ),
    );
}```

inputFormatters: [
      LengthLimitingTextInputFormatter(20),
      ref.read(transferCard).phoneOrCardNumber(),
    ],

@xurshid20222
It seems you are asking for assistance on personal code. Please see https://flutter.dev/community for resources and ask questions like this.
You may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp.
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you!


text:
123

qwe

Hi @NovemberFeng
Please follow the issue template when filing an issue. Closing

authors: NovemberFeng TahaTesser